使用Scikit进行SVM训练的输入形状错误



i m对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)

功能是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 ()

如果您需要特征提取的代码,请发表评论。预先感谢您。

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

根据Linearsvc的文档,fit(X,y)的参数为

x:{类似数组,稀疏矩阵},shape = [n_samples,n_features]

训练向量,其中n_samples中的n_samples和n_features中的n_samples是功能的数量。

y:类似阵列,shape = [n_samples]

相对于x

的目标矢量

但是,代码中的u是Python set。它应该是一个长度为72900的数阵列。

相关内容

  • 没有找到相关文章

最新更新