Radi_tech’s blog

Radiological technologist in Japan / MRI / AI / Deep learning / MATLAB / R / Python

【Python】sklearnとseabornでConfusion matrixを簡単に作成する。

python

Deep learning, Machine learningのclassificationでは必須のconfusion matrix


sklearnとSeabornで簡単に作成できます。


Test用csvはこんな感じ。
正解のlabelを予測されたlabelを縦に並べる。

Seaborn confusion matrix
test csv


今回は、シンプルに"Good"と"Bad"の2class 分類


ここからコード↓
必要なmoduleは事前にインストールしてくださいませ。

# import module
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix


#read csv data & confirming
csv_path = "writing csv path here"


test_data = pd.read_csv(csv_path)
test_data.head()


# put into numpy arrey
Correct_label = np.array(test_data["Correct Label"])
Predict_label = np.array(test_data["Predict Label"])
labels = ['Correct', 'Predict']

# Confusion matrix creation
cm = confusion_matrix(Correct_label, Predict_label)
cm = pd.DataFrame(data=cm, index=["Good", "Poor"], 
                           columns=["Good", "Poor"])

sns.heatmap(cm, square=True, cbar=True, annot=True, cmap='Blues')

plt.xlabel("Predction label", fontsize=10, fontstyle='italic')
plt.ylabel("Correct label", fontsize=10, fontstyle='italic')


# save as png wtih 300dpi resolution
plt.savefig('test_confusion_matrix.png', format="png", dpi=300)

seaborn confusion matrix
confusion matrix

簡単&綺麗

色味の調整もできるのですが、とくに不満がないのでいつもこのまま使用してます。