【问题标题】:Non-Integer Class Labels Scikit-Learn非整数类标签 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 中插入字符串会起作用。有什么想法吗?

【问题讨论】:

    标签: python svm scikit-learn


    【解决方案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]
      

      【讨论】:

        猜你喜欢
        • 2016-10-17
        • 2017-08-05
        • 2012-10-08
        • 2018-11-13
        • 2021-09-18
        • 2019-03-14
        • 2019-01-02
        • 2016-01-24
        • 2014-11-19
        相关资源
        最近更新 更多