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