Seaborn 混同行列プロット
このチュートリアルでは、Python で Seaborn の heatmap()
関数を使用して混同行列をプロットする方法について説明します。
Seaborn を使用した混同行列のプロット
分類問題では、予測結果の要約が混同行列内に格納されます。混同行列をプロットして、正しい予測と誤った予測の数を確認する必要があります。
混同行列をプロットするには、混同行列のデータフレームを作成する必要があります。次に、Seaborn の heatmap()
関数を使用して、Python で混同行列をプロットできます。たとえば、ランダムな混同行列を作成し、heatmap()
関数を使用してプロットしてみましょう。以下のコードを参照してください。
import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew
array = [
[11, 1, 0, 2, 0],
[3, 8, 0, 1, 0],
[0, 16, 3, 0, 0],
[0, 0, 12, 0, 0],
[0, 0, 0, 13, 0],
[0, 1, 0, 0, 16],
]
DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(DetaFrame_cm, annot=True)
pltNew.show()
出力:
混同行列のデータフレームを作成するために、pandas
ライブラリの DataFrame()
関数を使用しました。データフレームを作成するには、配列、行数、列数を渡す必要があります。
heatmap()
関数内の 2 番目の引数は、プロットに混同行列の値を表示するために使用されます。2 番目の引数 annot
を使用しない場合、マトリックス値は表示されず、色のみが表示されます。
プロットのカラーマップを、冬、夏、涼しい、銅、暑いなどの機能でサポートされている任意のカラーマップに変更できます。cbar
引数を使用してプロットの右側に表示されるカラーバーをオフにし、false に設定することもできます。
linewidths
および linecolor
パラメータを使用して、各セルの周囲の線の幅と色を指定することもできます。任意の浮動小数点値を使用して、線幅の値を設定できます。色の名前または色の最初の文字を使用して、線の色の値を設定できます。
square
引数を使用して各セルの形状を正方形に設定し、それを true に設定できます。x 軸の目盛りラベルには xticklabels
を使用し、y 軸の目盛りラベルには yticklabels
を使用して、各軸の目盛りラベルを設定することもできます。
ティックラベル引数を x 軸セルと同じサイズのリストに設定できます。たとえば、上記の引数を変更してみましょう。以下のコードを参照してください。
import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew
array = [
[11, 1, 0, 2, 0],
[3, 8, 0, 1, 0],
[0, 16, 3, 0, 0],
[0, 0, 12, 0, 0],
[0, 0, 0, 13, 0],
[0, 1, 0, 0, 16],
]
DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(
DetaFrame_cm,
annot=True,
cmap="summer",
cbar=False,
linewidths=3,
linecolor="r",
square=True,
xticklabels=["a", "b", "c", "d", "e"],
)
pltNew.show()
出力:
Seaborn の set()
関数を使用して、両方の軸の目盛りラベルのフォントサイズを設定することもできます。set()
関数内の font_scale
パラメーターを使用して、フォント値を任意の浮動小数点数に設定できます。たとえば、上記のプロットのフォントサイズを設定するには、以下のコードを使用できます。
snNew.set(font_scale=1.9)
フォントサイズを小さくしたい場合は、1 未満の値を使用する必要があります。