- 회귀 모델 평가
- 회귀 모델: 수치형 값을 예측하는 것
- 회귀 모델이 정확한 값을 예측하기는 사실상 어렵다.
- 예측값과 실젯값에 차이(=오차)가 있을 것으로 예상
- 예측값이 실젯값에 가까울 수록 좋은 모델이라 할 수 있음
- → 오차로 모델 성능을 평가
- 분류 모델 평가
- 분류 모델: 0 또는 1인지를 예측하는 것
- 실젯값도, 예측값도 0과 1임
- 물론 0을 1로, 1을 0으로 예측할 수도 있음
- 예측값이 실젯값과 많이 같을 수록 좋은 모델
- → 정확히 예측한 비율로 모델 성능 평가
1. 회귀 모델 성능 평가
1. 용어
- 실젯값: 실제로 예측하고 싶은 값, Target이자 목푯값
우리가 알아야 할 오차는 이 값과 예측값의 차이 - 평균값: 이미 알고 있는, 이미 존재하고 있는 평균으로 예측한 값
우리가 만든 모델의 예측값이 평균값보다 오차를 얼마나 더 줄였는지가 관건 - 예측값: 우리가 만든 모델로 새롭게 예측한 값
평균값보다 얼마나 잘 예측했을지를 알아봐야 함 - 오차 = 실젯값 - 예측값
2. 회귀 평가 지표
- MSE: Mean Squared Error
- RMSE: Root Mean Squared Error
- MAE: Mean Absolute Error
- MAPE: Mean Absolute Percentage Error
- → 주로 MAE를 사용
3. 결정 계수 R^2(R-Squared)
- 전체 오차 중에서 회귀식이 잡아낸 오차 비율(일반적으로 0 ~ 1 사이)
- 오차의 비 또는 설명력이라고 부름
- R^2 = 1 이면 MSE = 0이고 모델이 데이터를 완벽하게 학습한 것(R^2가 완전히 1이 되는 것은 사실상 불가능)
- R^2 = SSR / SST = 1 - (SSE / SST)
4. 모델 평가하기
- 평가에 필요한 함수 호출
# 함수 불러오기
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_absolute_percentage_error
from sklearn.metrics import r2_score
- 실젯값(y_test)과 예측값(y_pred)을 매개변수로 전달해 평가
# 평가하기
# mean_absolute_error(실젯값, 예측값)
print(mean_absolute_error(y_test, y_pred))
- MSE, RMSE, MAE, MAPE는 오류(Error)이므로 값이 작을 수록 좋음
- R2 Score는 값이 클 수록 좋음
2. 분류 모델 성능 평가
1. 용어
- 정확도(Accuracy): 1과 0을 정확히 예측한 비율
- 정밀도(Precision): 1이라 예측한 것 중에서 실제로 1인 비율(예측값 관점)
- 재현율(Recall): 실제로 1인 것 중에서 1이라 예측한 비율(실젯값 관점)
2. 혼동행렬과 평가지표
- TN: 음성을 음성으로 잘 예측한 것
- FP: 음성을 양성으로 잘못 예측한 것
- FN: 양성을 음성으로 잘못 예측한 것
- TP: 양성을 양성으로 잘 예측한 것
2-1. 정확도
- 가장 직관적으로 모델 성능을 확인할 수 있는 평가지표
- Accuracy = (TN + TP) / (TN + FP + FN + TP)
2-2. 정밀도(예측 관점)
- Precision = TP / (FP + TP)
- 예) 암이라 예측한 환자 중 실제 암 환자 비율
정밀도가 낮을 경우 발생하는 상황 → 암이 아닌데 암이라 진단하여 불필요한 치료 발생
2-3. 재현율(실제 관점)
- Recall = TP / (FN + TP)
- 예) 실제 암 환자 중 암이라고 예측한 환자 비율
재현율이 낮을 경우 발생하는 문제 → 암 환자에게 암이 아니라 진단하여 심각한 결과 초래
※ 정밀도와 재현율은 각각 예측과 실제 관점이라는 차이가 있기 때문에 서로 반비례하는 성질을 가진다.
3. F1-Score
- 정밀도와 재현율의 조화 평균
- 분자가 같지만 분모가 다를 경우, 즉 관점이 다른 경우 조화 평균이 큰 의미를 가짐
- 정밀도와 재현율이 적절하게 필요할 때 사용
4. 모델 평가하기
- 평가에 필요한 함수 호출
# 함수 불러오기
from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
- 실젯값(y_test)과 예측값(y_pred)을 매개변수로 전달해 평가
# 평가하기
# accuracy_score(실젯값, 예측값)
print(accuracy_score(y_test, y_pred))
print(precision_score(y_test, y_pred, average=None))
- 정밀도와 재현율 등은 average 매개변수로 평균으로 표시할지 개별 값으로 표시할지 지정 가능
- classification_report 함수를 사용해 한번에 여러 평가지표를 확인할 수 있음
'에이블스쿨 6기 DX 트랙 > 일일 복습' 카테고리의 다른 글
딥러닝 1일차 (0) | 2024.10.30 |
---|---|
머신러닝 - 비지도 학습 1일차 (0) | 2024.10.21 |
데이터 분석 - 이변량: 범주 vs 숫자 (0) | 2024.10.04 |
DAY 08. 데이터프레임 조회 (0) | 2024.09.20 |
DAY 07. 데이터프레임 탐색 (0) | 2024.09.18 |