HistGradientBoostingRegressor#

class sklearn.ensemble.HistGradientBoostingRegressor(loss='squared_error', *, quantile=None, learning_rate=0.1, max_iter=100, max_leaf_nodes=31, max_depth=None, min_samples_leaf=20, l2_regularization=0.0, max_features=1.0, max_bins=255, categorical_features='from_dtype', monotonic_cst=None, interaction_cst=None, warm_start=False, early_stopping='auto', scoring='loss', validation_fraction=0.1, n_iter_no_change=10, tol=1e-07, verbose=0, random_state=None)[Quelle]#

Histogramm-basierter Gradient Boosting Regressionsbaum.

Dieser Schätzer ist für große Datensätze (n_samples >= 10 000) wesentlich schneller als GradientBoostingRegressor.

Dieser Schätzer unterstützt fehlende Werte (NaNs) nativ. Während des Trainings lernt der Baumgenerator an jedem Split-Punkt, ob Samples mit fehlenden Werten aufgrund des potenziellen Gewinns nach links oder rechts gehen sollen. Bei der Vorhersage werden Samples mit fehlenden Werten entsprechend dem linken oder rechten Kind zugewiesen. Wenn während des Trainings für ein bestimmtes Merkmal keine fehlenden Werte gefunden wurden, werden Samples mit fehlenden Werten dem Kind zugewiesen, das die meisten Samples hat. Ein Anwendungsbeispiel dieser Funktion finden Sie unter Features in Histogram Gradient Boosting Trees.

Diese Implementierung ist inspiriert von LightGBM.

Mehr dazu im Benutzerhandbuch.

Hinzugefügt in Version 0.21.

Parameter:
loss{‘squared_error’, ‘absolute_error’, ‘gamma’, ‘poisson’, ‘quantile’}, Standard=’squared_error’

Die zu verwendende Verlustfunktion im Boosting-Prozess. Beachten Sie, dass die Verluste „squared error“, „gamma“ und „poisson“ intern „half least squares loss“, „half gamma deviance“ und „half poisson deviance“ implementieren, um die Berechnung des Gradienten zu vereinfachen. Außerdem verwenden die Verluste „gamma“ und „poisson“ intern einen Log-Link, „gamma“ erfordert y > 0 und „poisson“ erfordert y >= 0. „quantile“ verwendet den Pinball-Verlust.

Geändert in Version 0.23: Option „poisson“ hinzugefügt.

Geändert in Version 1.1: Option „quantile“ hinzugefügt.

Geändert in Version 1.3: Option „gamma“ hinzugefügt.

quantilefloat, Standard=None

Wenn loss „quantile“ ist, gibt dieser Parameter an, welches Quantil geschätzt werden soll, und muss zwischen 0 und 1 liegen.

learning_ratefloat, Standard=0.1

Die Lernrate, auch bekannt als Shrinkage. Diese wird als multiplikativer Faktor für die Blattwerte verwendet. Verwenden Sie 1 für keine Schrumpfung.

max_iterint, default=100

Die maximale Anzahl von Iterationen des Boosting-Prozesses, d. h. die maximale Anzahl von Bäumen.

max_leaf_nodesint oder None, Standard=31

Die maximale Anzahl von Blättern pro Baum. Muss größer als 1 sein. Wenn None, gibt es keine maximale Grenze.

max_depthint oder None, Standard=None

Die maximale Tiefe jedes Baumes. Die Tiefe eines Baumes ist die Anzahl der Kanten, die vom Wurzelknoten zum tiefsten Blatt führen. Die Tiefe ist standardmäßig nicht begrenzt.

min_samples_leafint, Standard=20

Die minimale Anzahl von Samples pro Blatt. Für kleine Datensätze mit weniger als einigen hundert Samples wird empfohlen, diesen Wert zu senken, da nur sehr flache Bäume gebaut würden.

l2_regularizationfloat, Standard=0

Der L2-Regularisierungsparameter, der Blätter mit kleinen Hessians bestraft. Verwenden Sie 0 für keine Regularisierung (Standard).

max_featuresfloat, Standard=1.0

Anteil zufällig ausgewählter Merkmale bei jedem Split eines Knotens. Dies ist eine Form der Regularisierung, geringere Werte machen die Bäume zu schwächeren Lernenden und können Überanpassung verhindern. Wenn Interaktionsbeschränkungen aus interaction_cst vorhanden sind, werden nur zulässige Merkmale für die Unterstichprobenentnahme berücksichtigt.

