ExtraTreesRegressor#

class sklearn.ensemble.ExtraTreesRegressor(n_estimators=100, *, criterion='squared_error', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=1.0, max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=False, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None, monotonic_cst=None)[Quelle]#

Ein Extra-Trees-Regressor.

Diese Klasse implementiert einen Meta-Schätzer, der eine Anzahl von zufälligen Entscheidungsbäumen (auch Extra-Trees genannt) auf verschiedenen Teilmengen des Datensatzes anpasst und durch Mittelwertbildung die Vorhersagegenauigkeit verbessert und Überanpassung kontrolliert.

Dieser Schätzer unterstützt nativ fehlende Werte (NaNs) für zufällige Splits. Während des Trainings wird ein zufälliger Schwellenwert ausgewählt, um die nicht fehlenden Werte zu splitten. Dann werden die nicht fehlenden Werte basierend auf dem zufällig ausgewählten Schwellenwert an das linke und rechte Kind weitergeleitet, während die fehlenden Werte ebenfalls zufällig an das linke oder rechte Kind weitergeleitet werden. Dies wird für jedes Merkmal wiederholt, das bei jedem Split betrachtet wird. Der beste Split unter diesen wird ausgewählt.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
n_estimatorsint, Standard=100

Die Anzahl der Bäume im Forest.

Geändert in Version 0.22: Der Standardwert von n_estimators änderte sich von 10 auf 100 in 0.22.

criterion{„squared_error“, „absolute_error“, „friedman_mse“, „poisson“}, Standardwert=”squared_error”

Die Funktion zur Messung der Qualität eines Splits. Unterstützte Kriterien sind „squared_error“ für den mittleren quadratischen Fehler, der der Varianzreduktion als Kriterium für die Merkmalsauswahl entspricht und den L2-Verlust minimiert, indem der Mittelwert jedes terminalen Knotens verwendet wird, „friedman_mse“, das den mittleren quadratischen Fehler mit dem Friedman-Verbesserungsmaß für potenzielle Splits verwendet, „absolute_error“ für den mittleren absoluten Fehler, der den L1-Verlust minimiert, indem der Median jedes terminalen Knotens verwendet wird, und „poisson“, das die Reduzierung der Poisson-Devianz zur Findung von Splits verwendet. Das Training mit „absolute_error“ ist deutlich langsamer als mit „squared_error“.

Hinzugefügt in Version 0.18: Kriterium für den mittleren absoluten Fehler (MAE).

max_depthint, Standard=None

Die maximale Tiefe des Baumes. Wenn None, dann werden Knoten erweitert, bis alle Blätter rein sind oder bis alle Blätter weniger als min_samples_split Samples enthalten.

min_samples_splitint oder float, Standard=2

Die minimale Anzahl von Samples, die zur Aufteilung eines internen Knotens erforderlich sind.

  • Wenn int, dann betrachte min_samples_split als die minimale Anzahl.

  • Wenn float, dann ist min_samples_split ein Bruchteil und ceil(min_samples_split * n_samples) ist die minimale Anzahl von Samples für jeden Split.

Geändert in Version 0.18: Float-Werte für Brüche hinzugefügt.

min_samples_leafint oder float, Standard=1

Die minimale Anzahl von Samples, die an einem Blattknoten erforderlich sind. Ein Splitpunkt in beliebiger Tiefe wird nur berücksichtigt, wenn er mindestens min_samples_leaf Trainingssamples in jedem der linken und rechten Zweige hinterlässt. Dies kann insbesondere bei der Regression zur Glättung des Modells beitragen.

  • Wenn int, dann betrachte min_samples_leaf als die minimale Anzahl.

  • Wenn float, dann ist min_samples_leaf ein Bruchteil und ceil(min_samples_leaf * n_samples) ist die minimale Anzahl von Samples für jeden Knoten.

Geändert in Version 0.18: Float-Werte für Brüche hinzugefügt.

min_weight_fraction_leaffloat, Standard=0.0

