← retour aux snippets

lightgbm: importances et sauvegarde

Extraire importances (gain/split) et sauvegarder/charger le modèle.

objectif

Extraire importances (gain/split) et sauvegarder/charger le modèle.

code minimal

import lightgbm as lgb
from sklearn.datasets import load_breast_cancer
X, y = load_breast_cancer(return_X_y=True)

dtrain = lgb.Dataset(X, label=y)
bst = lgb.train({"objective":"binary","metric":"auc","seed":0}, dtrain, num_boost_round=50, verbose_eval=False)

gain = bst.feature_importance(importance_type="gain")
split = bst.feature_importance(importance_type="split")
print(len(gain) == X.shape[1] == len(split))

utilisation

# Noms de features
print(len(bst.feature_name()) == X.shape[1])

variante(s) utile(s)

# Sauvegarde/chargement
bst.save_model("lgb.txt")
loaded = lgb.Booster(model_file="lgb.txt")
print(len(loaded.feature_name()) == X.shape[1])

notes

  • Le type ‘gain’ mesure l’amélioration de la perte; ‘split’ compte les partitions où la feature a été utilisée.