Confusion Matrix(혼동행렬) 구현
2022. 4. 16. 00:22ㆍArtificial_Intelligence/etc
모델의 성능을 따지는 지표는 정확도(Accuracy)만 있는 것이 아니다.
Confusion Matrix은 알고리즘 및 모델의 진단,분류,판별,예측 능력을 평가하기 위하여 고안된 표로, 오류행렬(error matrix)이라고도 불리기도 한다.
성능지표로 정확도(Accuracy), 정밀도(Precision), 민감도(=재현율 Recall), F1score 등이 있으며, confusion matrix로 표현이 가능해진다.
# 혼동행렬
import matplotlib.pyplot as plt
my_data = []
y_pred_list = []
for data in prediction_list :
for data2 in data :
my_data.append(data2.item())
for data in label_list :
for data2 in data :
y_pred_list.append(data2.item())
from sklearn.metrics import confusion_matrix
confusion_matrix(my_data, y_pred_list)
import pandas as pd
import seaborn as sns
confusion_mx = pd.DataFrame(confusion_matrix(y_pred_list, my_data))
ax =sns.heatmap(confusion_mx, annot=True, fmt='g')
plt.title('confusion', fontsize=20)
plt.show()
from sklearn.metrics import precision_score, recall_score, f1_score, accuracy_score, classification_report
print(f"precision : {precision_score(my_data, y_pred_list, average='macro')}")
print(f"recall : {recall_score(my_data, y_pred_list, average='macro')}")
print(f"f1 score : {f1_score(my_data, y_pred_list, average='macro')}")
print(f"accuracy : {accuracy_score(my_data, y_pred_list)}")
f1_score_detail= classification_report(my_data, y_pred_list)
print(f1_score_detail)
위와 같은 방식으로 혼동행렬을 표시할 수 있으며, Label=3인 분류 모델 학습 결과는 아래와 같다.
1)https://manisha-sirsat.blogspot.com/2019/04/confusion-matrix.html
https://namu.wiki/w/%ED%98%BC%EB%8F%99%ED%96%89%EB%A0%AC
728x90
'Artificial_Intelligence > etc' 카테고리의 다른 글
그래서, Docker가 뭔데? (1) | 2024.05.15 |
---|---|
Learning Rate Scheduler (0) | 2022.05.29 |
How to use "Hugging Face"(허깅페이스) for NLP Task (0) | 2022.04.16 |
RNN, CNN (1) | 2021.06.12 |
Artificial Intelligence (0) | 2021.04.23 |