Articles

sklearn.Ensemble.RandomForestRegressor¶

class sklearn.ensemble.RandomForestRegressor(n_estimators=100, *, Kriterium=’mse‘, max_depth=Keine, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto‘, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)¶

Ein Random-Forest-Regressor.

Eine Random Forest ist ein Metaschätzer, der eine Reihe von Klassifizierungsentscheidungsbäumen auf verschiedene Teilstichproben des Datensatzes anpasst und Mittelung verwendet, um die Vorhersagegenauigkeit und die Kontrolle über die Anpassung zu verbessern.Die Größe der Teilstichprobe wird mit dem Parameter max_samples gesteuert, wennbootstrap=True (Standard), andernfalls wird der gesamte Datensatz zum Erstellen verwendetjeder Baum.

Lesen Sie mehr im Benutzerhandbuch.

Parameter n_estimatorsint, default=100

Die Anzahl der Bäume im Wald.

Geändert in Version 0.22: Der Standardwert von n_estimators wurde in 0.22 von 10 auf 100 geändert.

criterion{„mse“, „mae“}, default=“mse“

Die Funktion zum Messen der Qualität eines Splits. Unterstützte Kriterien sind „mse“ für den mittleren quadratischen Fehler, der der Varianzreduzierung als Merkmalsauswahlkriterium entspricht, und „mae“ für den mittleren absoluten Fehler.

Neu in Version 0.18: Mean Absolute Error (MAE) Kriterium.

max_depthint, default=None

Die maximale Tiefe des Baums. Wenn Keine, werden die Knoten so lange erweitert, bis alle Blätter rein sind oder bis alle Blätter weniger als min_samples_split-Samples enthalten.

min_samples_splitint oder float, default=2

Die minimale Anzahl von Samples, die zum Teilen eines internen Knotens erforderlich sind:

  • Wenn int, dann betrachten Sie min_samples_split als minimale Anzahl.

  • Wenn float , dann ist min_samples_split ein Bruch undceil(min_samples_split * n_samples) 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, default=1

Die minimale Anzahl von Samples, die an einem Blattknoten benötigt werden.Ein Split-Punkt in einer beliebigen Tiefe wird nur berücksichtigt, wenn mindestens min_samples_leaf Trainingsbeispiele in jedem der linken und rechten Zweige verbleiben. Dies kann dazu führen, dass das Modell geglättet wird, insbesondere bei der Regression.

  • Wenn int, dann betrachten Sie min_samples_leaf als Mindestzahl.

  • Wenn float , dann ist min_samples_leaf ein Bruch undceil(min_samples_leaf * n_samples) 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, default=0.0

Der minimale gewichtete Bruchteil der Summe der Gewichte (aller Eingabeproben), die an einem Blattknoten sein müssen. Samples haben ein gleiches Gewicht, wenn sample_weight nicht angegeben ist.

max_features{„auto“, „sqrt“, „log2″}, int oder float, default=“auto“

Die Anzahl der Features, die bei der Suche nach dem besten Split zu berücksichtigen sind:

  • Wenn int, dann betrachten Sie max_features Features bei jedem Split.

  • Wenn float , dann ist max_features ein Bruch undround(max_features * n_features) Merkmale werden bei jeder Aufteilung berücksichtigt.

  • Wenn „auto“, dann max_features=n_features.

  • Wenn „sqrt“, dann max_features=sqrt(n_features).

  • Wenn „log2“, dann max_features=log2(n_features).

  • Wenn Keine, dann max_features=n_features.

Hinweis: die Suche nach einem Split stoppt nicht, bis mindestens einevalid Partition des Knotens samples wird gefunden, auch wenn es erforderteffektiv inspizieren mehr als max_features Features.

max_leaf_nodesint, default=None

Wachsen Sie Bäume mit max_leaf_nodes in Best-First-Mode.Beste Knoten sind definiert als relative Verringerung der Verunreinigung.Wenn Keine, dann unbegrenzte Anzahl von Blattknoten.

min_impurity_decreasefloat, default=0.0

Ein Knoten wird geteilt, wenn dieser Split eine Abnahme der impuritygreater als oder gleich diesem Wert induziert.

