Python 在训练支持向量机进行图像分类时设置一个带有序列误差的数组元素
我尝试在python中使用SVM对1022个图像和1022个多类标签(每个标签有14个类)进行图像分类 现在我得到了一个错误:Python 在训练支持向量机进行图像分类时设置一个带有序列误差的数组元素,python,arrays,python-3.x,scikit-learn,svm,Python,Arrays,Python 3.x,Scikit Learn,Svm,我尝试在python中使用SVM对1022个图像和1022个多类标签(每个标签有14个类)进行图像分类 现在我得到了一个错误: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-469-bfab446776
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-469-bfab446776df> in <module>()
----> 1 clf.fit(X_train,y_train[:,0])
C:\Users\user\Anaconda3\lib\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
C:\Users\user\Anaconda3\lib\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.
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
---->1 clf.fit(X_系列,y_系列[:,0])
C:\Users\user\Anaconda3\lib\site packages\sklearn\svm\base.py合适(self、X、y、sample\u weight)
148 self.\u sparse=稀疏且不可调用(self.kernel)
149
-->150 X=检查数组(X,接受稀疏的'csr',dtype=np.float64,order='C')
151 y=自我验证目标(y)
152
检查数组中的C:\Users\user\Anaconda3\lib\site packages\sklearn\utils\validation.py(数组、接受稀疏、数据类型、顺序、复制、强制所有有限、确保2d、允许nd、确保最小样本、确保最小特征、警告数据类型、估计器)
371力(所有有限)
372其他:
-->373 array=np.array(array,dtype=dtype,order=order,copy=copy)
374
375如果确保_2d:
ValueError:使用序列设置数组元素。
我不认为这是由于X_列数组的大小不匹配造成的,因为X_列的每个元素都是1024个标准化像素值的列表,y_列的每个元素对应于14个属性的列表
任何帮助都将不胜感激。谢谢 我想我错在哪里了。事实证明,Xu train的数据类型是object类型,所以我不得不将其更改为float 将以下代码用于相同的
np.array(list(X_train), dtype=np.float)
np.array(list(X_train), dtype=np.float)