【问题标题】:Bad input shape error on SVM training using scikit使用 scikit 进行 SVM 训练时出现错误的输入形状错误
【发布时间】:2014-02-17 04:58:22
【问题描述】:

我对 scikit 和 ML 有点陌生。我正在尝试为一个与所有分类训练一个 SVM 分类器。我正在使用以下代码。

g=list()
for i in range(0,120):
    g.append(1)
for i in range(120,240):
    g.append(2)

u=set(g)
numclasses=len(u)

lin_clf = svm.LinearSVC()
lin_clf.fit(features,u)

Features 是一个 72900*120 的数组。我从不同的 python 代码中获取功能并在这里调用它。它会引发以下警告和错误。

/usr/lib/python2.7/dist-packages/scipy/misc/pilutil.py:279: 
DeprecationWarning: fromstring() is deprecated. Please call frombytes() instead.
image = Image.fromstring(mode, shape, strdata)

错误

ValueError: bad input shape ()

如果您需要特征提取的代码,请评论。提前谢谢你。

【问题讨论】:

    标签: python machine-learning svm scikit-learn


    【解决方案1】:

    哪一行代码抛出了错误?是lin_clf.fit(features,u)吗?

    根据LinearSVC的documentationfit(X,y)的参数是

    X : {array-like, sparse matrix}, shape = [n_samples, n_features]

    训练向量,其中n_samples为样本数,n_​​features为特征数。

    y : 类似数组,形状 = [n_samples]

    相对于 X 的目标向量

    但是,您代码中的u 是python set。它应该是一个长度为 72900 的 numpy 数组。

    【讨论】:

      猜你喜欢
      • 2015-08-12
      • 2015-06-12
      • 2021-04-08
      • 2019-05-19
      • 2019-10-20
      • 2020-06-12
      • 1970-01-01
      • 2019-05-06
      • 2018-04-30
      相关资源
      最近更新 更多