Feature Engineering & Machine Learning untuk STLF
Sliding Window Supervised Learning, Fitur Siklis Kalender, XGBoost/LightGBM, dan Time Series CV
Sub-CPMK 9: Mampu merumuskan problem deret waktu ke Supervised Learning, rekayasa fitur, dan pelatihan Gradient Boosting.
Transformasi deret waktu sekuensial menjadi format matriks supervised learning, pembuatan fitur lag dekat dan lag musiman, statistik rolling window, encoding kalender siklis (sin/cos), algoritma pohon Gradient Boosting (XGBoost/LightGBM), dan pencegahan data leakage dengan TimeSeriesSplit.
Definisi teknik sliding window dan alasan mengapa fitur kalender jam/bulan wajib di-encode secara siklis.
Kalkulasi manual fitur lag/rolling window dan analisis feature importance pohon keputusan terhadap profil beban puncak.
Evaluasi strategi recursive vs direct multi-step forecasting dan perancangan auto-tuning pipeline XGBoost.
import xgboost as xgb
from sklearn.model_selection import TimeSeriesSplit
# Rekayasa Fitur Temporal
df['hour_sin'] = np.sin(2 * np.pi * df.index.hour / 24)
df['hour_cos'] = np.cos(2 * np.pi * df.index.hour / 24)
df['lag_24'] = df['load'].shift(24)
df['roll_mean_24'] = df['load'].shift(1).rolling(24).mean()
# TimeSeriesSplit CV
tscv = TimeSeriesSplit(n_splits=5)
model = xgb.XGBRegressor(n_estimators=500, learning_rate=0.03, max_depth=6)