코딜기

[Python/ML] 모델 평가(Model Evaluation) - 혼동 행렬(Confusion Matrix) 정확도(Accuracy)/정밀도(Precision)/재현율(Recall) 본문

ML & DL/Model Evaluation

[Python/ML] 모델 평가(Model Evaluation) - 혼동 행렬(Confusion Matrix) 정확도(Accuracy)/정밀도(Precision)/재현율(Recall)

코딜기 2022. 3. 16. 16:31
반응형

혼동 행렬(Confusion Matrix)란 무엇일까요??

  • 혼동 행렬 또는 오차 행렬이라 불리는 Confusion Matrix는 분류 모델의 평가지표로 많이 쓰입니다.
  • 혼동 행렬은 각 데이터의 실제 클래스와 예측된 클래스의 개수를 조건에 맞게 행렬 성분에 채워 넣은 것입니다.

Confusion Matrix

  • 혼동 행렬에서는 정확도(Accuracy), 정밀도(Precision), 재현율(Recall) 등의 지표를 구할 수 있습니다.
from sklearn.metrics import confusion_matrix

# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
confusion_matrix = confusion_matrix(y_valid, y_pred)
print(confusion_matrix)

정확도 (Accuracy)

  • 분류 모델을 통해 0을 0으로, 1을 1로 정확히 분류된 데이터의 비율을 말합니다.
  • 불균형 데이터 셋의 평가 척도로 사용하기엔 어려움이 있습니다.

from sklearn.metrics import accuracy_score

# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
accuracy = accuracy_score(y_valid, y_pred)
print(accuracy)

정밀도 (Precision)

  • 분류 모델을 통해 1이라고 예측한 데이터 중 실제로 1인 데이터의 비율을 말합니다.

from sklearn.metrics import precision_score

# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
precisione = precision_score(y_valid, y_pred)
print(precisione)

재현율 (Recall)

  • 분류 모델을 통해 실제로 1인 데이터 중에 1이라고 예측된 데이터의 비율을 말합니다.
  • 질병 예측에서 가장 중요한 척도 중 하나입니다.
    • 예측을 잘못하면 생명에 지장이 생길 수 있기 때문입니다.

from sklearn.metrics import recall_score

# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
recall = recall_score(y_valid, y_pred)
print(recall)

도메인에 따라 적절한 평가 지표를 선택해서 확인해야 합니다.

반응형
Comments