강화학습 모델의 성능평가 방법
AI주식자동매매2025. 7. 13. 15:34
반응형
훈련 전·후 모델의 “성능이 정말 좋아졌는지”를 판단하려면, 단순히 “매도의견이 사라졌다” 수준이 아니라 다음의 정량적 지표들을 비교·분석해 보셔야 합니다.
1. 핵심 성능 지표
- 누적 수익률 (Cumulative Return)
- 평가 구간 전체에서 에이전트가 얻은 총 보상합(또는 net_worth 변화량)
- performance_metrics['cumulative_return'] 에 저장된 값
- 샤프 비율 (Sharpe Ratio)
- (평균 수익률) ÷ (수익률의 표준편차)
- 보상(수익) 대비 변동성(위험)을 같이 고려
- performance_metrics['sharpe_ratio']
- 최대 낙폭 (Max Drawdown)
- 최고 자산가치 고점 대비 최저 자산가치까지의 하락폭 비율
- 큰 손실 구간이 얼마나 있었는지 파악
- performance_metrics['max_drawdown']
- 정확도 (Accuracy)
- 에이전트가 “이동 방향(익절/손절)”을 제대로 맞춘 비율
- performance_metrics['accuracy']
이 네 가지 지표를 훈련 전, 훈련 후, 혹은 하이퍼파라미터(Optuna/Bayesian) 최적화 이전·이후 모델로 각각 계산해서 표로 비교해 보세요.
2. 지표 비교를 위한 간단한 워크플로우
- Baseline 기록
- 현재 학습 로직으로 먼저 한 번 돌려서 performance_metrics 를 저장 (baseline_metrics).
- 변경 적용 후 재훈련
- 학습률·스텝수·보상구조 등을 조정해서 재훈련 → new_metrics 기록.
- DataFrame으로 정리
-
python복사편집import pandas as pd df = pd.DataFrame([ {'model':'baseline', **baseline_metrics}, {'model':'new', **new_metrics} ]) print(df)
- 비교 시각화
- df.plot.bar(x='model', y=['cumulative_return','sharpe_ratio','max_drawdown','accuracy'])
- 혹은 표 형태로 눈으로 빠르게 확인
3. 훈련 과정 로깅 활용
- 이미 RewardLoggingCallback 에서 TensorBoard에 train/episode_reward, train/cumulative_return 등을 기록하도록 설정하셨으니,
- 터미널에서
-
bash복사편집python -m tensorboard.main --logdir=./tensorboard_logs
- 브라우저에서 http://localhost:6006 접속
- Training → Scalars 탭에서 에피소드 리워드 곡선, cumulative return curve, 정책/가치 손실(policy_loss, value_loss) 등을 모니터링
- ↳ 학습 곡선이 우상향하는지, 후반부에 흔들림(과적합) 없이 안정적인지를 체크하면 “학습이 잘 되고 있는지” 알 수 있습니다.
4. 검증용 데이터에 대한 평가
- 학습 중 train_df 외에 검증용 eval_df 를 분리하셨으니,
- 학습용 vs 평가용 지표를 각각 계산해 과적합 여부를 파악
- 예를 들어 df_eval_metrics['sharpe_ratio'] < df_train_metrics['sharpe_ratio'] 처럼 평가 성능 하락 유무
요약
- 정량적 지표(누적 수익률·샤프·낙폭·정확도)를 훈련 전·후 비교
- TensorBoard 로 훈련 곡선(episode_reward, loss 등)을 모니터링
- 학습 vs 검증 지표 차이로 과적합 여부 관찰
- 지표들을 표나 차트로 시각화해서 한눈에 비교
이 흐름을 통해 “매도의견이 없어졌다”가 아니라, “누적 수익률 +24% → +30%, 샤프 0.8 → 1.2, 최대 낙폭 15% → 10%, 정확도 52% → 60%” 와 같은 구체적 개선 수치를 얻을 수 있습니다.
반응형
'AI주식자동매매' 카테고리의 다른 글
NewsAPI.org에서 미국, 한국 주식시황 및 주요 관심 Category 뉴스 Summary하기 (1) | 2025.07.04 |
---|---|
미국 주식시장 뉴스API를 통한 Daily 증시 시황정리 프로그램 (4) | 2025.06.03 |
뉴스요약 시스템 구축 (0) | 2025.06.02 |
ImportError: DLL load failed while importing QtWidgets (4) | 2024.10.12 |
GPT 4o Vision 활용하기(3) (3) | 2024.10.06 |
댓글()