Der minimale gewichtete Bruchteil der Summe aller Gewichte (aller Eingabesamplings), der in einem Blattknoten erforderlich ist. Samples haben gleiche Gewichte, wenn sample_weight nicht angegeben ist.

max_features{„sqrt“, „log2“, None}, int oder float, Standardwert=1.0

Die Anzahl der Features, die bei der Suche nach dem besten Split berücksichtigt werden.

  • Wenn int, dann werden max_features Features bei jedem Split berücksichtigt.

  • Wenn float, dann ist max_features ein Bruchteil und max(1, int(max_features * n_features_in_)) Features werden bei jedem Split berücksichtigt.

  • Wenn "sqrt", dann max_features=sqrt(n_features).

  • Wenn "log2", dann max_features=log2(n_features).

  • Wenn None oder 1.0, dann max_features=n_features.

Hinweis

Der Standardwert von 1.0 ist äquivalent zu Bagged Trees, und mehr Zufälligkeit kann durch kleinere Werte, z. B. 0.3, erzielt werden.

Geändert in Version 1.1: Der Standardwert von max_features wurde von "auto" auf 1.0 geändert.

Hinweis: Die Suche nach einem Split stoppt nicht, bis mindestens eine gültige Partition der Knoten-Samples gefunden wurde, auch wenn dies die Inspektion von mehr als max_features Features erfordert.

max_leaf_nodesint, Standard=None

Bäume mit max_leaf_nodes im Best-First-Verfahren wachsen lassen. Beste Knoten werden als relative Verringerung der Unreinheit definiert. Wenn None, dann unbegrenzte Anzahl von Blattknoten.

min_impurity_decreasefloat, Standard=0.0

Ein Knoten wird geteilt, wenn dieser Split eine Verringerung der Unreinheit von mindestens diesem Wert bewirkt.

Die gewichtete Gleichung für die Verringerung der Unreinheit lautet:

N_t / N * (impurity - N_t_R / N_t * right_impurity
                    - N_t_L / N_t * left_impurity)

wobei N die Gesamtzahl der Samples, N_t die Anzahl der Samples im aktuellen Knoten, N_t_L die Anzahl der Samples im linken Kind und N_t_R die Anzahl der Samples im rechten Kind ist.

N, N_t, N_t_R und N_t_L beziehen sich alle auf die gewichtete Summe, wenn sample_weight übergeben wird.

Hinzugefügt in Version 0.19.

bootstrapbool, Standard=False

Ob Bootstrap-Samples beim Aufbau von Bäumen verwendet werden. Wenn False, wird der gesamte Datensatz zum Aufbau jedes Baumes verwendet.

oob_scorebool oder callable, Standard=False

Ob Out-of-Bag-Stichproben zur Schätzung des Generalisierungs-Scores verwendet werden sollen. Standardmäßig wird r2_score verwendet. Stellen Sie eine aufrufbare Funktion mit der Signatur metric(y_true, y_pred) bereit, um eine benutzerdefinierte Metrik zu verwenden. Nur verfügbar, wenn bootstrap=True.

Eine Illustration der Out-of-Bag (OOB)-Fehlerschätzung finden Sie im Beispiel OOB-Fehler für Random Forests.

n_jobsint, default=None

Die Anzahl der parallel auszuführenden Jobs. fit, predict, decision_path und apply werden alle über die Bäume parallelisiert. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. -1 bedeutet Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

random_stateint, RandomState-Instanz oder None, default=None

Steuert 3 Quellen der Zufälligkeit

  • das Bootstrapping der Stichproben, die beim Erstellen von Bäumen verwendet werden (wenn bootstrap=True)

  • die Stichprobenziehung der Merkmale, die bei der Suche nach dem besten Split an jedem Knoten berücksichtigt werden (wenn max_features < n_features)

  • das Ziehen der Splits für jedes der max_features

Siehe Glossar für Details.

verboseint, default=0

Steuert die Ausführlichkeit beim Anpassen und Vorhersagen.

warm_startbool, Standard=False

Wenn auf True gesetzt, wird die Lösung des vorherigen Aufrufs von fit wiederverwendet und dem Ensemble weitere Estimators hinzugefügt, andernfalls wird nur ein komplett neues Forest erstellt. Siehe Glossar und Zusätzliche Bäume anpassen für Details.