Hinzugefügt in Version 1.4.

max_binsint, Standard=255

Die maximale Anzahl von Bins für nicht-fehlende Werte. Vor dem Training wird jedes Merkmal des Eingabearrays X in Ganzzahl-Bins eingeteilt, was eine deutlich schnellere Trainingsphase ermöglicht. Merkmale mit einer geringen Anzahl eindeutiger Werte können weniger als max_bins Bins verwenden. Zusätzlich zu den max_bins Bins wird immer ein weiterer Bin für fehlende Werte reserviert. Darf nicht größer als 255 sein.

categorical_featuresarray-like von {bool, int, str} der Form (n_features) oder (n_categorical_features,), Standard=’from_dtype’

Zeigt die kategorialen Merkmale an.

  • None : kein Merkmal wird als kategorisch betrachtet.

  • boolean array-like : boolesche Maske, die kategorische Merkmale angibt.

  • integer array-like : ganzzahlige Indizes, die kategorische Merkmale angeben.

  • str array-like: Namen von kategorischen Merkmalen (vorausgesetzt, die Trainingsdaten haben Merkmalnamen).

  • "from_dtype": Dataframe-Spalten mit dtype „category“ werden als kategorische Merkmale betrachtet. Die Eingabe muss ein Objekt sein, das eine __dataframe__ Methode bereitstellt, wie z. B. Pandas- oder Polars-DataFrames, um diese Funktion zu nutzen.

Für jedes kategorische Merkmal darf es höchstens max_bins eindeutige Kategorien geben. Negative Werte für kategorische Merkmale, die als numerische dtypes kodiert sind, werden als fehlende Werte behandelt. Alle kategorischen Werte werden in Gleitkommazahlen umgewandelt. Das bedeutet, dass die kategorischen Werte 1.0 und 1 als dieselbe Kategorie behandelt werden.

Mehr dazu im Benutzerhandbuch und Unterstützung für kategorische Merkmale in Gradient Boosting.

Hinzugefügt in Version 0.24.

Geändert in Version 1.2: Unterstützung für Merkmalsnamen hinzugefügt.

Geändert in Version 1.4: Option "from_dtype" hinzugefügt.

Geändert in Version 1.6: Der Standardwert änderte sich von None zu "from_dtype".

monotonic_cstarray-like von int der Form (n_features) oder dict, Standard=None

Monotone Beschränkungen, die für jedes Merkmal erzwungen werden sollen, werden mit den folgenden Ganzzahlwerten angegeben.

  • 1: monoton steigend

  • 0: keine Beschränkung

  • -1: monoton fallend

Wenn ein dict mit str-Schlüsseln vorliegt, werden Merkmale anhand ihres Namens mit monotonen Beschränkungen abgebildet. Wenn ein Array vorliegt, werden die Merkmale anhand ihrer Position mit Beschränkungen abgebildet. Ein Anwendungsbeispiel finden Sie unter Verwendung von Merkmalnamen zur Angabe von monotonen Beschränkungen.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.23.

Geändert in Version 1.2: Akzeptiert dict von Beschränkungen mit Merkmalnamen als Schlüssel.

interaction_cst{„pairwise“, „no_interactions“} oder Sequenz von Listen/Tupeln/Sets von int, Standard=None

Angabe von Interaktionsbeschränkungen, d. h. die Menge von Merkmalen, die miteinander in Kindknoten-Splits interagieren dürfen.

Jeder Eintrag gibt die Menge von Merkmalindizes an, die miteinander interagieren dürfen. Wenn mehr Merkmale vorhanden sind als in diesen Beschränkungen angegeben, werden sie so behandelt, als wären sie als zusätzlicher Satz angegeben.

Die Strings „pairwise“ und „no_interactions“ sind Abkürzungen für die Zulassung nur paarweiser bzw. keinerlei Interaktionen.

Beispielsweise ist bei 5 Merkmalen insgesamt interaction_cst=[{0, 1}] äquivalent zu interaction_cst=[{0, 1}, {2, 3, 4}] und gibt an, dass jeder Zweig eines Baumes entweder nur auf den Merkmalen 0 und 1 oder nur auf den Merkmalen 2, 3 und 4 gesplittet wird.

Siehe dieses Beispiel zur Verwendung von interaction_cst.

