2017-08-19 15 views
1

私はMLとsklearnの世界では初めてです。私はX_train[2500,800]Y_train[2500,8]のデータセットでGaussianNBを使用しようとしました。プログラムを実行する上でsklearn(不正入力シェイプ)ValueError

from sklearn.naive_bayes import GaussianNB 
clf = GaussianNB() 
clf.fit(X, Y) 

、私がY_train[2500,1]Y_train[2500,8]を変換するにはどうすればよい

ValueError: bad input shape (2500, 8).

を示していますか?フィット関数は、配列では動作しませんので

+0

あなたのデータは? '800'機能を持つ' 2500'サンプルがありますか? –

+0

はい。 2500サンプル。そしてyには8つのラベルがあります。しかし、分類器は1つの列のみを受け入れる。 –

+0

'Y_train'は、目標値のリスト、すなわち、i番目の要素がデータセットのi番目のトレーニングケースのクラスラベルであるリストでなければならない。したがって、それは一次元でなければならない。したがって、あなたの 'Y_train'が形(2500,8)であれば、多分何かを混ぜてしまいます。 – MaxPowers

答えて

1

OPは@Ishant Mrinalはあなたがフィット関数に1ホットエンコーディングを渡すことができるようになります。この

Y_train = np.argmax(Y_train, axis=1) 

を推奨しています1つのホットエンコーダを使用しています。

関連する問題