[PYTHON] Considérez-moi comme un enfant de 5 ans et parlez-moi de Permutation_Importance de Scikit-learn.

J'ai essayé d'utiliser l'importance de la permutation de Scikit-learn

Jusqu'à présent, la bibliothèque pour PermutationImportance était ʻELI5[Document officiel ELI5](https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html). (ELI5 signifie Explain Like I'm 5. (expliquez-moi comme un enfant de 5 ans).) Récemment, «Importance de la permutation» a été implémentée à partir de «Scikit-Learn 0.22». Jusqu'à présent, je n'étais pas sûr de la contribution de la quantité de caractéristiques après le calcul avec le vecteur de support, mais maintenant je peux voir quelle quantité de caractéristiques est importante avecImportance de la permutation`.

Pour le dire simplement, PermutationImportance sélectionne l'une des fonctionnalités et mélange les valeurs qu'elle contient pour la rendre dénuée de sens. La précision est calculée à l'aide des données, la précision est comparée à l'ensemble de données de la quantité de caractéristiques correcte et la mesure dans laquelle la quantité de caractéristiques sélectionnée affecte la précision est calculée.

C'était assez facile à calculer. Importez permutation_importance depuis sklearn.inspection. Tout ce que j'avais à faire était de charger l'instance ʻoptimized_regr créée en optimisant les paramètres avec ʻoputuna dans le vecteur de support et le jeu de données comme argument de permutation_importance et calculer.

#De là sklearn permutation_importance
from sklearn.inspection import permutation_importance
result = permutation_importance(optimised_regr, X_test_std, y_test, n_repeats=10, n_jobs=-1, random_state=0)

#Mettez le résultat dans une trame de données Pandas et affichez-le
df = pd.DataFrame([boston.feature_names,result.importances_mean,result.importances_std],index=['Featue','mean','std']).T
df_s = df.sort_values('mean',ascending=False)
print(df_s)

J'ai chargé le résultat dans pandas et créé un tableau.

Featue mean std
5 RM 0.466147 0.066557
12 LSTAT 0.259455 0.0525053
8 RAD 0.141846 0.0203266
9 TAX 0.113393 0.0176602
7 DIS 0.0738827 0.0178893
10 PTRATIO 0.0643727 0.0205021
6 AGE 0.0587429 0.010226
4 NOX 0.0521941 0.0235265
2 INDUS 0.0425453 0.0185133
0 CRIM 0.0258689 0.00711088
11 B 0.017638 0.00689625
3 CHAS 0.0140639 0.00568843
1 ZN 0.00434593 0.00582095

Jusqu'à présent, il n'était pas possible de savoir quelle quantité de caractéristique affectait le calcul avec le vecteur de support, mais maintenant que «permutation_importance» a été implémentée, il est possible de comprendre quelle quantité de caractéristique l'affecte. J'ai fait.

Recommended Posts

Considérez-moi comme un enfant de 5 ans et parlez-moi de Permutation_Importance de Scikit-learn.
Pensez à la nouvelle génération de Rack et WSGI
Pensez à l'environnement d'analyse (Partie 1: Vue d'ensemble) * Depuis janvier 2017
À la suite du montage et du réglage avec POH! Lite
Un peu plus sur les références ~ Prenant Python et Java comme exemples ~