【发布时间】:2018-08-26 05:16:57
【问题描述】:
我正在尝试使用一些 Scipy 分类器来分类数据集,例如:
X = [
[2.2580403973917715e-06, 7.637149660560025e-07, 2.57156353293851e-07, 1.0411090477468541e-06, 2.966875927679557e-07, 2.8407977825637697e-08, 1.0829349857886486e-09, 6.361589208033874e-08],
[6.270357208864301e-10, 1.4976703048023198e-08, 1.6851513665698196e-08, 2.8145617066687096e-08, 1.2313171858773658e-07, 1.3792673608349409e-07, 4.78989580237296e-07, 4.7187858402735833e-07],
...
]
y = ['A', 'B', ...]
所以我在做:
from sklearn.neighbors import KNeighborsClassifier
clf = KNeighborsClassifier()
clf.fit(X, y)
但这是抛出异常:
ValueError: Expected 2D array, got 1D array instead:
array=[list([3.6368636083818036e-14, 3.392522830189899e-12, 9.89834613253366e-15, 1.2248850677983348e-12, 1.3550523047368496e-15, 3.5267405094168456e-13, 1.0774177675897417e-15, 2.7373831147145047e-13])
list([1.2702936994261183e-07, 1.1302366112093968e-08, 3.601247032753103e-07, 1.2610271278453322e-06, 3.8544108074754034e-07, 3.7388057888913323e-07, 1.0565146699133778e-06, 3.4632712456302423e-07])
list([6.663127039198243e-09, 1.592855782829962e-08, 2.5189316052885216e-09, 8.71344955078468e-08, 1.560205602695966e-08, 1.8025334695989781e-07, 1.1457211528200937e-06, 5.950518479674942e-07])
...
list([1.8681641214886276e-08, 2.205503463622159e-08, 9.327746218326714e-10, 3.1025040738394077e-09, 2.5949152371447647e-09, 1.512181130670229e-11, 5.786442161657287e-10, 1.4137420397921863e-10])
list([1.173538500657531e-05, 2.0979757955014606e-05, 0.00041950915503583496, 0.0005116279917528409, 0.0003344955721068041, 0.0003088865534818541, 0.0009895311928082445, 0.0008824911646422847])
list([2.8243472997407836e-06, 4.503534390316763e-07, 6.076586515867012e-07, 3.1616543548189114e-07, 3.145241529895121e-07, 1.7389540865566907e-07, 1.7234379120699387e-07, 3.603187075520089e-08])].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
这是什么意思?此问题/错误之前已在此处发布,但我不明白为什么我的代码会触发此错误。我的 X 是 2D 数组,而不是 1D 数组,所以我不明白我应该重塑什么。我的数据和the example here.基本一样
我做错了什么?
【问题讨论】:
-
它在 python2.7 中对我来说是工作文件
-
这看起来很奇怪。你用的是什么版本的 python 和
sklearn?X=np.array(X)在fit之前有帮助吗?
标签: python scipy scikit-learn