2012-03-16 18 views
5

私はscikitsインターフェイスを使用してクロスバリデーション(stratifiedKfold)を使用してSVMクラシファイアをトレーニングしています。各テストセット(kの)について、私は分類結果を得る。私はすべての結果を混乱行列にしたい。 Scikitsには、混同行列インターフェイスがあります。 sklearn.metrics.confusion_matrix(y_true、y_pred) 私の質問は、y_trueとy_predの値をどのように累積するべきかです。それらは配列(numpy)です。 k-foldパラメーターに基づいて配列のサイズを定義する必要がありますか?そして、結果ごとにy_trueとy-predを配列に追加する必要がありますか?クロスバリデーションを使用したscikits混同マトリクス

+2

私はこの問題の解決策を得ました。それぞれの繰り返し(私のk倍を経て)では、私は前のものに追加する「混乱マトリックス」を作成します。このようにして、すべての値を含むCNを取得します。 numpyでは、この累積行列(cm + = cm)を構築するのは簡単です – user963386

+0

しかし精度/再呼び出し(classification_report)に関する蓄積レポートを取得したい場合はまだ問題があります。 – user963386

+0

クロスバリデーションの間、y_trueは一定になります.y_predでは、混同マトリックスのような同じ手順に従うことができます。 –

答えて

2

総混乱マトリックスを使用するか、CVパーティションごとに1つずつ計算し、ばらつきの尺度として、マトリックス内の各コンポーネントの平均と標準偏差(または標準誤差)を計算することができます。

分類レポートでは、各CVパーティションの予測を渡し、各クラスの平均スコアと標準偏差を計算するために、2次元入力を受け入れるようにコードを修正する必要があります。

+1

あなたはどのようにして総合的な混乱マトリックスを作成できますか? – Merlin

+0

コードは役に立ちます... – Merlin

関連する問題