partial_dependence#
- sklearn.inspection.partial_dependence(estimator, X, features, *, sample_weight=None, categorical_features=None, feature_names=None, response_method='auto', percentiles=(0.05, 0.95), grid_resolution=100, custom_values=None, method='auto', kind='average')[Quelle]#
Partielle Abhängigkeit von
features.Die partielle Abhängigkeit eines Merkmals (oder einer Menge von Merkmalen) entspricht der durchschnittlichen Reaktion eines Schätzers für jeden möglichen Wert des Merkmals.
Lesen Sie mehr in Partial Dependence and Individual Conditional Expectation Plots und im Benutzerhandbuch.
Warnung
Für
GradientBoostingClassifierundGradientBoostingRegressorwird die Methode'recursion'(standardmäßig verwendet) nicht deninit-Prädiktor des Boosting-Prozesses berücksichtigen. In der Praxis führt dies zu denselben Werten wie'brute'bis auf eine konstante Verschiebung in der Zielreaktion, vorausgesetzt, dassinitein konstanter Schätzer ist (was der Standard ist). Wenninitjedoch kein konstanter Schätzer ist, sind die partiellen Abhängigkeitswerte für'recursion'falsch, da die Verschiebung stichprobenabhängig ist. Es ist vorzuziehen, die Methode'brute'zu verwenden. Beachten Sie, dass dies nur fürGradientBoostingClassifierundGradientBoostingRegressorgilt, nicht jedoch fürHistGradientBoostingClassifierundHistGradientBoostingRegressor.- Parameter:
- estimatorBaseEstimator
Ein trainiertes Schätzerobjekt, das predict, predict_proba oder decision_function implementiert. Multioutput-Multiclass-Klassifikatoren werden nicht unterstützt.
- X{array-like, sparse matrix oder dataframe} von Shape (n_samples, n_features)
Xwird verwendet, um ein Gitter von Werten für die Zielmerkmale (features) zu generieren (bei denen die partielle Abhängigkeit ausgewertet wird) und auch, um Werte für die komplementären Merkmale zu generieren, wenn diemethod'brute' ist.- featuresarray-like von {int, str, bool} oder int oder str
Das Merkmal (z.B.
[0]) oder das Paar interagierender Merkmale (z.B.[(0, 1)]), für die die partielle Abhängigkeit berechnet werden soll.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte werden verwendet, um gewichtete Mittelwerte bei der Mittelung der Modell-Ausgabe zu berechnen. Wenn
None, dann werden die Stichproben gleich gewichtet. Wennsample_weightnichtNoneist, dann wirdmethodauf'brute'gesetzt. Beachten Sie, dasssample_weightfürkind='individual'ignoriert wird.Hinzugefügt in Version 1.3.
- categorical_featuresarray-like von Shape (n_features,) oder Shape (n_categorical_features,), dtype={bool, int, str}, default=None
Zeigt die kategorialen Merkmale an.
None: kein Merkmal wird als kategorisch betrachtet;- boolean array-like: boolean mask von Shape
(n_features,) die angibt, welche Merkmale kategorisch sind. Daher hat dieses Array die gleiche Form wie
X.shape[1];
- boolean array-like: boolean mask von Shape
- integer oder string array-like: integer Indizes oder Strings
die kategorische Merkmale angeben.
Hinzugefügt in Version 1.2.
- feature_namesarray-like von Shape (n_features,), dtype=str, default=None
Name jedes Merkmals;
feature_names[i]enthält den Namen des Merkmals mit Indexi. Standardmäßig entspricht der Name des Merkmals seinem numerischen Index für NumPy-Arrays und seinem Spaltennamen für Pandas-DataFrames.Hinzugefügt in Version 1.2.
- response_method{‘auto’, ‘predict_proba’, ‘decision_function’}, default=’auto’
Gibt an, ob predict_proba oder decision_function als Zielreaktion verwendet werden soll. Für Regressoren wird dieser Parameter ignoriert und die Reaktion ist immer die Ausgabe von predict. Standardmäßig wird zuerst predict_proba versucht und auf decision_function zurückgegriffen, falls diese nicht existiert. Wenn
method'recursion' ist, ist die Reaktion immer die Ausgabe von decision_function.- percentilestuple von float, default=(0.05, 0.95)
Das untere und obere Perzentil, das zur Erstellung der Extremwerte für das Gitter verwendet wird. Muss in [0, 1] liegen. Dieser Parameter wird durch
custom_valuesüberschrieben, wenn dieser Parameter gesetzt ist.- grid_resolutionint, Standard=100
Die Anzahl der gleichmäßig verteilten Punkte im Gitter für jedes Zielmerkmal. Dieser Parameter wird durch
custom_valuesüberschrieben, wenn dieser Parameter gesetzt ist.- custom_valuesdict
Ein Dictionary, das den Index eines Elements von
featuresauf ein Array von Werten abbildet, für das die partielle Abhängigkeit für dieses Merkmal berechnet werden soll. Das Setzen eines Wertebereichs für ein Merkmal überschreibtgrid_resolutionundpercentiles.Siehe how to use partial_dependence für ein Beispiel, wie dieser Parameter verwendet werden kann.
Hinzugefügt in Version 1.7.
- method{‘auto’, ‘recursion’, ‘brute’}, default=’auto’
Die Methode zur Berechnung der gemittelten Vorhersagen
'recursion'wird nur für einige baumbasierte Schätzer unterstützt (nämlichGradientBoostingClassifier,GradientBoostingRegressor,HistGradientBoostingClassifier,HistGradientBoostingRegressor,DecisionTreeRegressor,RandomForestRegressor, ) wennkind='average'ist. Dies ist effizienter in Bezug auf die Geschwindigkeit. Mit dieser Methode ist die Zielreaktion eines Klassifikators immer die Entscheidungsfunktion, nicht die vorhergesagten Wahrscheinlichkeiten. Da die Methode'recursion'von Natur aus das Durchschnitt der Individual Conditional Expectation (ICE) berechnet, ist sie mit ICE nicht kompatibel und daher musskind'average'sein.'brute'wird für jeden Schätzer unterstützt, ist aber rechenintensiver.'auto':'recursion'wird für Schätzer verwendet, die dies unterstützen, und'brute'wird andernfalls verwendet. Wennsample_weightnichtNoneist, wird'brute'unabhängig vom Schätzer verwendet.
Bitte siehe diese Anmerkung für Unterschiede zwischen der Methode
'brute'und'recursion'.- kind{‘average’, ‘individual’, ‘both’}, default=’average’
Gibt an, ob die partielle Abhängigkeit gemittelt über alle Stichproben im Datensatz oder ein Wert pro Stichprobe oder beides zurückgegeben werden soll. Siehe Rückgabewerte unten.
Beachten Sie, dass die schnelle Option
method='recursion'nur fürkind='average'undsample_weights=Noneverfügbar ist. Die Berechnung individueller Abhängigkeiten und gewichteter Mittelwerte erfordert die Verwendung der langsameren Methodemethod='brute'.Hinzugefügt in Version 0.24.
- Gibt zurück:
- predictions
Bunch Dictionary-ähnliches Objekt mit den folgenden Attributen.
- individualndarray von Shape (n_outputs, n_instances, len(values[0]), len(values[1]), …)
Die Vorhersagen für alle Punkte im Gitter für alle Stichproben in X. Dies ist auch bekannt als Individual Conditional Expectation (ICE). Nur verfügbar, wenn
kind='individual'oderkind='both'.- averagendarray von Shape (n_outputs, len(values[0]), len(values[1]), …)
Die Vorhersagen für alle Punkte im Gitter, gemittelt über alle Stichproben in X (oder über die Trainingsdaten, wenn
method'recursion' ist). Nur verfügbar, wennkind='average'oderkind='both'.- grid_valuesseq von 1d ndarrays
Die Werte, mit denen das Gitter erstellt wurde. Das generierte Gitter ist ein kartesisches Produkt der Arrays in
grid_values, wobeilen(grid_values) == len(features)ist. Die Größe jedes Arraysgrid_values[j]ist entwedergrid_resolutionoder die Anzahl der eindeutigen Werte inX[:, j], je nachdem, welcher Wert kleiner ist.Hinzugefügt in Version 1.3.
n_outputsentspricht der Anzahl der Klassen in einer Multiklassen-Einstellung oder der Anzahl der Aufgaben für die Multiausgabe-Regression. Für klassische Regression und binäre Klassifizierung istn_outputs==1.n_values_feature_jentspricht der Größe vongrid_values[j].
- predictions
Siehe auch
PartialDependenceDisplay.from_estimatorPartielle Abhängigkeit plotten.
PartialDependenceDisplayVisualisierung der partiellen Abhängigkeit.
Beispiele
>>> X = [[0, 0, 2], [1, 0, 0]] >>> y = [0, 1] >>> from sklearn.ensemble import GradientBoostingClassifier >>> gb = GradientBoostingClassifier(random_state=0).fit(X, y) >>> partial_dependence(gb, features=[0], X=X, percentiles=(0, 1), ... grid_resolution=2) (array([[-4.52, 4.52]]), [array([ 0., 1.])])
Galeriebeispiele#
Partial Dependence und Individual Conditional Expectation Plots