Permutation Importance
Fonctions :
-
permutation_importance()
permutation_importance() est une méthode fournie par sklearn.inspection qui permet de mesurer l'importance des caractéristiques d'un modèle en perturbant les valeurs de chaque caractéristique et en observant l'impact sur les performances du modèle.
Importation :
from sklearn.inspection import permutation_importance
Attributs :
Attribut Description estimator Le modèle entraîné à évaluer. Exemple : un classificateur ou un régressseur, comme un RandomForestClassifier ou un LogisticRegression. X Tableau ou DataFrame contenant les caractéristiques d'entrée utilisées pour générer des prédictions (les données de test). y Tableau ou série contenant les valeurs cibles pour l'évaluation du modèle. n_repeats Le nombre de répétitions de la permutation pour chaque caractéristique. Par défaut : 10. random_state Contrôle l'initialisation aléatoire pour rendre les résultats reproductibles. Par défaut : None. scoring La métrique utilisée pour évaluer la performance du modèle, comme 'accuracy', 'neg_mean_squared_error', etc. n_jobs Le nombre de jobs parallèles à utiliser pour effectuer les calculs. Par défaut : 1 (pas de parallélisme). Exemple de code :
from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.datasets import load_iris from sklearn.inspection import permutation_importance # Charger un dataset d'exemple data = load_iris() X = data.data y = data.target # Diviser les données en ensembles d'entraînement et de test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Entraîner un modèle RandomForest model = RandomForestClassifier(random_state=42) model.fit(X_train, y_train) # Calculer l'importance des caractéristiques par permutation results = permutation_importance(model, X_test, y_test, n_repeats=10, random_state=42, scoring='accuracy') # Afficher les résultats print("Importance des caractéristiques (moyenne des scores après permutation) :") for i in range(len(data.feature_names)): print(f"{data.feature_names[i]} : {results.importances_mean[i]}")
Explication du code :
-
Chargement des données : Nous utilisons ici le jeu de données
Iris
fourni parsklearn
comme exemple. -
Division des données : Les données sont divisées en ensembles d'entraînement et de test à l'aide de
train_test_split
. -
Entraînement du modèle : Un modèle
RandomForestClassifier
est créé et entraîné sur l'ensemble d'entraînement. -
Permutation de l'importance : La fonction
permutation_importance()
est utilisée pour calculer l'importance de chaque caractéristique dans l'ensemble de test en perturbant chaque colonne de caractéristiques et en observant l'impact sur la précision du modèle. Le paramètren_repeats=10
signifie que chaque permutation est répétée 10 fois pour plus de robustesse. -
Affichage des résultats : Les importances moyennes des caractéristiques sont imprimées, montrant l'impact de chaque caractéristique sur la performance du modèle. Les valeurs sont extraites de
results.importances_mean
, qui contient la moyenne de l'importance pour chaque caractéristique.
Explications supplémentaires :
-
Scoring : Le
scoring
peut être personnalisé pour utiliser différentes métriques selon le type de problème (par exemple,accuracy
,f1
, etc.). -
N_repeats : Plus le nombre de répétitions (
n_repeats
) est élevé, plus les résultats sont fiables. Cependant, un nombre élevé de répétitions peut rendre le calcul plus long.
-