«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Recent Posts
Today
Total
관리 메뉴

짜리몽땅 매거진

[ML] 평가 지표 본문

Data/Machine Learning

[ML] 평가 지표

쿡국 2024. 6. 23. 13:37

모델 성능 평가란, 실제값과 모델에 의해 예측된 값을 비교하여 두 값의 차이를 구하는 것으로 과적합을 방지하고 최적의 모델을 찾기 위해 실시한다.

 

머신러닝 회귀 모델 평가 방법

회귀 모델의 평가 지표로는 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] 랜덤 포레스트 모델 하이퍼파라미터 튜닝하기  (0) 2024.06.25
[ML] Kmeans 알고리즘 + DBSCAN  (0) 2024.06.23
[ML] KNN 알고리즘  (0) 2024.06.22
[ML] Feature Selection  (0) 2024.06.22
[ML] 데이터 스케일링  (0) 2024.06.05