機械学習のクラス分類を行う際に、出力結果として混同行列(Confusion Matrix)を出力し、保存する方法について解説します。
目次
クラス分類結果の混同行列(Confusion matrix)
クラスの分類結果を混同行列で表示するには、classification_report
を使う。
出力形式はCSVファイルとする。
import numpy as np
import pandas as pd
from sklearn.metrics import classification_report
# 出力結果の保存先
result_dir = "./report_confusion_matrix.csv"
# 予測ラベルと正解ラベル
y_pred = np.array([1, 0, 2, 2, 1, 0])
y_true = np.array([1, 0, 2, 1, 2, 0])
# 分類するクラス
target_class = ['Class_A', 'Class_B', 'Class_C']
# レポートを作成
result = classification_report(y_pred=y_pred, y_true=y_true,
target_names=target_class, output_dict=True)
result_df = pd.DataFrame(result).T
result_df.to_csv(result_dir)
print(result_df)
"""
precision recall f1-score support
Class_A 1.000000 1.000000 1.000000 2.000000
Class_B 0.500000 0.500000 0.500000 2.000000
Class_C 0.500000 0.500000 0.500000 2.000000
accuracy 0.666667 0.666667 0.666667 0.666667
macro avg 0.666667 0.666667 0.666667 6.000000
weighted avg 0.666667 0.666667 0.666667 6.000000
"""