scikit-学ぶマルチ分類混同行列

注意:一部値下げ構文は、この本を簡略化することができるビューをレンダリングされていません:マルチ分類混同行列を学びscikit

フロント

sklearn.metrics.multilabel_confusion_matrixされscikit-学び 0.21新機能。名前の混同行列は、マルチタグを計算するのに使用されて知って見て。しかし、あなたはまた、混同行列のマルチ分類を計算するためにそれを使用することができます。MCMの使用、多2分類にデータを分類するワンVSレスト戦略を、それが正のサンプルのいくつかの並べ替え、陰性試料の残りのカテゴリです。陽性サンプル、混同行列計算など各カテゴリ。すべてがオーダーラベルを返します。
MCMは、 [0、0]、FN [1,0]、TP [1,1]、FP [1,0]、すなわち、バイナリ分類を各混同行列、TNを返す
| TN | | FP
| - | - |
| FN | TP |

公式の例

## 如果导入报错,检查一下 sk-learn version >= 0.21
>>> from sklearn.metrics import multilabel_confusion_matrix
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> mcm = multilabel_confusion_matrix(y_true, y_pred,
...                             labels=["ant", "bird", "cat"])
>>> mcm
array([[[3, 1],
        [0, 2]],
       [[5, 0],
        [1, 0]],
       [[2, 1],
        [1, 2]]])

一例として、第一のカテゴリー「アリ」において、2つの予測、その負のサンプル、「鳥」と「猫」が「猫」に3(「鳥」予測であるがあり、予測のために考慮することができます彼らはクラスであるため、負のサンプルです。)負のサンプルが陽性のサンプルを持って予測しました。

評価指標

各クラスTP、FPなどを抽出することができます。

>>> tp = mcm[:, 1, 1]
>>> tn = mcm[:, 0, 0]
>>> fn = mcm[:, 1, 0]
>>> tp, tn
(array([2, 0, 2], dtype=int64), array([3, 5, 2], dtype=int64))

ここではいくつかの共通の評価指標は以下のとおりです。

  1. 感度(感度)もリコール(想起)として知られ、またリコールと呼ばれます。この指標は予想に陽性試料の総陽性検体の割合を見ることです。これは、陽性試料のより感度の高い予測を示し、陽性試料、より大きな感度の予測因子といえます。
    $$ SN = \ FRAC {TP} {TP + FN} $$
  2. 特異性(特異性)及び敏感この感度考え陽性試料、及び特定数の代わりに負のサンプルです。換言すれば、負のサンプルの感度を指します。結局のところ、あなたがいないだけで敏感陽性検体と陰性サンプル、予測因子、彼はリラックス。陰性サンプルの感度予測を評価することが必要です。
    $$ SP = \ FRAC {TN} {TN + FP} $$
  3. 陽性試料の陽性サンプルの割合のためのあなたの予想を見ているプレシジョン(精度)は、正しく総予測を予測しました。
    $$精度= \ FRAC {TP} {TP + FP} $$
  4. F1値、一般的には、リコールと精度を同時にではありません素晴らしいです。たとえば:あなたは今、100 Aと100 Bは、あなたが今予測するための良いモデルで訓練されている必要があり、80 Aを有することが予測 しかし、この1は75 A.正しかったです その精度は、$ 75 / $ = 80 0.9375パーセント、再現率は、$ 75 / $ 100 = 0.75です。あなたがモデルを改善し続ける、再現率が低すぎると思います。95 A.に予測、この予測を行ってきました 予測85によって正確である、すなわち、リコール:$ 85 / $ 100 = 0.85、0.1の増加が、精度:$ 85 / $ 95 = 0.895は減少しました。あなたは、エラーを起こしやすい、より多くのを確認したいです。2つのインジケータが良い発見したように、二つの世話をするために、そこF1値:
    $$ =フロリダ\ {FRAC * 2(*精密リコール)} {(精密リコール+)} $$

コードによって各クラスのマルチカテゴリ評価値を得ることは容易です。

>>> sn = tp / (tp + fn) ## 其它同理
>>> sn
 array([1.        , 0.        , 0.66666667])x xz

使用して1-VS-休息時にマルチ分類2クラス問題に、彼らは情報の一部を失う傾向にあります。そこ負のサンプル中のいくつかの種類がありますが、関係なく、独自のラベルは、負のサンプルでは、サンプルは、長いラベルが正しいか予測できないほど肯定的であるかどうかを予測します。それは良い評価ではない残りの予測インチ 評価は、より良いマルチ分類がマクロまたはミクロ平均平均で考慮されるべきであるほしいです。

参照

sklearn.metrics.multilabel_confusion_matrix

オリジナル:マルチ分類混同行列を学びscikit

おすすめ

転載: www.cnblogs.com/huanping/p/10959271.html