[PYTHON] Stellen Sie sich mich als 5-Jährigen vor und erzählen Sie mir von Scikit-learns Permutation_Importance.

Ich habe versucht, die Permutationsbedeutung von Scikit-learn zu verwenden

Bisher war die Bibliothek für "PermutationImportance" die Bibliothek "ELI5" (ELI5 Official Document) (https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html). (ELI5 steht für Erklären, wie ich 5 bin. (Erklären Sie mich als 5-Jährigen).) Kürzlich wurde "Permutation Importance" aus "Scikit-Learn 0.22" implementiert. Bisher war ich mir nicht sicher, was die Merkmalsmenge nach der Berechnung mit dem Unterstützungsvektor beigetragen hat, aber jetzt kann ich sehen, was die Merkmalsmenge mit "Permutationsbedeutung" wichtig ist.

Um es einfach auszudrücken: PermutationImportance wählt eines der Features aus und mischt die darin enthaltenen Werte, um es bedeutungslos zu machen. Die Genauigkeit wird anhand der Daten berechnet, die Genauigkeit wird mit dem Datensatz der richtigen Merkmalsmenge verglichen und es wird berechnet, wie stark sich die ausgewählte Merkmalsmenge auf die Genauigkeit auswirkt.

Es war ziemlich einfach zu berechnen. Importieren Sie "permutation_importance" aus "sklearn.inspection". Ich musste lediglich die Instanz optimised_regr laden, die durch Optimieren der Parameter mit oputuna im Support-Vektor und des Datasets als Argument von permutation_importance erstellt wurde, und berechnen.

#Von hier aus lernen Sie die Permutation_Bedeutung
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)

#Legen Sie das Ergebnis in einen Pandas-Datenrahmen und zeigen Sie es an
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)

Ich habe das Ergebnis in "Pandas" geladen und eine Tabelle erstellt.

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

Bisher war es nicht möglich zu wissen, welcher Merkmalsbetrag die Berechnung mit dem Unterstützungsvektor beeinflusste, aber jetzt, da "permutation_importance" implementiert wurde, ist es möglich zu verstehen, welcher Merkmalsbetrag ihn beeinflusst. Ich tat.

Recommended Posts

Stellen Sie sich mich als 5-Jährigen vor und erzählen Sie mir von Scikit-learns Permutation_Importance.
Denken Sie an das Rack und WSGI der nächsten Generation
Denken Sie an die Analyseumgebung (Teil 1: Übersicht) * Stand Januar 2017
Als Ergebnis der Montage und Abstimmung mit POH! Lite
Ein bisschen mehr über Referenzen ~ Verwenden von Python und Java als Beispiele ~