Die gewichtete Gleichung zur Verringerung der Verunreinigung lautet wie folgt:

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

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

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

Neu in Version 0.19.

min_impurity_splitfloat, default=None

Schwellenwert für frühzeitiges Stoppen des Baumwachstums. Ein Knoten spaltet sich,wenn seine Verunreinigung über dem Schwellenwert liegt, andernfalls handelt es sich um ein Blatt.

Veraltet seit Version 0.19: min_impurity_split wurde zugunsten vonmin_impurity_decrease in 0.19 veraltet. Der Standardwert vonmin_impurity_split hat sich in 0.23 von 1e-7 auf 0 geändert und wird in 1.0 entfernt (Umbenennung von 0.25).Verwenden Sie stattdessen min_impurity_decrease.

bootstrapbool, default=True

Ob Bootstrap-Beispiele beim Erstellen von Bäumen verwendet werden. Wenn False , wird das gesamte Dataset verwendet, um jeden Baum zu erstellen.

oob_scorebool, default=False

ob Out-of-Bag-Stichproben verwendet werden sollen, um das R ^ 2 für unsichtbare Daten zu schätzen.

n_jobsint, default=None

Die Anzahl der parallel auszuführenden Jobs. fitpredictdecision_path and apply are all parallelized over thetrees. None means 1 unless in a joblib.parallel_backendcontext. -1 means using all processors. See Glossary for more details.

random_stateint, RandomState instance or None, default=None

Steuert sowohl die Zufälligkeit des Bootstrapping der Samples, die beim Erstellen von Bäumen verwendet werden (if bootstrap=True), als auch die Stichprobe derfeatures, die bei der Suche nach dem besten Split an jedem Knoten zu berücksichtigen sind(if max_features < n_features).Siehe Glossar für Details.

verboseint, default=0

Steuert die Ausführlichkeit beim Anpassen und Vorhersagen.

warm_startbool, default=False

Wenn Sie auf True, verwenden Sie die Lösung des vorherigen Aufrufs zu fitund fügen Sie dem Ensemble weitere Schätzer hinzu, andernfalls passen Sie einfach eine ganzeneue Gesamtstruktur. Siehe das Glossar.

ccp_alphanon-negativer Gleitkommawert, default=0.0

Komplexitätsparameter für minimales Kosten-Komplexitäts-Pruning. Der Teilbaum mit der größten Kostenkomplexität, die kleiner alsccp_alpha ist, wird ausgewählt. Standardmäßig wird kein Beschneiden durchgeführt. SeeMinimal Kosten-Komplexität Pruning für Details.

Neu in Version 0.22.

max_samplesint oder float, default=None

Wenn bootstrap True ist, die Anzahl der Samples, die von X gezogen werden sollen, um jeden Basisschätzer zu trainieren.

  • Wenn Keine (Standard), zeichnen Sie X.shape Beispiele.

  • Wenn int, dann zeichne max_samples samples.

  • Wenn float, dann zeichne max_samples * X.shape samples. Daher solltemax_samples im Intervall (0, 1) .

Neu in Version 0.22.

Attribute base_estimator_DecisionTreeRegressor

Die untergeordnete Schätzervorlage, die zum Erstellen der Sammlung von fittedsub-Schätzern verwendet wird.

estimators_list of DecisionTreeRegressor

Die Sammlung angepasster Unterschätzer.

feature_importances_ndarray der Form (n_features,)

Die impurity-basierten Feature-Importanzen.

n_features_int

Die Anzahl der Features, wenn fit ausgeführt wird.

n_outputs_int

Die Anzahl der Ausgänge, wenn fit ausgeführt wird.

oob_score_float

Score des Trainingsdatensatzes, der unter Verwendung einer Out-of-Bag-Schätzung erhalten wurde.Dieses Attribut existiert nur, wenn oob_score Wahr ist.

oob_prediction_ndarray der Form (n_samples,)

Vorhersage berechnet mit Out-of-Bag-Schätzung für den Trainingssatz.Dieses Attribut existiert nur, wenn oob_score Wahr ist.

Siehe auch

DecisionTreeRegressorExtraTreesRegressor

Hinweise

