AI/이론

131. [Python] [Machine Learning] : 성능 평가 방법과 종류

천재단미 2025. 1. 31. 09:48
728x90
반응형

반응형

 

 

 

1.  성능 평가란?

성능평가는 머신러닝 모델의 예측 능력을 측정하는 과정입니다. 주요 목적은 과적합을 방지하고 최적의 모델을 찾는 것입니다. 성능평가 방법은 모델의 유형에 따라 다르며, 주로 회귀 모델과 분류 모델에 대한 평가 지표가 있습니다.

 


2. 성능 평가의 중요성

머신러닝 모델을 구축한 후, 모델이 얼마나 잘 작동하는지를 평가하는 것이 중요합니다. 성능 평가를 통해 모델의 정확성, 신뢰성, 일반화 능력을 분석할 수 있습니다.

  • 모델이 과적합(overfitting) 되었는지 확인
  • 새로운 데이터에서도 잘 예측하는지 평가
  • 다른 모델들과 비교하여 최적의 모델을 선택

 


 

3. 성능 평가 지표 종류

머신러닝 모델의 평가 지표는 크게 **회귀 문제(Regression)**와 **분류 문제(Classification)**로 나뉩니다.

(1) 회귀(Regression) 모델 평가 지표

회귀 모델은 연속적인 값을 예측하는 모델입니다. 예측 값이 실제 값과 얼마나 차이가 나는지 평가하는 것이 핵심입니다.

평가 지표

평가 지표 설명 공식

MSE (Mean Squared Error, 평균 제곱 오차) 오차의 제곱을 평균낸 값. 작을수록 좋음. MSE=1n∑(y−y^)2MSE = \frac{1}{n} \sum (y - \hat{y})^2MSE=n1​∑(y−y^​)2
RMSE (Root Mean Squared Error, 평균 제곱근 오차) MSE의 제곱근. 단위가 원래 데이터와 동일 RMSE=MSERMSE = \sqrt{MSE}RMSE=MSE​
MAE (Mean Absolute Error, 평균 절대 오차) 오차의 절대값을 평균낸 값. 작은 값이 좋음 ( MAE = \frac{1}{n} \sum
R² (결정 계수, R-squared Score) 모델의 설명력을 나타내며, 1에 가까울수록 좋음 R2=1−∑(y−y^)2∑(y−yˉ)2R^2 = 1 - \frac{\sum (y - \hat{y})^2}{\sum (y - \bar{y})^2}R2=1−∑(y−yˉ​)2∑(y−y^​)2​

 

 


 

Python 코드 예제 (회귀 모델 평가)

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import numpy as np

# 실제 값 (y_test)과 예측 값 (y_pred)
y_test = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])

# MSE, RMSE, MAE, R2 계산
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# 결과 출력
print(f'MSE: {mse:.4f}')
print(f'RMSE: {rmse:.4f}')
print(f'MAE: {mae:.4f}')
print(f'R² Score: {r2:.4f}')

 

 


 

(2) 분류(Classification) 모델 평가 지표

분류 모델은 특정 카테고리(클래스)로 데이터를 분류하는 모델입니다. 예측이 맞았는지, 틀렸는지를 평가하는 것이 핵심입니다.

평가 지표

평가 지표 설명 공식

정확도 (Accuracy) 전체 데이터 중 올바르게 분류된 비율 Accuracy=TP+TNTP+TN+FP+FNAccuracy = \frac{TP + TN}{TP + TN + FP + FN}Accuracy=TP+TN+FP+FNTP+TN​
정밀도 (Precision) 양성(Positive)으로 예측한 것 중 실제로 맞는 비율 Precision=TPTP+FPPrecision = \frac{TP}{TP + FP}Precision=TP+FPTP​
재현율 (Recall, Sensitivity) 실제 양성 중 올바르게 예측한 비율 Recall=TPTP+FNRecall = \frac{TP}{TP + FN}Recall=TP+FNTP​
F1 점수 (F1-score) 정밀도와 재현율의 조화 평균 F1=2×Precision×RecallPrecision+RecallF1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}F1=2×Precision+RecallPrecision×Recall​

 

 


 

Python 코드 예제 (분류 모델 평가)

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix

# 실제 값 (y_test)과 예측 값 (y_pred)
y_test = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1]
y_pred = [0, 1, 1, 0, 0, 1, 0, 1, 1, 1]

# 성능 평가
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

# 혼동 행렬 (Confusion Matrix)
conf_matrix = confusion_matrix(y_test, y_pred)

# 결과 출력
print(f'Accuracy: {accuracy:.4f}')
print(f'Precision: {precision:.4f}')
print(f'Recall: {recall:.4f}')
print(f'F1 Score: {f1:.4f}')
print('Confusion Matrix:')
print(conf_matrix)

 

 


 

4. 성능 평가 활용 예제

(1) 광고 예산과 매출 예측 (회귀)

기업이 광고 예산을 조정할 때, 예산 대비 매출을 예측하는 선형 회귀 모델을 사용.

모델 평가: MSE, RMSE, R² Score 사용

(2) 이메일 스팸 필터링 (분류)

이메일이 스팸인지 아닌지 분류하는 모델.

모델 평가: 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-score 사용

(3) 암 진단 모델 (분류)

의료 데이터에서 암 여부를 예측하는 모델.

  • *재현율(Recall)**이 중요한 평가 지표 (암 환자를 놓치면 안 되므로).

 

 


 

5. 성능 평가 지표 선택 기준

상황 평가 지표

오차를 최소화해야 하는 회귀 문제 MSE, RMSE, MAE
설명력을 강조하는 회귀 문제 R² Score
양성(Positive) 데이터가 중요한 분류 문제 정밀도 (Precision)
음성(Negative) 데이터가 중요한 분류 문제 재현율 (Recall)
정밀도와 재현율의 균형이 필요한 문제 F1 Score

 

 


 

 

6. 요약

회귀 모델 성능 평가: MSE, RMSE, MAE, R² Score

분류 모델 성능 평가: 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 Score

 

 

728x90
반응형
home top bottom
}