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.
N
N_t
N_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. fit
predict
decision_path
and apply
are all parallelized over thetrees. None
means 1 unless in a joblib.parallel_backend
context. -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
DecisionTreeRegressor
ExtraTreesRegressor
Hinweise
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 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_features
anstelle von n_features / 3
. Letzteres wurde ursprünglich in vorgeschlagen, Ersteres wurde in jüngerer Zeit empirisch in gerechtfertigt .
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 trees in the forest to X, return leaf indices. |
|
Return the decision path in the forest. |
|
Build a forest of trees from the training set (X, y). |
|
Get parameters for this estimator. |
|
Predict regression target for X. |
|
Return the coefficient of determination \(R^2\) of the prediction. |
|
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_fitted
die 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.