permutation_importance#
- sklearn.inspection.permutation_importance(estimator, X, y, *, scoring=None, n_repeats=5, n_jobs=None, random_state=None, sample_weight=None, max_samples=1.0)[Quelle]#
Permutations-Wichtigkeit zur Merkmalsbewertung [BRE].
Der Estimator muss ein trainierter Estimator sein.
Xkann der Datensatz sein, der zum Trainieren des Estimators verwendet wurde, oder ein Hold-out-Set. Die Permutations-Wichtigkeit eines Merkmals wird wie folgt berechnet. Zuerst wird eine Basis-Metrik, definiert durch Scoring, auf einem (möglicherweise anderen) Datensatz evaluiert, der durchXdefiniert ist. Als Nächstes wird eine Merkmalsspalte aus dem Validierungsdatensatz permutiert und die Metrik wird erneut evaluiert. Die Permutations-Wichtigkeit ist definiert als die Differenz zwischen der Basis-Metrik und der Metrik nach der Permutation der Merkmalsspalte.Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- estimatorobjekt
Ein Estimator, der bereits trainiert wurde und mit Scorer kompatibel ist.
- Xndarray oder DataFrame, Form (n_samples, n_features)
Daten, für die die Permutations-Wichtigkeit berechnet wird.
- yarray-like oder None, Form (n_samples, ) oder (n_samples, n_classes)
Ziele für überwachte oder
Nonefür unüberwachte Szenarien.- scoringstr, callable, list, tuple oder dict, Standard=None
Zu verwendender Scorer. Wenn
scoringeine einzelne Punktzahl darstellt, kann man einestr: siehe Zeichenkettennamen für Bewerter für Optionen.
callable: Ein Scorer-Callable-Objekt (z. B. Funktion) mit der Signatur
scorer(estimator, X, y). Siehe Callable Scorer für Details.None: das Standard-Bewertungskriterium desestimatorwird verwendet.
Wenn
scoringmehrere Scores darstellt, kann maneine Liste oder ein Tupel eindeutiger Strings;
ein callable, der ein Dictionary zurückgibt, wobei die Schlüssel die Namen der Metriken und die Werte die Score-Werte der Metriken sind;
ein Dictionary mit Metriknamen als Schlüssel und Callables als Werte verwenden.
Das Übergeben mehrerer Punktzahlen an
scoringist effizienter als das Aufrufen vonpermutation_importancefür jede der Punktzahlen, da Vorhersagen wiederverwendet werden, um redundante Berechnungen zu vermeiden.- n_repeatsint, Standard=5
Anzahl der Permutationen für ein Merkmal.
- n_jobsint oder None, default=None
Anzahl der parallel auszuführenden Jobs. Die Berechnung erfolgt durch die Berechnung des Permutations-Scores für jede Spalte und die Parallelisierung über die Spalten.
Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backendKontext.-1bedeutet die Verwendung aller Prozessoren. Weitere Details finden Sie im Glossar.- random_stateint, RandomState instance, default=None
Pseudo-Zufallszahlengenerator zur Steuerung der Permutationen jedes Merkmals. Übergeben Sie eine Ganzzahl, um reproduzierbare Ergebnisse über Funktionsaufrufe hinweg zu erhalten. Siehe Glossar.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte, die beim Scoring verwendet werden.
Hinzugefügt in Version 0.24.
- max_samplesint oder float, Standard=1.0
Die Anzahl der Stichproben, die aus X gezogen werden sollen, um die Merkmalswichtigkeit bei jeder Wiederholung zu berechnen (ohne Zurücklegen).
Wenn int, dann werden
max_samplesSamples gezogen.Wenn float, dann werden
max_samples * X.shape[0]Stichproben gezogen.Wenn
max_samplesgleich1.0oderX.shape[0]ist, werden alle Stichproben verwendet.
Obwohl die Verwendung dieser Option zu weniger genauen Wichtigkeitsabschätzungen führen kann, bleibt die Methode handhabbar, wenn die Merkmalswichtigkeit für große Datensätze bewertet wird. In Kombination mit
n_repeatsermöglicht dies die Steuerung des Kompromisses zwischen Rechengeschwindigkeit und statistischer Genauigkeit dieser Methode.Hinzugefügt in Version 1.0.
- Gibt zurück:
- result
Bunchoder dict von solchen Instanzen Dictionary-ähnliches Objekt mit den folgenden Attributen.
- importances_meanndarray der Form (n_features, )
Mittelwert der Merkmalswichtigkeit über
n_repeats.- importances_stdndarray der Form (n_features, )
Standardabweichung über
n_repeats.- importancesndarray der Form (n_features, n_repeats)
Rohe Permutations-Wichtigkeits-Scores.
Wenn es mehrere Scoring-Metriken im Scoring-Parameter gibt, ist
resultein Dictionary mit Scorer-Namen als Schlüssel (z.B. ‚roc_auc‘) undBunch-Objekten wie oben als Werte.
- result
Referenzen
Beispiele
>>> from sklearn.linear_model import LogisticRegression >>> from sklearn.inspection import permutation_importance >>> X = [[1, 9, 9],[1, 9, 9],[1, 9, 9], ... [0, 9, 9],[0, 9, 9],[0, 9, 9]] >>> y = [1, 1, 1, 0, 0, 0] >>> clf = LogisticRegression().fit(X, y) >>> result = permutation_importance(clf, X, y, n_repeats=10, ... random_state=0) >>> result.importances_mean array([0.4666, 0. , 0. ]) >>> result.importances_std array([0.2211, 0. , 0. ])
Galeriebeispiele#
Permutations-Wichtigkeit vs. Random Forest Merkmals-Wichtigkeit (MDI)
Permutations-Wichtigkeit bei multikollinearen oder korrelierten Merkmalen