ConfusionMatrix【混合行列】

ConfusionMatrixはクラス分類問題の結果を「実際のクラス」と「予測したクラス」を軸にしてまとめたものになります。

・真陽性(TP: True Positive): 実際のクラスが陽性で予測も陽性(正解)
・真陰性(TN: True Negative): 実際のクラスが陰性で予測も陰性(正解)
・偽陽性(FP: False Positive): 実際のクラスは陰性で予測が陽性(不正解)
・偽陰性(FN: False Negative): 実際のクラスは陽性で予測が陰性(不正解)

上記の4種類の算出結果を行列形式にしたものをConfusionMatrix【混合行列】と言います。

分類問題であれば、この混合行列でモデルの精度を解釈することが可能。

混合行列はsklearn.metrics.confusion_matrixを用いて作成することができ、第1引数に正解ラベル、第2引数に予測ラベルを指定。

<手順①>ライブラリのインポート

from sklearn.metrics import confusion_matrix

<手順②>変数の設定と混合行列の作成

  # 正解ラベル
       y_true = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]

       # 推定ラベル
       y_pred = [0, 1, 1, 1, 1, 0, 0, 0, 1, 1]

       # 混合行列の作成
       cm = confusion_matrix(y_true, y_pred)

混合行列を出力

 print(cm)
 
 ------------------------

  [[1 4]
   [3 2]]

<手順③>混合行列の可視化

混合行列の可視化はライブラリseabornのheatmap()関数を用います。

In [2]: # ライブラリのインポート
       import seaborn as sns
       import matplotlib.pyplot as plt

       # ヒートマップの作成
       sns.heatmap(cm, annot=True,cmap='Blues')
       plt.show()

画像1

・今回はランダムフォレストを使いましたが、今まで勉強してきた様々なアルゴリズムを使用することができます。
・データ準備→データ分割→データの学習→精度評価までの流れをスムーズに行えるようになると、あとは個別のデータ前処理に集中するのみでモデリングを行うことが可能となります。


この記事が気に入ったらサポートをしてみませんか?