Skip to content

Commit 0abf396

Browse files
committed
feat: add missing models to RAPIDS GPU forecasting training
Training enhancement: - Add Gradient Boosting model training - Add Ridge Regression model training - Add Support Vector Regression (SVR) model training - Update model name mapping to include all 6 models Fixes: - RAPIDS GPU forecasting script now trains all 6 models (was only 3) - Matches Phase 3 Advanced training expectations - All models now saved to database and appear in Forecasting UI Models trained: 1. Random Forest 2. Linear Regression 3. XGBoost 4. Gradient Boosting (new) 5. Ridge Regression (new) 6. Support Vector Regression (new)
1 parent 5f98eb0 commit 0abf396

1 file changed

Lines changed: 56 additions & 2 deletions

File tree

scripts/forecasting/rapids_gpu_forecasting.py

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
# CPU fallback imports
3636
if not RAPIDS_AVAILABLE:
37-
from sklearn.ensemble import RandomForestRegressor
37+
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
3838
from sklearn.linear_model import LinearRegression, Ridge
3939
from sklearn.svm import SVR
4040
from sklearn.preprocessing import StandardScaler
@@ -321,6 +321,57 @@ async def train_models(self, X, y):
321321
'mae': mean_absolute_error(y_test, xgb_pred)
322322
}
323323

324+
# 4. Gradient Boosting
325+
logger.info("🌳 Training Gradient Boosting...")
326+
gb_model = GradientBoostingRegressor(
327+
n_estimators=100,
328+
max_depth=5,
329+
learning_rate=0.1,
330+
random_state=self.config['random_state']
331+
)
332+
gb_model.fit(X_train_scaled, y_train)
333+
gb_pred = gb_model.predict(X_test_scaled)
334+
335+
models['gradient_boosting'] = gb_model
336+
metrics['gradient_boosting'] = {
337+
'mse': mean_squared_error(y_test, gb_pred),
338+
'mae': mean_absolute_error(y_test, gb_pred)
339+
}
340+
341+
# 5. Ridge Regression
342+
logger.info("📊 Training Ridge Regression...")
343+
ridge_model = Ridge(alpha=1.0, random_state=self.config['random_state'])
344+
ridge_model.fit(X_train_scaled, y_train)
345+
ridge_pred = ridge_model.predict(X_test_scaled)
346+
347+
models['ridge_regression'] = ridge_model
348+
metrics['ridge_regression'] = {
349+
'mse': mean_squared_error(y_test, ridge_pred),
350+
'mae': mean_absolute_error(y_test, ridge_pred)
351+
}
352+
353+
# 6. Support Vector Regression (SVR)
354+
logger.info("🔮 Training Support Vector Regression...")
355+
if self.use_gpu:
356+
svr_model = cuSVR(C=1.0, epsilon=0.1)
357+
else:
358+
svr_model = SVR(C=1.0, epsilon=0.1, kernel='rbf')
359+
360+
svr_model.fit(X_train_scaled, y_train)
361+
svr_pred = svr_model.predict(X_test_scaled)
362+
363+
models['svr'] = svr_model
364+
if self.use_gpu:
365+
metrics['svr'] = {
366+
'mse': cu_mean_squared_error(y_test, svr_pred),
367+
'mae': cu_mean_absolute_error(y_test, svr_pred)
368+
}
369+
else:
370+
metrics['svr'] = {
371+
'mse': mean_squared_error(y_test, svr_pred),
372+
'mae': mean_absolute_error(y_test, svr_pred)
373+
}
374+
324375
self.models = models
325376

326377
# Log metrics
@@ -334,7 +385,10 @@ async def train_models(self, X, y):
334385
model_name_map = {
335386
'random_forest': 'Random Forest',
336387
'linear_regression': 'Linear Regression',
337-
'xgboost': 'XGBoost'
388+
'xgboost': 'XGBoost',
389+
'gradient_boosting': 'Gradient Boosting',
390+
'ridge_regression': 'Ridge Regression',
391+
'svr': 'Support Vector Regression'
338392
}
339393

340394
for model_key, model_metrics in metrics.items():

0 commit comments

Comments
 (0)