Hinzugefügt in Version 1.2.

warm_startbool, Standard=False

Wenn auf True gesetzt, wird die Lösung des vorherigen Aufrufs von fit wiederverwendet und dem Ensemble weitere Schätzer hinzugefügt. Für gültige Ergebnisse sollte der Schätzer nur auf denselben Daten neu trainiert werden. Siehe Glossar.

early_stopping‘auto’ oder bool, Standard=’auto’

Wenn „auto“, wird das vorzeitige Stoppen aktiviert, wenn die Stichprobengröße größer als 10000 ist oder wenn X_val und y_val an fit übergeben werden. Wenn True, wird das vorzeitige Stoppen aktiviert, andernfalls ist es deaktiviert.

Hinzugefügt in Version 0.23.

scoringstr oder callable oder None, Standard=’loss’

Bewertungsmethode für das vorzeitige Stoppen. Wird nur verwendet, wenn early_stopping aktiviert ist. Optionen

  • str: siehe Zeichenkettennamen für Bewerter für Optionen.

  • callable: Ein Scorer-Callable-Objekt (z. B. Funktion) mit der Signatur scorer(estimator, X, y). Siehe Callable Scorer für Details.

  • None: Der Bestimmtheitsmaß (\(R^2\)) wird verwendet.

  • „loss“: Das vorzeitige Stoppen wird in Bezug auf den Verlustwert überprüft.

validation_fractionint oder float oder None, Standard=0.1

Anteil (oder absolute Größe) der Trainingsdaten, der als Validierungsdaten für das vorzeitige Stoppen zurückgestellt wird. Wenn None, erfolgt das vorzeitige Stoppen auf den Trainingsdaten. Der Wert wird ignoriert, wenn entweder kein vorzeitiges Stoppen durchgeführt wird (z. B. early_stopping=False) oder wenn X_val und y_val an fit übergeben werden.

n_iter_no_changeint, Standard=10

Wird verwendet, um zu bestimmen, wann „vorzeitig gestoppt“ werden soll. Der Anpassungsprozess wird gestoppt, wenn keiner der letzten n_iter_no_change Werte besser ist als der n_iter_no_change - 1-letzte Wert, bis zu einer gewissen Toleranz. Wird nur verwendet, wenn ein vorzeitiges Stoppen durchgeführt wird.

tolfloat, Standard=1e-7

Die absolute Toleranz, die beim Vergleichen von Werten während des vorzeitigen Stoppens verwendet wird. Je höher die Toleranz, desto wahrscheinlicher ist es, dass vorzeitig gestoppt wird: eine höhere Toleranz bedeutet, dass es für nachfolgende Iterationen schwieriger ist, als Verbesserung gegenüber dem Referenzwert zu gelten.

verboseint, default=0

Die Detailgenauigkeitsstufe. Wenn nicht null, werden einige Informationen über den Anpassungsprozess ausgegeben. 1 gibt nur zusammenfassende Informationen aus, 2 gibt Informationen pro Iteration aus.

random_stateint, RandomState-Instanz oder None, default=None

Pseudo-Zufallszahlengenerator zur Steuerung der Unterstichprobenentnahme beim Binning-Prozess und der Aufteilung der Trainings-/Validierungsdaten, wenn das vorzeitige Stoppen aktiviert ist. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Attribute:
do_early_stopping_bool

Gibt an, ob während des Trainings ein vorzeitiges Stoppen verwendet wird.

n_iter_int

Anzahl der Iterationen des Boosting-Prozesses.

n_trees_per_iteration_int

Die Anzahl der Bäume, die in jeder Iteration gebaut werden. Für Regressoren ist dies immer 1.

train_score_ndarray, Form (n_iter_+1,)

Die Werte bei jeder Iteration auf den Trainingsdaten. Der erste Eintrag ist der Wert des Ensembles vor der ersten Iteration. Werte werden gemäß dem Parameter scoring berechnet. Wenn scoring nicht „loss“ ist, werden Werte auf einer Teilmenge von höchstens 10 000 Samples berechnet. Leer, wenn kein vorzeitiges Stoppen stattfindet.

validation_score_ndarray, Form (n_iter_+1,)

Die Werte bei jeder Iteration auf den zurückgehaltenen Validierungsdaten. Der erste Eintrag ist der Wert des Ensembles vor der ersten Iteration. Werte werden gemäß dem Parameter scoring berechnet. Leer, wenn kein vorzeitiges Stoppen stattfindet oder wenn validation_fraction None ist.

