非整数类标签 Scikit-Learn
Posted
技术标签:
【中文标题】非整数类标签 Scikit-Learn【英文标题】:Non-Integer Class Labels Scikit-Learn 【发布时间】:2012-10-29 07:20:24 【问题描述】:scikit-learn 的快速 SVM 问题。当你训练一个 SVM 时,它类似于
from sklearn import svm
s = svm.SVC()
s.fit(training_data, labels)
有没有办法让labels
成为非数字类型的列表?例如,如果我想将向量分类为“猫”或“狗”,而不必使用某种外部查找表将“猫”和“狗”编码为 1 和 2。当我尝试只传递一个字符串列表时,我得到...
ValueError: invalid literal for float(): cat
所以,看起来只是在labels
中插入字符串会起作用。有什么想法吗?
【问题讨论】:
【参考方案1】:直接将字符串作为类传递是我的待办事项,但 SVM 尚不支持它。 目前,我们有LabelEncoder 可以为您记账。
[edit]这应该可以立即使用[/edit]
【讨论】:
【参考方案2】:最新版本的 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]
【讨论】:
以上是关于非整数类标签 Scikit-Learn的主要内容,如果未能解决你的问题,请参考以下文章