非整合类标签ScikitLearn

2024-05-05 02:47:48 发布

您现在位置:Python中文网/ 问答频道 /正文

scikit学习的快速支持向量机问题。当你训练支持向量机的时候

from sklearn import svm
s = svm.SVC()
s.fit(training_data, labels)

有没有办法让labels成为非数字类型的列表?例如,如果我想将向量分类为“cat”或“dog”,而不必使用某种将“cat”和“dog”编码为1和2的外部查找表。。。

ValueError: invalid literal for float(): cat

所以,看起来不只是在labels中推字符串就可以了。有什么想法吗?


Tags: fromimportdatalabelstraining数字sklearnscikit
2条回答

直接将字符串作为类传递在我的todo上,但是在SVMs中还不支持它。 目前,我们有LabelEncoder可以为您做簿记。

[编辑]这应该是现成的[编辑]

最新版本的sklearn可以使用string作为标签。例如:

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]

相关问题 更多 >