Importance des caractéristiques de permutation

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous allons apprendre à connaître la méthode d'importance des caractéristiques de permutation, qui est une technique d'inspection de modèle utilisée pour déterminer l'importance des caractéristiques dans un modèle prédictif. Cette technique peut être particulièrement utile pour les modèles non linéaires ou opaques qui sont difficiles à interpréter.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Charger le jeu de données

Tout d'abord, nous devons charger un jeu de données que nous pouvons utiliser pour entraîner notre modèle prédictif. Nous utiliserons le jeu de données Diabetes de scikit-learn, qui contient des informations sur des patients diabétiques.

from sklearn.datasets import load_diabetes

## Charger le jeu de données Diabetes
diabetes = load_diabetes()

## Diviser les données en ensembles d'entraînement et de validation
X_train, X_val, y_train, y_val = train_test_split(diabetes.data, diabetes.target, random_state=0)

Entraîner le modèle

Ensuite, nous allons entraîner un modèle de régression sur les données d'entraînement. Dans cet exemple, nous utiliserons un modèle de régression Ridge.

from sklearn.linear_model import Ridge

## Entraîner le modèle de régression Ridge
model = Ridge(alpha=1e-2).fit(X_train, y_train)

Évaluer le modèle

Nous allons maintenant évaluer le modèle entraîné à l'aide de l'ensemble de validation. La métrique d'évaluation utilisée ici est le coefficient de détermination R².

## Évaluer le modèle sur l'ensemble de validation
score = model.score(X_val, y_val)
print("Score de validation :", score)

Calculer l'importance des caractéristiques de permutation

Maintenant, nous allons calculer l'importance des caractéristiques de permutation à l'aide de la fonction permutation_importance de scikit-learn. Cette fonction prend en entrée le modèle entraîné, l'ensemble de validation et le nombre de fois où les caractéristiques doivent être permutées.

from sklearn.inspection import permutation_importance

## Calculer l'importance des caractéristiques de permutation
result = permutation_importance(model, X_val, y_val, n_repeats=30, random_state=0)

## Afficher l'importance des caractéristiques
for i in result.importances_mean.argsort()[::-1]:
    if result.importances_mean[i] - 2 * result.importances_std[i] > 0:
        print(f"{diabetes.feature_names[i]}: {result.importances_mean[i]:.3f} +/- {result.importances_std[i]:.3f}")

Interpréter les résultats

Les importances des caractéristiques calculées représentent la diminution du score du modèle lorsqu'une valeur de caractéristique unique est mélangée aléatoirement. Les caractéristiques avec une valeur d'importance plus élevée indiquent que le modèle dépend davantage de ces caractéristiques pour ses prédictions.

Dans cet exemple, les principales caractéristiques qui contribuent le plus à la performance du modèle sont "s5", "bmi", "bp" et "sex".

Sommaire

Dans ce laboratoire, nous avons appris à propos de la méthode d'importance des caractéristiques de permutation pour évaluer l'importance des caractéristiques dans un modèle prédictif. Nous avons parcouru les étapes de chargement d'un ensemble de données, d'entraînement d'un modèle, d'évaluation du modèle, de calcul des importances des caractéristiques et d'interprétation des résultats. Cette méthode peut être précieuse pour comprendre quelles caractéristiques sont les plus prédictives et dans quelle mesure le modèle dépend de chaque caractéristique.