我收到此错误,即使经过多次调试,数组似乎是一个2D数组:
reg = linear_model.SGDClassifier()
X = []
Y = []
with open('data/legitimate.txt', 'r', encoding='utf8') as f:
for line in f:
X.append(get_heuristics(line))
Y.append(0)
with open('data/bad.txt', 'r', encoding='utf8') as f:
for line in f:
X.append(get_heuristics(line))
Y.append(1)
X = np.array(X)
Y = np.array(Y)
reg.fit(X, Y)
get_heuristics()
返回1D数组的位置。有什么理由可以发生这种情况?感谢
答案 0 :(得分:0)
X
数组是2D数组。正确地说,getheuristics()
返回一个1D数组,附加一个1D数组将构成一个2D数组。但是,由于Y
仅是1D,将显示错误“期望的2D数组,改为有1D数组”。毕竟,您每次只是简单地附加一个数字,因此是一维数组。 Scikit-learn的fit
需要两个2D数组。我确定控制台会建议您执行以下操作:
Y = Y.reshape(-1,1)
在致电reg.fit(X,Y)
之前。