深層学習とその他

機械学習したいマン

scikit-learnでConfusion Matrixを見やすく表示する

アドベントカレンダー11日目です。
今日はscikit-learnでConfusion Matrixを表示したいと思います。
adventar.org

Confusion Matrixの書き方

基本的な書き方は以下に乗っているコードをほぼそのまま動かすだけです。
https://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html

少しだけ応用

今回は見やすさを上げるためにいくつか試そうと思います。
まず、デフォルトでは図のサイズが小さいので、figsizeを設定します。

plt.figure(figsize=(10,10))


色を変えたい場合には、cmapを変更します。

cmap=plt.cm.Reds


色の一覧はここを参照してください。
color example code: colormaps_reference.py — Matplotlib 2.0.2 documentation

たまに以下のように一部が見えにくい色になることがあります。
f:id:looseleaf0727:20181211230206p:plain

そういうときは、threshの値を調整するか、colorの色を設定するといいです。
背景が白いときに文字が白くなったり、逆が起こらないようにthreshの値を設定しましょう。

thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, format(cm[i, j], fmt),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

今回のソースコードはこちらです。
Colaboratoryだとなぜか十字が入っていますが気にしないでください。