sklearn SVM fit() “ValueError:用序列设置数组元素”

新手上路,请多包涵

我正在使用 sklearn 在我自己的图像集上应用 svm。图像放在数据框中。我将一个具有二维列表的 numpy 数组传递给 fit 函数,这些二维列表表示图像,我传递给该函数的第二个输入是目标列表(目标是数字)。我总是收到此错误“ValueError:使用序列设置数组元素”。

 trainingImages = images.ix[images.partID <=9]
trainingTargets = images.clustNo.ix[images.partID<=9]
trainingImages.reset_index(inplace=True,drop=True)
trainingTargets.reset_index(inplace=True,drop=True)

classifier = svm.SVC(gamma=0.001)
classifier.fit(trainingImages.image.values,trainingTargets.values.tolist())

错误:

 ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-43-5336fbeca868> in <module>()
      8 classifier = svm.SVC(gamma=0.001)
      9
---> 10 classifier.fit(trainingImages.image.values,trainingTargets.values.tolist())
     11
     12 #classifier.fit(t, list(range(0,2899)))

/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/svm/base.py in fit(self, X, y, sample_weight)
    148         self._sparse = sparse and not callable(self.kernel)
    149
--> 150         X = check_array(X, accept_sparse='csr', dtype=np.float64, order='C')
    151         y = self._validate_targets(y)
    152

/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
    371                                       force_all_finite)
    372     else:
--> 373         array = np.array(array, dtype=dtype, order=order, copy=copy)
    374
    375         if ensure_2d:

ValueError: setting an array element with a sequence.

原文由 Perihan Gad 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 529
1 个回答

我有同样的错误,这是两种可能性之一:

1- 数据和标签的长度不同。

2-对于特定的特征向量,元素的数量不相等。

原文由 Minions 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题