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.