automl-patternslisted
Install: claude install-skill Mattakushi432/Claude-Code-Skills-Custom-DevTools-Pack
# AutoML & Hyperparameter Optimization Patterns
## Optuna
```python
import optuna
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import cross_val_score
def objective(trial: optuna.Trial) -> float:
params = {
"n_estimators": trial.suggest_int("n_estimators", 100, 1000, step=100),
"learning_rate": trial.suggest_float("learning_rate", 1e-3, 0.3, log=True),
"max_depth": trial.suggest_int("max_depth", 3, 9),
"subsample": trial.suggest_float("subsample", 0.5, 1.0),
"min_samples_leaf": trial.suggest_int("min_samples_leaf", 1, 20),
}
model = GradientBoostingClassifier(**params, random_state=42)
scores = cross_val_score(model, X_train, y_train, cv=5, scoring="roc_auc", n_jobs=-1)
return scores.mean()
study = optuna.create_study(
direction="maximize",
sampler=optuna.samplers.TPESampler(seed=42),
pruner=optuna.pruners.MedianPruner(n_warmup_steps=5),
storage="sqlite:///optuna.db",
study_name="gbm_search",
load_if_exists=True,
)
study.optimize(objective, n_trials=100, timeout=3600, n_jobs=2)
print("Best params:", study.best_params)
print("Best AUC:", study.best_value)
```
## Optuna with Pruning (for Iterative Models)
```python
import lightgbm as lgb
def objective(trial):
params = {
"num_leaves": trial.suggest_int("num_leaves", 20, 300),
"learning_rate": trial.suggest_float("lr", 1e-3, 0.1, log=True),
"min_child_samples": trial.sugges