41

confusion_matrix()scikit-learnを使用して、分類子の混同行列を計算しました。混同行列の対角要素は、予測されたラベルが真のラベルと等しい点の数を表しますが、非対角要素は分類器によって誤ってラベル付けされた要素です。

0 から 1 までの数値のみが含まれるように、混同行列を正規化したいと思います。正しく分類されたサンプルの割合を行列から読み取りたいと思います。

行列を正規化する方法 (行と列の正規化) をいくつか見つけましたが、数学についてはよくわからず、これが正しいアプローチであるかどうかもわかりません。

4

9 に答える 9

11

M[i,j]の略だと思いますElement of real class i was classified as j。逆の場合は、私が言うすべてを転置する必要があります。具体的な例として、次のマトリックスも使用します。

1 2 3
4 5 6
7 8 9

基本的に、次の 2 つのことができます。

各クラスがどのように分類されているかを調べる

最初に尋ねることができるのは、iここで各クラスとして分類された実際のクラスの要素の割合です。これを行うには、 を固定する行を取得し、i各要素を行内の要素の合計で割ります。この例では、クラス 2 のオブジェクトがクラス 1 として 4 回分類され、クラス 2 として 5 回正しく分類され、クラス 3 として 6 回分類されます。パーセンテージを見つけるには、すべてを合計 4 + 5 + 6 = 15 で割ります。

4/15 of the class 2 objects are classified as class 1
5/15 of the class 2 objects are classified as class 2
6/15 of the class 2 objects are classified as class 3

各分類を担当するクラスを見つける

2 番目にできることは、分類子からの各結果を調べて、それらの結果のうちのいくつが各実際のクラスから発生したかを尋ねることです。他のケースと似ていますが、行の代わりに列があります。この例では、分類子は、元のクラスが 1 の場合は 1 回、元のクラスが 2 の場合は 4 回、元のクラスが 3 の場合は 7 回、「1」を返します。パーセンテージを見つけるには、1 + 4 + の合計で割ります。 7 = 12

1/12 of the objects classified as class 1 were from class 1
4/12 of the objects classified as class 1 were from class 2
7/12 of the objects classified as class 1 were from class 3

--

もちろん、私が示した両方の方法は、一度に 1 つの行の列にしか適用されず、混同マトリックスをこの形式で実際に変更するのが良い考えかどうかはわかりません。ただし、これにより、探しているパーセンテージが得られるはずです。

于 2014-01-04T22:35:02.800 に答える
11

normalize現在、scikit-learn の混同行列には引数が付いています。ドキュメントから:

正規化: {'true', 'pred', 'all'}, デフォルト = なし

真 (行)、予測 (列) 条件、またはすべての母集団に対して混同行列を正規化します。None の場合、混同行列は正規化されません。

したがって、すべてのサンプルで値を正規化する場合は、次を使用する必要があります

confusion_matrix(y_true, y_pred, normalize='all')
于 2021-03-17T18:14:41.600 に答える
10

sklearn's による行列出力confusion_matrix()

C_{i, j} は、グループ i にあることがわかっているが、グループ j にあると予測される観測値の数に等しい

そのため、各クラスのパーセンテージ (バイナリ分類では特異性と感度と呼ばれることが多い) を取得するには、行ごとに正規化する必要があります。行の各要素を、その行の要素の合計で割った値で置き換えます。

sklearn には、混同マトリックスからメトリックを計算する集計関数が用意されていることに注意してください: classification_report。特異度と感度ではなく精度と再現率を出力しますが、一般的にはそれらの方がより有益であると見なされることがよくあります (特に不均衡なマルチクラス分類の場合)。

于 2014-01-04T23:00:08.590 に答える