ccp_alphanicht-negativer float, Standard=0.0

Komplexitätsparameter, der für das prudenbasierte "Minimal Cost-Complexity Pruning" verwendet wird. Es wird der Teilbaum mit der größten Kostenkomplexität gewählt, der kleiner als ccp_alpha ist. Standardmäßig erfolgt kein Pruning. Siehe Pruning nach Kostenkomplexität für Details. Siehe Entscheidungsbäume durch Kostenkomplexitäts-Pruning nachbearbeiten für ein Beispiel eines solchen Prunings.

Hinzugefügt in Version 0.22.

max_samplesint oder float, Standard=None

Wenn bootstrap True ist, die Anzahl der Samples, die aus X gezogen werden, um jeden Basis-Estimator zu trainieren.

  • Wenn None (Standard), dann werden X.shape[0] Samples gezogen.

  • Wenn int, dann werden max_samples Samples gezogen.

  • Wenn float, dann werden max_samples * X.shape[0] Stichproben gezogen. Daher sollte max_samples im Intervall (0.0, 1.0] liegen.

Hinzugefügt in Version 0.22.

monotonic_cstarray-like von int der Form (n_features,), Standard=None
Gibt die zu erzwingende Monotonie-Beschränkung für jedes Merkmal an.
  • 1: monoton steigend

  • 0: keine Beschränkung

  • -1: monoton fallend

Wenn monotonic_cst None ist, werden keine Beschränkungen angewendet.

Monotonie-Beschränkungen werden nicht unterstützt für
  • Multi-Output-Regressionen (d.h. wenn n_outputs_ > 1),

  • Regressionen, die auf Daten mit fehlenden Werten trainiert wurden.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 1.4.

Attribute:
estimator_ExtraTreeRegressor

Die Kind-Estimator-Vorlage, die zum Erstellen der Sammlung von angepassten Unter-Estimators verwendet wird.

Hinzugefügt in Version 1.2: base_estimator_ wurde in estimator_ umbenannt.

estimators_list von DecisionTreeRegressor

Die Sammlung der angepassten Unter-Estimators.

feature_importances_ndarray der Form (n_features,)

Die Unreinheits-basierten Wichtigkeiten der Features.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

n_outputs_int

Die Anzahl der Ausgaben.

oob_score_float

Score des Trainingsdatensatzes, der mit einer Out-of-Bag-Schätzung erzielt wurde. Dieses Attribut existiert nur, wenn oob_score True ist.

oob_prediction_ndarray der Form (n_samples,) oder (n_samples, n_outputs)

Vorhersage, berechnet mit der Out-of-Bag-Schätzung auf dem Trainingssatz. Dieses Attribut existiert nur, wenn oob_score True ist.

estimators_samples_Liste von Arrays

Die Teilmenge der gezogenen Samples für jeden Basis-Estimator.

Siehe auch

ExtraTreesClassifier

Ein Extra-Trees-Klassifikator mit zufälligen Splits.

RandomForestClassifier

Ein Random-Forest-Klassifikator mit optimalen Splits.

RandomForestRegressor

Ensemble-Regressor mit Bäumen mit optimalen Splits.

Anmerkungen

Die Standardwerte für die Parameter, die die Größe der Bäume steuern (z. B. max_depth, min_samples_leaf usw.), führen zu vollständig gewachsenen und un-geprunten Bäumen, die auf einigen Datensätzen potenziell sehr groß sein können. Um den Speicherverbrauch zu reduzieren, sollte die Komplexität und Größe der Bäume durch Setzen dieser Parameterwerte gesteuert werden.

Referenzen

[1]

P. Geurts, D. Ernst. und L. Wehenkel, „Extremely randomized trees“, Machine Learning, 63(1), 3-42, 2006.

Beispiele

>>> from sklearn.datasets import load_diabetes
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.ensemble import ExtraTreesRegressor
>>> X, y = load_diabetes(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, random_state=0)
>>> reg = ExtraTreesRegressor(n_estimators=100, random_state=0).fit(
...    X_train, y_train)
>>> reg.score(X_test, y_test)
0.2727...
apply(X)[Quelle]#

