quant_test / models /xgboost_model.py
lucky-loster's picture
Upload folder using huggingface_hub
590a501 verified
Raw
History Blame Contribute Delete
989 Bytes
"""XGBoost model wrapper."""
from __future__ import annotations
import xgboost as xgb
import pandas as pd
from sklearn.metrics import mean_squared_error
def train_xgboost(train_df: pd.DataFrame, valid_df: pd.DataFrame, feature_cols: list[str], target_col: str = "target_rank"):
dtrain = xgb.DMatrix(train_df[feature_cols], label=train_df[target_col])
dvalid = xgb.DMatrix(valid_df[feature_cols], label=valid_df[target_col])
params = {
"objective": "reg:squarederror",
"learning_rate": 0.05,
"max_depth": 6,
"subsample": 0.8,
"colsample_bytree": 0.8,
"seed": 42,
}
model = xgb.train(
params,
dtrain,
num_boost_round=500,
evals=[(dvalid, "valid")],
early_stopping_rounds=50,
verbose_eval=False,
)
pred = model.predict(dvalid)
rmse = mean_squared_error(valid_df[target_col], pred, squared=False)
print(f"XGBoost valid RMSE: {rmse:.6f}")
return model