我试图在1997年训练样本的一维特征向量上拟合一个分类器,样本大小相同,包含y:

clf = svm.SVC()

j = 0

a = 0

listX = []

listY = []

while a <= 1996:
    ath_X = "".join(linesplit[a])
    listX = listX + [int(ath_X)]
    a+=1

while j <= 1996:
    jth_Y = "".join(linesplit1[j])
    listY = listY + [((int(jth_Y))-1)]
    j+=1

X = np.array(listX)

y = np.array(listY)

print("%s %s %s %s" % ('Dimension of X: ', len(X), 'Dimension of y: ', len(y)))

print("%s %s" % (X.shape[0], y.shape[0]))

print(X[1996])

print(y[1996])

clf.fit(X, y)

ficheiro1.close()

ficheiro.close()

print("We're done")

--->这是打印出来的:
X的维数:1997 y的维数:1997
1997年1997年
九亿八千七百六十五万四千三百二十一

回溯(最近一次呼叫时间):
文件“C/Python27/qqer.py”,第52行,in
clf.配合(X,y)
文件“C:\ Python27\lib\site packages\sklearn\svm\base.py”,第166行,适合
(X形[0],y形[0]))
值错误:X和y具有不兼容的形状。
X有1个样本,但y有1997个。
--->如果我打印出X和y的相同形状,为什么会出现这样的错误?有什么想法吗?

最佳答案

X的形状必须(n_samples, n_features)SVC.fit文档字符串中所述。一维数组被解释为单个样本(以便在单个样本上进行预测)。将X重塑为(n_samples, 1)

关于python - X和y的形状不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24923143/

10-12 19:55