bet*_*eta 5 python machine-learning svm scikit-learn
我scikit-learn用来实现一个简单的监督学习算法。本质上,我遵循此处的教程(但使用我自己的数据)。
我尝试拟合模型:
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(features_training,labels_training)
Run Code Online (Sandbox Code Playgroud)
但是在第二行,我收到一个错误: ValueError: could not convert string to float: 'A'
该错误是预期的,因为label_training包含代表三个不同类别的字符串值,例如A、B、C。
所以问题是:如果标记数据以字符串形式表示类别,我该如何使用 SVC(支持向量分类)。对我来说,一个直观的解决方案似乎只是将每个字符串转换为一个数字。例如,A = 0,B = 1等,但事实真的是最好的解决办法?
看看http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features section 4.3.4 Encoding categorical features.
特别是使用OneHotEncoder。这会将分类值转换为 SVM 可以使用的格式。