2016-08-19 14 views
3

私は、ラベルは次のようになり、複数のラベル付きデータに対する混同行列をプロットしています:プロット混同行列sklearn

LABEL1:1、0、0、0

LABEL2:0、 1、0、0

LABEL3:0、0、1、0

Label4から:0、0、0、1

以下のコードを使用して正常に分類できます。 私は混乱行列をプロットするためにいくつかの助けが必要です。

for i in range(4): 
     y_train= y[:,i] 
     print('Train subject %d, class %s' % (subject, cols[i])) 
     lr.fit(X_train[::sample,:],y_train[::sample]) 
     pred[:,i] = lr.predict_proba(X_test)[:,1] 

私は混乱行列を印刷するには、次のコードを使用しますが、それは常に2×2行列

prediction = lr.predict(X_train) 

print(confusion_matrix(y_train, prediction)) 

答えて

0

を返す私はこれを参照してくださいまだsklearnのリポジトリに未解決の問題である:

https://github.com/scikit-learn/scikit-learn/issues/3452

ただし、実装にはいくつかの試みがありました。同じ#3452スレッドの問題から:

https://github.com/Magellanea/scikit-learn/commit/514287c1d5dad2f0ab4918dc4da5cf7053fe6734#diff-b04acd877dd793f28ae7be13a999ed88R187

あなたは、関数の中で提案されているコードをチェックし、それが自分のニーズに合うかどうかを確認することができます。

+0

私は、confusion_matrixをmultilabel_confusion_matrixに置き換えました。これは、名前 'multilabel_confusion_matrix'が定義されていないというエラーを出します。この問題の回避策はありますか?この問題はGithubに公開されているようだ。 – tourist

+0

まさに私が言ったように:「未だに未解決の問題」。コードを使用しようと思った場合に備えて、コードへのリンクを渡しました。しかし、それはsklearnのコードにはないので、定義されていないと言います。使用したい(私は試していない)場合は、 'multilabel_confusion_matrix'のすべてのコードを独自のコードに組み込み、関数を呼び出す必要があります。これは2014年の未解決の問題であり、まだ未解決な問題ではないとの疑問が残っていることから注意してください。私はちょうどあなた自身でそれを試してみたいと思っていて、あなた自身でそれを解決したい場合に備えて、ポインタを与えました。がんばろう! –

関連する問題