非整数类标签Scikit-Learn

fol*_*oof 20 python svm scikit-learn

scikit-learn的快速SVM问题.当您训练SVM时,它就像是

from sklearn import svm
s = svm.SVC()
s.fit(training_data, labels)
Run Code Online (Sandbox Code Playgroud)

有没有办法labels成为非数字类型的列表?例如,如果我想将矢量分类为"cat"或"dog",而不必使用某种外部查找表将"cat"和"dog"编码为1和2.当我尝试传递一个字符串列表时,我得到......

ValueError: invalid literal for float(): cat

因此,它看起来不像只是在推动字符串labels.有任何想法吗?

And*_*ler 19

直接将字符串作为类传递在我的待办事项上,但SVM中尚不支持它.目前,我们有LabelEncoder可以为您完成预订.

[编辑]这应该现在开箱即用[/ edit]


tqj*_*stc 14

sklearn的最新版本能够使用字符串作为标签.例如:

from sklearn.svm import SVC
clf = SVC()
x = [[1,2,3], [4,5,6]]
y = ['dog', 'cat']
clf.fit(x,y)

yhat = clf.predict([[1,2,5]])
print yhat[0]
Run Code Online (Sandbox Code Playgroud)