Objective
Predict atmospheric parameters (Teff, log g, [Fe/H], [alpha/Fe]) with target MAE thresholds.
Dependencies
- Phase 2: Preprocessing Pipeline (requires cleaned features)
- Phase 3: Classification (can run in parallel)
Tasks
Files to Create
| File |
Purpose |
src/models/regressor.py |
Regression models |
src/evaluation/regression_metrics.py |
Regression metrics |
notebooks/03_regression_analysis.ipynb |
Analysis |
Target Metrics
| Parameter |
Target MAE |
| Teff |
< 100 K |
| log g |
< 0.2 dex |
| [Fe/H] |
< 0.1 dex |
| [alpha/Fe] |
< 0.05 dex |
Starter Code
# src/models/regressor.py
"""Stellar parameter regression models."""
import numpy as np
import joblib
from sklearn.ensemble import RandomForestRegressor
from xgboost import XGBRegressor
class ParameterRegressor:
"""Regressor for stellar atmospheric parameters."""
def __init__(self, target: str, model_type: str = "xgboost"):
self.target = target
self.model_type = model_type
if model_type == "xgboost":
self.model = XGBRegressor(
n_estimators=100,
max_depth=6,
learning_rate=0.1,
random_state=42
)
else:
self.model = RandomForestRegressor(
n_estimators=100,
random_state=42
)
def fit(self, X: np.ndarray, y: np.ndarray) -> "ParameterRegressor":
"""Train the regressor."""
self.model.fit(X, y)
return self
def predict(self, X: np.ndarray) -> np.ndarray:
"""Predict parameter values."""
return self.model.predict(X)
def save(self, path: str) -> None:
"""Save model to disk."""
joblib.dump({"model": self.model, "target": self.target}, path)
Definition of Done
Technical Notes
- Different parameters have different error characteristics
- Consider parameter correlations (Teff-log g relation)
- XGBoost often outperforms RF for regression
Part of #1 (Meta Issue)
Objective
Predict atmospheric parameters (Teff, log g, [Fe/H], [alpha/Fe]) with target MAE thresholds.
Dependencies
Tasks
src/models/regressor.pywith multi-output regressionsrc/evaluation/regression_metrics.pyfor MAE, R2, scatternotebooks/03_regression_analysis.ipynbmodels/parameter_regressor_v1.joblibFiles to Create
src/models/regressor.pysrc/evaluation/regression_metrics.pynotebooks/03_regression_analysis.ipynbTarget Metrics
Starter Code
Definition of Done
Technical Notes
Part of #1 (Meta Issue)