티스토리 뷰
반응형
✅ 데이터 분석 실무: 모델 성능 평가와 향상 기법 (6편)
– 더 정확하고 신뢰성 있는 예측을 위해!
모델을 만들었지만, 실제 성능이 어떨지 고민한 적 있나요?
**모델 성능 평가(Metrics)**는
모델이 얼마나 정확하게 예측하는지를 수치로 평가하여
개선 방향을 제시합니다.
🧠 1. 모델 성능 평가의 중요성
모델링 단계에서 가장 중요한 부분 중 하나가 성능 평가입니다.
모델이 잘 학습되었다고 판단하려면
다양한 평가 지표를 통해 정확도와 신뢰성을 검토해야 합니다.
✅ 성능 평가의 필요성
- 모델 선택: 다양한 모델 중 가장 적합한 것을 찾기 위해
- 모델 개선: 평가 지표를 바탕으로 성능 향상 방법 도출
- 모델 비교: 여러 모델의 성능을 객관적으로 비교
📊 2. 주요 성능 평가 지표
✅ 분류(Classification) 모델 평가
지표 설명 코드
정확도 (Accuracy) | 올바르게 예측한 비율 | accuracy_score() |
정밀도 (Precision) | 양성 예측 중 실제 양성 비율 | precision_score() |
재현율 (Recall) | 실제 양성 중 예측한 비율 | recall_score() |
F1 스코어 | 정밀도와 재현율의 조화 평균 | f1_score() |
ROC AUC | 분류 임계값에 따라 변화하는 곡선 | roc_auc_score() |
💡 Python 실습: 분류 모델 성능 평가
반응형
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
# 예측 결과
y_true = [0, 1, 0, 1, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
# 정확도
accuracy = accuracy_score(y_true, y_pred)
print(f"정확도: {accuracy:.2f}")
# 정밀도
precision = precision_score(y_true, y_pred)
print(f"정밀도: {precision:.2f}")
# 재현율
recall = recall_score(y_true, y_pred)
print(f"재현율: {recall:.2f}")
# F1 스코어
f1 = f1_score(y_true, y_pred)
print(f"F1 스코어: {f1:.2f}")
✅ 회귀(Regression) 모델 평가
지표 설명 코드
MSE (평균 제곱 오차) | 오차 제곱의 평균 | mean_squared_error() |
RMSE (평균 제곱근 오차) | MSE의 제곱근 | np.sqrt(MSE) |
MAE (평균 절대 오차) | 절대 오차의 평균 | mean_absolute_error() |
R² (결정 계수) | 모델의 설명력 | r2_score() |
💡 Python 실습: 회귀 모델 성능 평가
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import numpy as np
# 실제값과 예측값
y_true = [100, 150, 200, 250]
y_pred = [110, 140, 210, 240]
# MSE와 RMSE
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
print(f"MSE: {mse:.2f}, RMSE: {rmse:.2f}")
# MAE
mae = mean_absolute_error(y_true, y_pred)
print(f"MAE: {mae:.2f}")
# R²
r2 = r2_score(y_true, y_pred)
print(f"R²: {r2:.2f}")
🧪 3. 모델 성능 향상 기법
✅ 1) 하이퍼파라미터 튜닝
- 그리드 탐색 (Grid Search): 모든 조합을 탐색
- 랜덤 탐색 (Random Search): 무작위로 파라미터 조합 선택
💡 GridSearchCV 예제
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
param_grid = {'n_estimators': [50, 100, 200], 'max_depth': [10, 20, 30]}
model = RandomForestClassifier()
grid_search = GridSearchCV(model, param_grid, cv=3)
grid_search.fit(X_train, y_train)
print("최적 파라미터:", grid_search.best_params_)
✅ 2) 교차 검증 (Cross Validation)
- 데이터를 여러 부분으로 나눠 학습과 평가를 반복
- 모델이 데이터에 과적합되지 않도록 방지
💡 교차 검증 코드
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print(f"교차 검증 평균 점수: {scores.mean():.2f}")
✅ 3) 앙상블 학습 (Ensemble Learning)
- 여러 모델의 결과를 종합하여 성능을 향상
- 배깅(Bagging), 부스팅(Boosting) 기법 사용
💡 랜덤 포레스트 예제
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, y_train)
print("랜덤 포레스트 학습 완료")
✅ 4) 모델 스태킹 (Model Stacking)
- 여러 모델의 예측을 메타 모델에 넣어 최종 예측
- 서로 다른 모델의 장점을 결합하여 성능 향상
💡 모델 성능 개선 전략
- 데이터 확장:
- 데이터 증강 기법 사용 (오버샘플링, 언더샘플링)
- 특성 엔지니어링:
- 새로운 파생 변수 생성
- 특성 선택:
- 불필요한 변수 제거로 과적합 방지
- 모델 앙상블:
- 서로 다른 알고리즘 결합
✅ 마무리
이번 글에서는
✔ 모델 성능 평가 지표와 해석 방법
✔ Python을 활용한 성능 평가 실습
✔ 모델 성능 향상 기법과 실제 코드
를 다뤘습니다.
다음 편에서는
**"데이터 분석 실무: 실전 프로젝트 - 고객 이탈 예측 모델 만들기"**를 다룹니다.
앞서 배운 기법을 활용하여 고객 이탈 예측 모델을 실전 프로젝트로 구현해보겠습니다.
기대되시나요? 😊
데이터분석, 머신러닝모델평가, 모델성능향상, 교차검증, 하이퍼파라미터튜닝, 앙상블학습, Python성능평가, 머신러닝실습, 모델성능개선, 데이터분석실무
'글' 카테고리의 다른 글
✅ 실전 프로젝트: 고객 이탈 예측 모델 만들기 (7편) (0) | 2025.05.21 |
---|---|
🌐 2025년 주목할 프론트엔드 프레임워크 TOP 5 (0) | 2025.05.21 |
🏗️ 100만 사용자 확장을 위한 아키텍처: 내가 미리 알았더라면 좋았을 것들 (0) | 2025.05.20 |
✅ 데이터 분석 실무: Python을 활용한 머신러닝 모델링 (5편) (0) | 2025.05.19 |
🧠 MCP 서버 구축 가이드: 프롬프트 기능 추가하기 (0) | 2025.05.19 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- kotlin
- Docker
- Ktor
- Webpack
- 프론트엔드
- fastapi
- Next.js
- NestJS
- nodejs
- AI챗봇
- Prisma
- Python
- App Router
- 딥러닝
- gatsbyjs
- 파이썬 알고리즘
- github
- rag
- 백엔드개발
- seo 최적화 10개
- REACT
- 웹개발
- 개발블로그
- 프론트엔드면접
- CI/CD
- PostgreSQL
- llm
- SEO 최적화
- nextJS
- SEO최적화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형