Replicated

분류 문제의 성능 지표 본문

빅데이터마이닝

분류 문제의 성능 지표

라구넹 2025. 4. 12. 15:30

모델을 평가하는 성능 지표들

- 회귀(regression): MAE, MSE, RMSE, SSE

- 분류(classification): 정확도, 정밀도, 민감도, F1 스코어, ROC 커브, 리프트 차트

- 클러스터링(clsutering): DBI, 엘보우 메서드, 실루엣 계수

 

추가적인 성능 지표

- 모델의 경제성

- 모델이 쓰는 데이터 양

- 모델이 용량이 작은 컴퓨터에서도 돌아가나?

 

 

분류 문제의 성능지표

혼동행렬(confusion matrix)

- 예측값이 실제값 대비 얼마나 잘 맞는지 2x2 행렬로 표햔

  예측값(prediction)
실제값(actual class)   1 0
1 True Positive False Negative
0 False Positive True Negative

True Positive(TP) : 예측값, 실제값 모두 1로 동일 (맞는 걸 맞다고 함)

True Negative(TN) : 예측값, 실제값 모두 0으로 동일 (틀린 걸 틀렸다고 함)

False Negative(FN) : 실제값 1 예측값 0 (맞는 걸 아니라고 함)

False Positive(FP) : 실제값 0 예측값 1 (틀린 걸 맞다고 함)

 

정확도(accuracy)

- 전체 데이터 대비 정답을 맞춘 데이터의 개수

- Accuracy = (TP + TN) / (TP + TN + FP + FN)

 

정밀도와 민감도

- 정밀도와 민감도는 불균일한 데이터셋을 다룰 때 유용

- 데이터에서 1와 0의 비율이 7:3 또는 3:7 이상 차이나는 상태

 

정밀도(precisiopn)

- 모델이 1이라고 예측했을 때 얼마나 잘 맞았을지에 대한 비율

- PRECISION(PPV) = TP / (TP + FP)

 

민감도(recall)

- 실제 1인 값을 가진 데이터를 모델이 얼마나 1이라고 잘 예측했는지에 대한 비율

- == 반환율, 재현율

- RECALL(TPR) = TP(TP + FN)

 

F1 스코어(F1 score)

- 정밀도와 민감도의 조화평균 값

F1 = 2 * (precision * recall) / (precision + recall)

 

예시

  예측
실제   암환자 정상인
암환자 2 7
정상인 1 90

정확도: 92/100

정밀도: 2/3

민감도: 2/9

 

사이킷런

from sklearn.metrics import confusion_matrix
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [0, 0, 1, 1, 0, 1]
confusion_matrix(y_true, y_pred)

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
(tn, fp, fn, tp)

import numpy as np
from sklearn.metrics import accuracy_score
y_pred = np.array([0, 1, 1, 0])
y_true = np.array([0, 1, 0, 0])
#accuracy = (y_pred[ y_pred == y_true ].size) / y_true.size
#accuracy
np.sum(y_true == y_pred) / len(y_true)

정확도 계산

주석 친 거도 같은 결과 나옴

 

accuracy_score(y_true, y_pred)

사이킷런 함수 써도 됨

 

import numpy as np
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
y_pred = np.array([0, 1, 1, 0, 1, 1, 1, 0])
y_true = np.array([0, 1, 0, 0, 0, 0, 1, 1])

정밀도, 민감도, F1 스코어도 가능

 

 

'빅데이터마이닝' 카테고리의 다른 글

다중클래스 분류 & 소프트맥스 분류  (0) 2025.04.12
로지스틱 회귀 구현  (0) 2025.04.12
로지스틱 회귀  (0) 2025.04.11
과대적합과 정규화  (0) 2025.04.11
경사하강법 실습  (0) 2025.04.08