Spaces:
Running
Running
File size: 2,053 Bytes
0262268 09f6668 0262268 218f038 0262268 09f6668 218f038 09f6668 0262268 09f6668 0262268 218f038 0262268 218f038 0262268 218f038 0262268 218f038 0262268 09f6668 218f038 09f6668 0262268 09f6668 218f038 09f6668 218f038 09f6668 218f038 09f6668 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# train_autogluon.py
from autogluon.timeseries import TimeSeriesPredictor, TimeSeriesDataFrame
from utils_vol import fetch_close_series, realized_vol, rv_to_autogluon_df
def train_bolt_small(
ticker="AAPL",
start="2015-01-01",
interval="1d",
prediction_length=30,
time_limit=900, # Sekunden (15 Min). Bei Bedarf anpassen.
):
"""
Trainiert Chronos-Bolt-Small auf CPU via AutoGluon mit CPU-freundlichen Limits.
Explizite Business-Day-Frequenz ('B') verhindert Frequency-Fehler.
"""
print(f"[AutoFT] Lade {ticker} ...")
close = fetch_close_series(ticker, start=start, interval=interval)
rv = realized_vol(close)
# tidy DataFrame: columns = item_id, timestamp, target
df = rv_to_autogluon_df(rv)
# TimeSeriesDataFrame mit expliziter Frequenz erzeugen
tsdf = TimeSeriesDataFrame.from_data_frame(
df,
id_column="item_id",
timestamp_column="timestamp",
# KEIN target_column-Argument in AG 1.4.0 – 'target' wird implizit erkannt
freq="B",
)
# auf reguläres Business-Day-Gitter bringen (Lücken = NaN)
tsdf = tsdf.convert_frequency("B")
predictor = TimeSeriesPredictor(
path="/mnt/data/AutogluonChronosBoltSmall",
prediction_length=prediction_length,
eval_metric="WQL",
freq="B",
verbosity=2,
)
predictor.fit(
train_data=tsdf,
enable_ensemble=False,
num_val_windows=1,
hyperparameters={
"Chronos": {
"model_path": "autogluon/chronos-bolt-small",
"fine_tune": True,
"fine_tune_steps": 200, # klein halten für CPU
"fine_tune_lr": 1e-4,
"context_length": 128, # klein halten für CPU
"quantile_levels": [0.1, 0.5, 0.9],
}
},
time_limit=time_limit, # harter Cap, damit HF nicht timeoutet
)
print("✅ Training abgeschlossen. Modellpfad:", predictor.path)
return predictor
|