缓冲区错误 sklearn SVM 工具包

Buffer error sklearn SVM toolkit

我有这个东西。我正在从一个文本文件中获取一些数据并制作一个这样的列表

d3list=[]
d4list=[]
for i in range (0,99):
    d3list.append(data3[i,:])
for i in range (0,99):
    d4list.append(data4[i,:])

X = [d3list,d4list]
y = [0,1]
msv = svm.SVC()
msv.fit(X,y)  

但是当我尝试 运行 这个时,我得到了这个错误

ValueError: Buffer has wrong number of dimensions (expected 2, got 3)

不知道是X错了还是Y错了。据我所知,列表的列表被接纳为 X 部分的输入。

此致

据推测,您的 d3listd4list 包含 numpy 数组列表。您应该有一个一维数字向量,而不是列表列表。

以下在我的机器上工作正常。

from sklearn import svm
import numpy as np

data3 = np.random.rand(100,2)
data4 = np.random.rand(100,2)

d3list=[]
d4list=[]

for i in range (0,99):
    d3list += list(data3[i,:]) #d3list is the concatenation
for i in range (0,99):
    d4list += list(data4[i,:]) #d4list is the concatenation

X = [d3list,d4list]
y = [0,1]
msv = svm.SVC()
msv.fit(X,y)

详细说明,

>>> myList = []
>>> myList.append([1,2,3])
>>> myList.append([4,5,6])
>>> myList
[[1,2,3],[4,5,6]]
>>> myList = []
>>> myList += [1,2,3]
>>> myList += [4,5,6]
>>> myList
[1,2,3,4,5,6]