혼동 행렬(Confusion Matrix)
- 모델의 성능을 평가할 때 사용되는 지표
- 예측값이 실제 관측값을 얼마나 정확히 예측했는지 보여주는 행렬
- 분류 모델을 평가하는 기준
- 모델이 얼마나 정밀한지, 얼마나 실용적인지, 얼마나 정확한지를 평가
레이블 0, 1을 가진 데이터를 분류한다고 할 때 관심 범주를 1이라고 한다
- True Positives : 1인 레이블을 1이라 하는 경우 → 관심 범주를 정확하게 분류한 값
- False Negatives : 1인 레이블을 0이라 하는 경우 → 관심 범주가 아닌 것으로 잘못 분류
- False Positives : 0인 레이블을 1이라 하는 경우 → 관심 범주라고 잘못 분류
- True Negatives : 0인 레이블을 0이라 하는 경우 → 관심 범주가 아닌 것을 정확하게 분류
import numpy as np
df = pd.read_excel('test.xlsx')
m = logit('종속변수 ~ 독립변수1 + 독립변수2', df).fit()
m.summary()
# 예측
prob = m.predict(df)
pred = np.where(prob>0.5, 1, 0) # 문턱값 = 50%
# 혼동 행렬
from sklearn.metrics import confusion_matrix
confusion_matrix(df.y, pred)
이 정보를 바탕으로 3가지의 척도 평가
1️⃣ 정확도(Accuracy)
- 모델이 입력된 데이터에 대해 얼마나 정확하게 예측하는지를 나타냄
- 예측값 결과와 실제값이 동일한 건수 / 전체 데이터 수
- 정확도는 1을 1로, 0을 0으로 정확하게 분류해낸 것
from sklearn.metrics import accuracy_score
accuracy_score(df.y, pred)
2️⃣ 정밀도(Precision)
- 모델이 1로 분류해낸 그룹 A가 있을 때, 모델이 얼마나 믿을만한 정도로 A를 만들어 냈는지 평가하는 척도
- 양성 예측 중에 맞은 비율
- 예측 중에 얼마나 맞았는지를 측정
- 예시 : 추천 알고리즘
from sklearn.metrics import precision_score
precision_score(df.y, pred)
3️⃣ 재현도(Recall)
- 정밀도와 비교되는 척도
- 전체 예측 중에 TP가 얼마나 많은가에 관한 것
- 실제 중에 얼마나 맞았는지를 측정
- 양성을 찾아 내는 것이 중요한 경우
- 관심 영역을 얼마나 추출해냈는지를 말함
- 즉, 모형의 실용성과 관련된 척도
- 예시 : 코로나 자가키트
from sklearn.metrics import recall_score
recall_score(df.y, pred)
참고
Confusion Matrix를 통한 분류 모델의 평가
분류 모델을 학습하는 것의 목적은, 주어진 데이터를 의도에 맞게 잘 분류해내기 위한 것이다. 그렇다면 이러한 모델을 평가하는 기준이 필요할 것이다. 모델을 평가할때는 모델이 얼마나 정밀
yamalab.tistory.com
Confusion Matrix (혼동행렬)
지난주 토요일(4/17) 빅데이터분석기사 필기시험을 치렀다 데이터분석전문가(ADP)를 딴지 얼마 안돼서 그런지 체감 난이도는 그저 그런 수준? (어차피 출제기관은 한국데이터산업진흥원으로 동일
yogyui.tistory.com
반응형
'Database > Statistics' 카테고리의 다른 글
[통계] 비지도학습(차원 축소, 군집분석) (0) | 2021.09.20 |
---|---|
[통계] 로지스틱 회귀분석(Logistic Regression) (0) | 2021.09.05 |
[통계] 로그 함수 + Python (0) | 2021.09.04 |
[통계] 회귀분석(회귀계수, R제곱, 더미코딩) + Python (0) | 2021.09.04 |
[통계] 상관분석 + Python (0) | 2021.09.04 |