Die Standardwerte für die Parameter, die die Größe der Bäume steuern (z.B. max_depthmin_samples_leaf usw.) führen zu ausgewachsenen und unbeschnittenen Bäumen, die in einigen Datensätzen möglicherweise sehr groß sein können. Um den Speicherverbrauch zu reduzieren, sollten die Komplexität und Größe der Bäume durch Festlegen dieser Parameterwerte gesteuert werden.

Die Features werden bei jedem Split immer zufällig permutiert. Daher kann der am besten gefundene Split variieren, selbst mit den gleichen Trainingsdaten,max_features=n_features und bootstrap=False, wenn die Verbesserung des Kriteriums für mehrere Splits identisch ist, die während der Suche nach dem besten Split aufgezählt wurden. Um ein deterministisches Verhalten beim Einbau zu erhalten, muss random_state behoben werden.

Der Standardwert max_features="auto" verwendet n_featuresanstelle von n_features / 3. Letzteres wurde ursprünglich in vorgeschlagen, Ersteres wurde in jüngerer Zeit empirisch in gerechtfertigt .

1

  1. Breiman, „Random Forests“, Maschinelles Lernen, 45(1), 5-32, 2001.

2

P. Geurts, D. Ernst., und L. Wehenkel, „Extremely randomizedtrees“, Maschinelles Lernen, 63(1), 3-42, 2006.

Examples

>>> from sklearn.ensemble import RandomForestRegressor>>> from sklearn.datasets import make_regression>>> X, y = make_regression(n_features=4, n_informative=2,... random_state=0, shuffle=False)>>> regr = RandomForestRegressor(max_depth=2, random_state=0)>>> regr.fit(X, y)RandomForestRegressor(...)>>> print(regr.predict(]))

Methods

apply(X)

Apply trees in the forest to X, return leaf indices.

decision_path(X)

Return the decision path in the forest.

fit(X, y)

Build a forest of trees from the training set (X, y).

get_params()

Get parameters for this estimator.

predict(X)

Predict regression target for X.

score(X, y)

Return the coefficient of determination \(R^2\) of the prediction.

set_params(**params)

Set the parameters of this estimator.

apply(X)¶

Bäume im Wald auf X anwenden, Blattindizes zurückgeben.

Parameter X{Array-ähnliche, spärliche Matrix} der Form (n_samples, n_features)

Die Eingabesamples. Intern wird sein dtype indtype=np.float32 konvertiert. Wenn eine spärliche Matrix bereitgestellt wird, wird es seinkonvertiert in eine spärliche csr_matrix.

Gibt X_leavesndarray der Form (n_samples, n_estimators)

Für jeden Datenpunkt x in X und für jeden Baum in der Gesamtstruktur wird der Index des Blattes zurückgegeben, in dem x endet.

decision_path(X)¶

Gibt den Entscheidungspfad in der Gesamtstruktur zurück.

Neu in Version 0.18.

Parameter X{Array-ähnliche, spärliche Matrix} der Form (n_samples, n_features)

Die Eingabesamples. Intern wird sein dtype indtype=np.float32 konvertiert. Wenn eine spärliche Matrix bereitgestellt wird, wird es seinkonvertiert in eine spärliche csr_matrix.

Gibt Indikatoren zurückparse matrix of shape (n_samples, n_nodes)

Gibt eine Knotenindikatormatrix zurück, in der Elemente ungleich Null anzeigendass die Proben durch die Knoten gehen. Die Matrix ist von CSRformat.

n_nodes_ptrndarray der Form (n_estimators + 1,)

Die Spalten aus Indikator:n_nodes_ptr]gibt den Indikatorwert für den i-ten Schätzer an.

propertyfeature_importances_

Die impurity-basierten Feature-Importanzen.

Je höher, desto wichtiger das Feature.Die Wichtigkeit eines Merkmals wird als die (normalisierte) Gesamtreduktion des Kriteriums berechnet, die dieses Merkmal mit sich bringt. Es ist auch bekannt als die Gini Bedeutung.

Warnung: impurity-based feature importances können für high cardinality Features (viele eindeutige Werte) irreführend sein. Siehesklearn.inspection.permutation_importance als Alternative.

Gibt feature_importances_ndarray von shape (n_features,)

