← retour aux snippets

xgboost: regressor avec DMatrix et features nommées

Entraîner un modèle via xgboost.train avec DMatrix et noms de colonnes.

objectif

Entraîner un modèle via xgboost.train avec DMatrix et noms de colonnes.

code minimal

import numpy as np
import xgboost as xgb

rng = np.random.RandomState(0)
X = rng.randn(200, 3)
y = X @ np.array([1.5, -2.0, 0.5]) + rng.randn(200)*0.1

dtrain = xgb.DMatrix(X, label=y, feature_names=["f1","f2","f3"])
params = {
    "objective": "reg:squarederror",
    "max_depth": 3,
    "eta": 0.1,
    "subsample": 0.9,
    "colsample_bytree": 0.9,
    "seed": 0,
    "tree_method": "hist",
}
bst = xgb.train(params, dtrain, num_boost_round=200)
pred = bst.predict(dtrain)[0]
print(isinstance(pred, float))

utilisation

# Importance des features par "gain"
imp = bst.get_score(importance_type="gain")
print(set(imp.keys()) <= {"f1","f2","f3"})

variante(s) utile(s)

# Sauvegarde/chargement du booster
bst.save_model("xgb.model")
bst2 = xgb.Booster()
bst2.load_model("xgb.model")
print(len(bst2.get_dump()) > 0)

notes

  • Avec DMatrix, vous contrôlez noms et poids d’échantillons; get_score() expose l’importance par gain, cover, weight.