feat: add run_optuna.sh wrapper script for Optuna tuning
Made-with: Cursor
This commit is contained in:
49
scripts/run_optuna.sh
Executable file
49
scripts/run_optuna.sh
Executable file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Optuna로 LightGBM 하이퍼파라미터를 탐색하고 결과를 출력한다.
|
||||||
|
# 사람이 결과를 확인·승인한 후 train_model.py에 수동으로 반영하는 방식.
|
||||||
|
#
|
||||||
|
# 사용법:
|
||||||
|
# bash scripts/run_optuna.sh # 기본 (50 trials, 5폴드)
|
||||||
|
# bash scripts/run_optuna.sh 100 # 100 trials
|
||||||
|
# bash scripts/run_optuna.sh 100 3 # 100 trials, 3폴드
|
||||||
|
# bash scripts/run_optuna.sh 10 3 --no-baseline # 빠른 테스트
|
||||||
|
#
|
||||||
|
# 결과 확인 후 승인하면:
|
||||||
|
# python scripts/train_model.py --tuned-params models/tune_results_YYYYMMDD_HHMMSS.json
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||||
|
|
||||||
|
VENV_PATH="${VENV_PATH:-$PROJECT_ROOT/.venv}"
|
||||||
|
if [ -f "$VENV_PATH/bin/activate" ]; then
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "$VENV_PATH/bin/activate"
|
||||||
|
else
|
||||||
|
echo "경고: 가상환경을 찾을 수 없습니다 ($VENV_PATH). 시스템 Python을 사용합니다." >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
TRIALS="${1:-50}"
|
||||||
|
FOLDS="${2:-5}"
|
||||||
|
EXTRA_ARGS="${3:-}"
|
||||||
|
|
||||||
|
cd "$PROJECT_ROOT"
|
||||||
|
|
||||||
|
echo "=== Optuna 하이퍼파라미터 탐색 ==="
|
||||||
|
echo " trials=${TRIALS}, folds=${FOLDS}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
python scripts/tune_hyperparams.py \
|
||||||
|
--trials "$TRIALS" \
|
||||||
|
--folds "$FOLDS" \
|
||||||
|
$EXTRA_ARGS
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== 탐색 완료 ==="
|
||||||
|
echo ""
|
||||||
|
echo "결과 JSON을 확인하고 승인하면 아래 명령으로 재학습하세요:"
|
||||||
|
echo " python scripts/train_model.py --tuned-params models/tune_results_<timestamp>.json"
|
||||||
|
echo ""
|
||||||
|
echo "Walk-Forward 검증과 함께 재학습:"
|
||||||
|
echo " python scripts/train_model.py --tuned-params models/tune_results_<timestamp>.json --wf"
|
||||||
Reference in New Issue
Block a user