is_categorical_ndarray, Form (n_features, ) oder None

Boolesche Maske für die kategorischen Merkmale. None, wenn keine kategorischen Merkmale vorhanden sind.

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.

Siehe auch

GradientBoostingRegressor

Exakte Gradient Boosting-Methode, die auf Datensätzen mit einer großen Anzahl von Samples nicht so gut skaliert.

sklearn.tree.DecisionTreeRegressor

Ein Entscheidungsbaum-Regressor.

RandomForestRegressor

Ein Meta-Schätzer, der eine Anzahl von Entscheidungsbaum-Regressoren auf verschiedenen Teilstichproben des Datensatzes anpasst und Mittelwertbildung verwendet, um die statistische Leistung zu verbessern und Überanpassung zu kontrollieren.

AdaBoostRegressor

Ein Meta-Schätzer, der damit beginnt, einen Regressor auf dem ursprünglichen Datensatz anzupassen, und dann zusätzliche Kopien des Regressors auf demselben Datensatz anpasst, wobei die Gewichte der Instanzen entsprechend dem Fehler der aktuellen Vorhersage angepasst werden. Nachfolgende Regressoren konzentrieren sich somit stärker auf schwierige Fälle.

Beispiele

>>> from sklearn.ensemble import HistGradientBoostingRegressor
>>> from sklearn.datasets import load_diabetes
>>> X, y = load_diabetes(return_X_y=True)
>>> est = HistGradientBoostingRegressor().fit(X, y)
>>> est.score(X, y)
0.92...
fit(X, y, sample_weight=None, *, X_val=None, y_val=None, sample_weight_val=None)[Quelle]#

Anpassen des Gradient Boosting-Modells.

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

Die Eingabestichproben.

yarray-like von Form (n_samples,)

Zielwerte.

sample_weightArray-ähnlich der Form (n_samples,) Standard=None

Gewichte der Trainingsdaten.

Hinzugefügt in Version 0.23.

X_valarray-like der Form (n_val, n_features)

Zusätzliche Stichprobe von Merkmalen zur Validierung, die beim vorzeitigen Stoppen verwendet wird. In einer Pipeline kann X_val auf dieselbe Weise transformiert werden wie X mit Pipeline(..., transform_input=["X_val"]).

Hinzugefügt in Version 1.7.

y_valarray-like der Form (n_samples,)

Zusätzliche Stichprobe von Zielwerten zur Validierung, die beim vorzeitigen Stoppen verwendet wird.

Hinzugefügt in Version 1.7.

sample_weight_valarray-like der Form (n_samples,) Standard=None

Zusätzliche Gewichte für die Validierung, die beim vorzeitigen Stoppen verwendet werden.

Hinzugefügt in Version 1.7.

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]#

Vorhersagen von Werten für X.

Parameter:
Xarray-ähnlich, Form (n_samples, n_features)

Die Eingabestichproben.

Gibt zurück:
yndarray, Form (n_samples,)

Die vorhergesagten Werte.

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

Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.

Das Bestimmtheitsmaß, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Residuenquadratsumme ((y_true - y_pred)** 2).sum() und \(v\) die gesamte Summe der Quadrate ((y_true - y_true.mean()) ** 2).sum() ist. Der bestmögliche Wert 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, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Wert 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\)-Wert, der beim Aufruf von score auf einem Regressor verwendet wird, nutzt ab Version 0.23 multioutput='uniform_average', 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(*, X_val: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$', sample_weight_val: bool | None | str = '$UNCHANGED$', y_val: bool | None | str = '$UNCHANGED$') HistGradientBoostingRegressor[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:
X_valstr, True, False, oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

sample_weight_valstr, True, False, oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED

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

y_valstr, True, False, oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter y_val 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$') HistGradientBoostingRegressor[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.

staged_predict(X)[Quelle]#

Vorhersage von Zielwerten für die Regression für jede Iteration.

Diese Methode ermöglicht die Überwachung (d.h. Bestimmung von Fehlern auf dem Testdatensatz) nach jeder Stufe.

Hinzugefügt in Version 0.24.

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

Die Eingabestichproben.

Gibt:
yGenerator von ndarray der Form (n_samples,)

Die vorhergesagten Werte der Eingabestichproben für jede Iteration.