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 GradientBoostingClassifier und GradientBoostingRegressor wird die Methode 'recursion' (standardmäßig verwendet) nicht den init-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, dass init ein konstanter Schätzer ist (was der Standard ist). Wenn init jedoch 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ür GradientBoostingClassifier und GradientBoostingRegressor gilt, nicht jedoch für HistGradientBoostingClassifier und HistGradientBoostingRegressor.

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)

X wird 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 die method '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. Wenn sample_weight nicht None ist, dann wird method auf 'brute' gesetzt. Beachten Sie, dass sample_weight für kind='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];

  • 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 Index i. 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 features auf 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 überschreibt grid_resolution und percentiles.

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ämlich GradientBoostingClassifier, GradientBoostingRegressor, HistGradientBoostingClassifier, HistGradientBoostingRegressor, DecisionTreeRegressor, RandomForestRegressor, ) wenn kind='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 muss kind '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. Wenn sample_weight nicht None ist, 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ür kind='average' und sample_weights=None verfügbar ist. Die Berechnung individueller Abhängigkeiten und gewichteter Mittelwerte erfordert die Verwendung der langsameren Methode method='brute'.

Hinzugefügt in Version 0.24.

Gibt zurück:
predictionsBunch

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' oder kind='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, wenn kind='average' oder kind='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, wobei len(grid_values) == len(features) ist. Die Größe jedes Arrays grid_values[j] ist entweder grid_resolution oder die Anzahl der eindeutigen Werte in X[:, j], je nachdem, welcher Wert kleiner ist.

Hinzugefügt in Version 1.3.

n_outputs entspricht 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 ist n_outputs==1. n_values_feature_j entspricht der Größe von grid_values[j].

Siehe auch

PartialDependenceDisplay.from_estimator

Partielle Abhängigkeit plotten.

PartialDependenceDisplay

Visualisierung 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.])])