我对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 ()
如果您需要特征提取代码,请发表评论。提前谢谢。
答案 0 :(得分:9)
哪一行代码抛出错误?是lin_clf.fit(features,u)
吗?
根据LinearSVC的documentation,fit(X,y)
的参数是
X:{array-like,sparse matrix},shape = [n_samples,n_features]
训练矢量,其中样本数和n_features中的n_samples是特征数。
y:array-like,shape = [n_samples]
相对于X的目标向量
但是,代码中的u
是python set
。它应该是一个长度为72900的numpy数组。