chore: update .gitignore, CLAUDE.md, training_log.json, and ml_filter.py

- Added .worktrees/ to .gitignore to prevent tracking of worktree files.
- Marked `optuna-precision-objective-plan` as completed in CLAUDE.md.
- Added new training log entry for a LightGBM model with updated parameters and performance metrics in training_log.json.
- Updated error handling in ml_filter.py to return False on prediction errors instead of True, improving the robustness of the ML filter.
This commit is contained in:
21in7
2026-03-05 20:04:15 +09:00
parent 2b92fd0dce
commit c555afbddc
4 changed files with 31 additions and 4 deletions

4
.gitignore vendored
View File

@@ -12,4 +12,6 @@ models/tune_results_*.json
data/*.parquet data/*.parquet
.worktrees/ .worktrees/
.DS_Store .DS_Store
.cursor/ .cursor/
.worktrees/

View File

@@ -115,6 +115,6 @@ All design documents and implementation plans are stored in `docs/plans/` with t
| 2026-03-02 | `hold-negative-sampling` (design + plan) | Completed | | 2026-03-02 | `hold-negative-sampling` (design + plan) | Completed |
| 2026-03-03 | `position-monitor-logging` | Completed | | 2026-03-03 | `position-monitor-logging` | Completed |
| 2026-03-03 | `adx-ml-feature-migration` (design + plan) | Completed | | 2026-03-03 | `adx-ml-feature-migration` (design + plan) | Completed |
| 2026-03-03 | `optuna-precision-objective-plan` | Pending | | 2026-03-03 | `optuna-precision-objective-plan` | Completed |
| 2026-03-03 | `demo-1m-125x` (design + plan) | In Progress | | 2026-03-03 | `demo-1m-125x` (design + plan) | In Progress |
| 2026-03-04 | `oi-derived-features` (design + plan) | Completed | | 2026-03-04 | `oi-derived-features` (design + plan) | Completed |

View File

@@ -476,5 +476,30 @@
"reg_lambda": 0.082872 "reg_lambda": 0.082872
}, },
"weight_scale": 1.431662 "weight_scale": 1.431662
},
{
"date": "2026-03-05T02:00:24.489871",
"backend": "lgbm",
"auc": 0.9448,
"best_threshold": 0.3075,
"best_precision": 0.452,
"best_recall": 0.463,
"samples": 3246,
"features": 26,
"time_weight_decay": 2.0,
"model_path": "models/lgbm_filter.pkl",
"tuned_params_path": null,
"lgbm_params": {
"n_estimators": 221,
"learning_rate": 0.031072,
"max_depth": 5,
"num_leaves": 20,
"min_child_samples": 39,
"subsample": 0.83244,
"colsample_bytree": 0.526349,
"reg_alpha": 0.062177,
"reg_lambda": 0.082872
},
"weight_scale": 1.431662
} }
] ]

View File

@@ -149,8 +149,8 @@ class MLFilter:
) )
return bool(proba >= self._threshold) return bool(proba >= self._threshold)
except Exception as e: except Exception as e:
logger.warning(f"ML 필터 예측 오류 (폴백 허용): {e}") logger.warning(f"ML 필터 예측 오류 (진입 차단): {e}")
return True return False
def reload_model(self): def reload_model(self):
"""외부에서 강제 리로드할 때 사용 (하위 호환).""" """외부에서 강제 리로드할 때 사용 (하위 호환)."""