짜리몽땅 매거진
[ML] 평가 지표 본문
모델 성능 평가란, 실제값과 모델에 의해 예측된 값을 비교하여 두 값의 차이를 구하는 것으로 과적합을 방지하고 최적의 모델을 찾기 위해 실시한다.
머신러닝 회귀 모델 평가 방법
회귀 모델의 평가 지표로는 MSE, RMSE, MAPE 등이 있고 이 값들은 오차이기 때문에 값이 작을수록 해당 모델이 우수한 성능을 가지고 있다는 것을 의미한다.
1. MAE (Mean Absolute Error)
실제값과 예측값의 차이에 대한 절대값의 평균
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
mae = mean_absolute_error(y_test, y_pred)
print(f"MAE: {mae}")
2. MSE (Mean Squared Error)
에러(실제값 - 예측값) 제곱의 평균
mse = mean_squared_error(y_test, y_pred)
print(f"MSE: {mse}")
3. RMSE (Root Mean Squared Error)
MAE에 루트를 씌운 값으로 표준편차와 유사한 공식
rmse = np.sqrt(mse)
print(f"RMSE: {rmse}")
4. R2 Score
'실제 값의 분산 대비 예측값의 분산 비율' 로 요약 될 수 있으며, 예측 모델과 실제 모델이 얼마나 강한 상관관계 (Correlated)를 가지는가로 설명력을 요약할 수 있음.
r2 = r2_score(y_true, y_pred)
print(f"R^2: {r2}")
머신러닝 분류 모델 평가 방법
분류 모델 평기 지표로는 정확도, 정밀도, 재현율, F1 Score가 있으며, 모두 0~1 사이 값을 가지고, 1에 가까워 질수록 성능이 좋다는 것을 의미한다.
1. 정확도 (Accuracy)
실제 데이터에서 예측 데이터가 얼마나 같은지 판단하는 지표
from sklearn.metrics import accuracy_score, confusion_matrix, precision_score, recall_score, f1_score
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
2. 오차행렬(Confusion Matrix)
이진 분류에서 오차행렬은 분류 모델이 얼마나 헷갈리고 있는지도 함께 보여주는 지표
conf_matrix = confusion_matrix(y_test, y_pred)
print(f"Confusion Matrix:\n{conf_matrix}")
3. 정밀도 (Precision)
Positive로 예측한 경우 중 실제로 Positive인 비율로 수식으로는 TP/TP+FP 로 나타낼 수 있다.
precision = precision_score(y_test, y_pred)
print(f"Precision: {precision}")
4. 재현율(Recall)
실제 Positive인 것 중 올바르게 Positive를 맞춘 것의 비율로 실제 정답을 얼마나 맞췄는가의 의미한다. 수식으로는 TP/TP+FN 로 나타낼 수 있다.
recall = recall_score(y_test, y_pred)
print(f"Recall: {recall}")
5. F1 Score
Precision과 Recall의 조화평균으로 분류 클래스 간 데이터가 불균형이 심각할 때 사용하며 높을수록 좋은 모델
f1 = f1_score(y_true, y_pred)
print(f"F1 Score: {f1}")
'Data > Machine Learning' 카테고리의 다른 글
[ML] TSP알고리즘으로 최적 노선 추천하기(+ k-means, Gradient Boosting) (0) | 2024.07.02 |
---|---|
[ML] 랜덤 포레스트 모델 하이퍼파라미터 튜닝하기 (0) | 2024.06.25 |
[ML] KNN 알고리즘 (0) | 2024.06.22 |
[ML] 데이터 스케일링 (0) | 2024.06.05 |
[ML] train_test_validation 데이터와 교차검증(CV) (0) | 2024.05.14 |