シンプルなデシジョンツリークラシファイアを使用するためにsklearnを使用しようとしましたが、1D配列を使用するとX.reshape(1、-1)を使用する必要があります。だから私はやったが、ラベルリストを1つの要素だけのリストリストに変えたので、ラベルとサンプルの数は今一致していない。別の言葉私のラベルのリスト= [0,0,1,1]は[[0 0 1 1]]に変わります。あなたが間違ったことを再形成されているsklearnの1D配列でx.reshapeを使用する
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]'? – Andrew
これは(1、-1)の代わりにreshape(-1,1)を使うのと同じようです。それは正しい答えを与えるが、私はまだ1D配列の使用が完全に廃止されれば、廃止予定の警告 – kevbuntu
を得るだろうと、sklearnの作者はそれを考慮に入れるためにその(そしておそらく他の)関数を変更する必要があるだろう。私は、 'xまたはy == 1 'であっても、常に' shape'(x、y)の配列が2Dであると理解しています。それは私が間違っていたと言いました。 – Andrew