Wendet die Bäume im Forest auf X an, gibt Blattindizes zurück.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabesamplings. Intern wird der dtype zu dtype=np.float32 konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetzte csr_matrix konvertiert.

Gibt zurück:
X_leavesndarray der Form (n_samples, n_estimators)

Gibt für jeden Datenpunkt x in X und für jeden Baum im Forest den Index des Blattes zurück, in das x gelangt.

decision_path(X)[Quelle]#

Gibt den Entscheidungsbaum im Forest zurück.

Hinzugefügt in Version 0.18.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabesamplings. Intern wird der dtype zu dtype=np.float32 konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetzte csr_matrix konvertiert.

Gibt zurück:
indicatordünn besetzte Matrix der Form (n_samples, n_nodes)

Gibt eine Knotenindikatormatrix zurück, bei der Nicht-Null-Elemente darauf hinweisen, dass die Samples die Knoten durchlaufen. Die Matrix ist im CSR-Format.

n_nodes_ptrndarray der Form (n_estimators + 1,)

Die Spalten von indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] geben den Indikatorwert für den i-ten Estimator an.

fit(X, y, sample_weight=None)[Quelle]#

Baut einen Forest von Bäumen aus dem Trainingsset (X, y) auf.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Trainings-Eingabesamplings. Intern wird der dtype zu dtype=np.float32 konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetzte csc_matrix konvertiert.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Die Zielwerte (Klassenbezeichnungen bei Klassifizierung, reelle Zahlen bei Regression).

sample_weightarray-like der Form (n_samples,), Standardwert=None

Sample-Gewichte. Wenn None, dann werden die Samples gleich gewichtet. Splits, die Kindknoten mit Nettogewicht Null oder negativ erzeugen würden, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Im Falle einer Klassifizierung werden Splits auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem Kindknoten ein negatives Gewicht trägt.

Gibt zurück:
selfobject

Angepasster Schätzer.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Gibt zurück:
routingMetadataRequest

Ein MetadataRequest, der Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

predict(X)[Quelle]#

Prognostiziert das Regressionsziel für X.

Die vorhergesagte Regressionszielgröße eines Eingabemusters wird als der mittlere vorhergesagte Regressionszielgröße der Bäume im Wald berechnet.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabesamplings. Intern wird der dtype zu dtype=np.float32 konvertiert. Wenn eine dünn besetzte Matrix bereitgestellt wird, wird sie in eine dünn besetzte csr_matrix konvertiert.

Gibt zurück:
yndarray der Form (n_samples,) oder (n_samples, n_outputs)

Die vorhergesagten Werte.

score(X, y, sample_weight=None)[Quelle]#

Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.

Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Summe der quadrierten Residuen ist ((y_true - y_pred)** 2).sum() und \(v\) die Summe der gesamten Quadrate ist ((y_true - y_true.mean()) ** 2).sum(). Der bestmögliche Score ist 1.0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert von y vorhersagt, ohne die Eingabemerkmale zu berücksichtigen, würde einen \(R^2\)-Score von 0.0 erhalten.

Parameter:
Xarray-like der Form (n_samples, n_features)

Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form (n_samples, n_samples_fitted), wobei n_samples_fitted die Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Wahre Werte für X.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

Gibt zurück:
scorefloat

\(R^2\) von self.predict(X) bezogen auf y.

Anmerkungen

Der \(R^2\)-Score, der beim Aufruf von score auf einem Regressor verwendet wird, verwendet multioutput='uniform_average' ab Version 0.23, um mit dem Standardwert von r2_score konsistent zu bleiben. Dies beeinflusst die score-Methode aller Multi-Output-Regressoren (außer MultiOutputRegressor).

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ExtraTreesRegressor[Quelle]#

Konfiguriert, ob Metadaten für die fit-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an fit übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an fit.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in fit.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ExtraTreesRegressor[Quelle]#

Konfiguriert, ob Metadaten für die score-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.