# Changes in Dr_SFC GĐ1 simple v0.2 This patch corrects hyperparameter tuning for precipitation. ## What changed - `src/models.py` - Added `PhysicalTargetScoringWrapper` and `physical_neg_mae_scorer`. - Ridge/ElasticNet still use `GridSearchCV`. - RF/GBM/XGBoost still use `RandomizedSearchCV`. - For precipitation, tuning now selects hyperparameters by MAE in physical units after inverse transform: `pr_bc = max(pr_factor_hat * pr_o_cli, 0)` versus `pr_o`. - For temperature, tuning by anomaly MAE is retained because it is exactly equivalent to physical MAE after adding `t2_o_cli`. - `src/bc_runner.py` - Passes `pr_o_cli` as a scoring-only physical scale for precipitation CV. - The scale is not used as an input predictor. - `src/features.py` - Added `select_samples_with_aux()` for aligned sampling of the scoring-only precipitation climatology scale. ## Why The previous v0.1 tuning optimized transformed-space MAE for precipitation (`pr_factor`). The requested criterion is MAE of corrected precipitation (`pr_bc`) against observed precipitation (`pr_o`).