【发布时间】:2017-01-16 09:45:10
【问题描述】:
我尝试使用 sklearn 来使用简单的决策树分类器,但它抱怨使用一维数组现在已被弃用,必须使用 X.reshape(1,-1)。所以我做到了,但它已将我的标签列表变成了只有一个元素的列表列表,因此标签和样本的数量现在不匹配。换句话说,我的标签列表=[0,0,1,1] 变成了 [[0 0 1 1]]。谢谢
这是我使用的简单代码:
from sklearn import tree
import numpy as np
features =[[140,1],[130,1],[150,0],[170,0]]
labels=[0,0,1,1]
labels = np.array(labels).reshape(1,-1)
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features,labels)
print clf.predict([150,0])
【问题讨论】:
-
我怀疑你可能想要这个:
labels = np.asarray(labels)[:, None]? -
这似乎相当于使用 reshape(-1,1) 而不是 (1,-1)。它给出了正确的答案,但我仍然收到弃用警告
-
大概,一旦完全弃用一维数组,sklearn 的作者将不得不修改该(可能还有其他)函数以将其考虑在内。我一直认为
shape(x, y) 的数组是二维的,即使x or y == 1也是如此。也就是说,我以前错了。
标签: python scikit-learn