Die Werte dieses Arrays summieren sich zu 1, es sei denn, alle Bäume sind einzelne Knotenbäume, die nur aus dem Wurzelknoten bestehen.

fit(X, y, sample_weight=None)¶

Erstellen Sie einen Wald von Bäumen aus dem Trainingssatz (X, y).

Parameter X{Array-ähnliche, spärliche Matrix} der Form (n_samples, n_features)

Die Trainingseingabebeispiele. Intern wird sein dtype in dtype=np.float32 konvertiert. Wenn eine spärliche Matrix bereitgestellt wird, wird es seinin eine spärliche csc_matrix umgewandelt.

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

Die Zielwerte (Klassenbezeichnungen in der Klassifizierung, reelle Zahlen inregression).

sample_weightarray-ähnlich der Form (n_samples,), default=None

Probengewichte. Wenn keine, werden die Stichproben gleich gewichtet. Splitsthat würde untergeordnete Knoten mit Netto-Null oder negativem Gewicht erstellen, werden bei der Suche nach einem Split in jedem Knoten ignoriert. Im Fall Vonklassifizierung werden Splits auch ignoriert, wenn sie dazu führen würden, dass eine einzelne Klasse in einem der untergeordneten Knoten ein negatives Gewicht trägt.

Gibt selfobject zurückget_params(deep=True)¶

Parameter für diesen Schätzer abrufen.

Parameter deepbool, default=True

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

Gibt paramsdict

Parameternamen zurück, die ihren Werten zugeordnet sind.

predict(X)¶

Regressionsziel für X vorhersagen.

Das vorhergesagte Regressionsziel einer Eingabeprobe wird als das vorhergesagte Regressionsziel der Bäume im Wald berechnet.

Parameter X{Array-ähnliche, spärliche Matrix} der Form (n_samples, n_features)

Die Eingabesamples. Intern wird sein dtype indtype=np.float32 konvertiert. Wenn eine spärliche Matrix bereitgestellt wird, wird es seinkonvertiert in eine spärliche csr_matrix.

Gibt yndarray der Form (n_samples,) oder (n_samples, n_outputs)

Die vorhergesagten Werte zurück.

score(X, y, sample_weight=None)¶

Gibt den Bestimmungskoeffizienten \(R^2\) der Vorhersage zurück.

Der Koeffizient \(R^2\) ist definiert als \((1 – \frac{u}{v})\),wobei \(u\) die Restsumme der Quadrate ((y_true - y_pred)** 2).sum() und \(v\) die Gesamtsumme der Quadrate ((y_true -y_true.mean()) ** 2).sum() ist. Die bestmögliche Punktzahl ist 1,0 und eskann negativ sein (weil das Modell beliebig schlechter sein kann). Einkonstantes Modell, das immer den erwarteten Wert von y , würde ohne Berücksichtigung der Eingabemerkmale einen \(R ^ 2\) -Wert von 0,0 erhalten.

Parameter Xarray-like der Form (n_samples, n_features)

Testproben. Für einige Schätzer kann dies eine vorcomputedkernel-Matrix oder eine Liste generischer Objekte mit der Form(n_samples, n_samples_fitted) sein, wobei n_samples_fitteddie Anzahl der Stichproben ist, die bei der Anpassung für den Schätzer verwendet werden.

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

True Werte für X.

sample_weightarray-ähnlich der Form (n_samples,), default=None

Probengewichte.

Gibt scorefloat

\(R^2\) von self.predict(X) wrt zurück. y.

Anmerkungen

Der \(R ^2\) Score, der beim Aufruf von score auf einem Regressor verwendet wird, verwendetmultioutput='uniform_average' ab Version 0.23, um konsistent zu bleibenmit dem Standardwert von r2_score.Dies beeinflusst die score Methode aller multioutputregressors (außerMultiOutputRegressor ).

set_params(**params)¶

Legen Sie die Parameter dieses Schätzers fest.

Die Methode funktioniert sowohl mit einfachen Schätzern als auch mit verschachtelten Objekten(z. B. 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 selfestimator instance

Estimator instance zurück.

Beispiele mit sklearn.Ensemble.RandomForestRegressor¶