sik*_*ela 9 python numpy scikit-learn
我正在尝试使sklearn.svm.SVC(kernel="linear")算法工作.我的X是一个数组[misc.imread(each).flatten() for each in filenames],我的y2是由字符串组成的列表的一部分,如["A","1","4","F"..].
当我尝试时clf.fit(X,y2),sklearn尝试将我的字符串列表转换为浮点数并失败,抛出ValueError: could not convert string to float.我怎么解决这个问题?
编辑:将sklearn升级到0.15解决了这个问题.
Mat*_*att 10
scikit-learn中有一个帮助类,可以很好地实现它,它被称为sklearn.preprocessing.LabelEncoder:
from sklearn.preprocessing import LabelEncoder
y2 = ["A","1","4","F","A","1","4","F"]
lb = LabelEncoder()
y = lb.fit_transform(y2)
# y is now: array([2, 0, 1, 3, 2, 0, 1, 3])
Run Code Online (Sandbox Code Playgroud)
为了返回原始标签(例如,在使用未分类的数据分类后SVC),使用inverse_transformof LabelEncoder来恢复字符串标签:
lb.inverse_transform(y)
# => array(['A', '1', '4', 'F', 'A', '1', '4', 'F'], dtype='|S1')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11871 次 |
| 最近记录: |