from .base import BaseTrainer
import pandas as pd
class YourModeTrainer(BaseTrainer):
def load_data(self) -> pd.DataFrame:
return pd.read_csv(self.data_dir / "your_training_data.csv")
def engineer_features(self, df):
# Return (X, feature_names, y, sample_weights)
features = ["distance_miles", "log_distance", ...]
X = df[features].values
y = df["target_column"].values
return X, features, y, None # None = uniform weights
def build_route_stats(self, df):
stats = {}
for (origin, dest), group in df.groupby(["origin", "destination"]):
stats[(origin, dest)] = {
"mean_value": group["target_column"].mean(),
"count": len(group),
}
return stats
def build_aggregate_lookups(self, df):
return {
"origin_avg": df.groupby("origin")["target_column"].mean().to_dict(),
"dest_avg": df.groupby("destination")["target_column"].mean().to_dict(),
}