gpt4 book ai didi

python - Sklearn 尝试将字符串列表转换为 float

转载 作者:太空狗 更新时间:2023-10-29 20:15:37 24 4
gpt4 key购买 nike

我正在尝试使 sklearn.svm.SVC(kernel="linear") 算法工作。我的 X 是一个由 [misc.imread(each).flatten() for each in filenames] 组成的数组,我的 y2 是一个由字符串组成的列表的一部分,例如 ["A ","1","4","F"..]

当我尝试 clf.fit(X,y2) 时,sklearn 尝试将我的字符串列表转换为 float 但失败,抛出 ValueError: could not convert string to float。我该如何解决这个问题?

编辑:将 sklearn 升级到 0.15 解决了问题。

最佳答案

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])

为了恢复到您的原始标签(例如,在使用 SVC 对看不见的数据进行分类之后),使用 LabelEncoderinverse_transform 来恢复字符串标签:

lb.inverse_transform(y)
# => array(['A', '1', '4', 'F', 'A', '1', '4', 'F'], dtype='|S1')

关于python - Sklearn 尝试将字符串列表转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com