Prognoseintervalle für die Gradientenboosting-Regression

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab wird gezeigt, wie man Quantil-Regression verwendet, um Prognoseintervalle mit scikit-learn zu erstellen. Wir werden synthetische Daten für ein Regressionsproblem generieren, die Funktion darauf anwenden und Beobachtungen des Ziels mit einer lognormalen Verteilung erstellen. Anschließend teilen wir die Daten in Trainings- und Testdatenmengen auf, trainieren nicht-lineare Quantil- und kleinste Quadrate-Regressoren und erstellen einen gleichmäßig verteilten Evaluierungssatz von Eingabewerten, der den Bereich [0, 10] abdeckt. Wir werden die vorhergesagte Median mit der vorhergesagten Mittelwert vergleichen, die Fehler-Metriken analysieren und den Konfidenzintervall kalibrieren. Schließlich werden wir die Hyperparameter der Quantil-Regressoren optimieren.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49152{{"Prognoseintervalle für die Gradientenboosting-Regression"}} end

Synthetische Daten generieren

Wir werden synthetische Daten für ein Regressionsproblem generieren, indem wir die Funktion auf gleichmäßig abgesprochene zufällige Eingaben anwenden. Um das Problem interessant zu gestalten, generieren wir Beobachtungen des Ziels y als die Summe eines deterministischen Terms, der von der Funktion f berechnet wird, und eines zufälligen Rauschterms, der einer zentrierten lognormalen Verteilung folgt. Die lognormale Verteilung ist nicht symmetrisch und langschwänzig: Es ist wahrscheinlich, große Ausreißer zu beobachten, aber es ist unmöglich, kleine Ausreißer zu beobachten.

Daten in Trainings- und Testdatenmengen aufteilen

Wir werden die Daten in Trainings- und Testdatenmengen aufteilen.

Nicht-lineare Quantil- und kleinste Quadrate-Regressoren trainieren

Wir werden Gradient Boosting-Modelle trainieren, die mit der Quantilloss und alpha=0,05, 0,5, 0,95 trainiert werden. Die Modelle, die für alpha=0,05 und alpha=0,95 erhalten werden, erzeugen ein 90%-Konfidenzintervall. Das mit alpha=0,5 trainierte Modell liefert eine Regression der Median.

Ein gleichmäßig verteiltes Evaluierungssatz von Eingabewerten erstellen

Wir werden einen gleichmäßig verteilten Evaluierungssatz von Eingabewerten erstellen, der den Bereich [0, 10] abdeckt.

Die wahre bedingte Mittelwertfunktion f plotten

Wir werden die wahre bedingte Mittelwertfunktion f, die Vorhersagen des bedingten Mittelwerts (Verlust entspricht quadriertem Fehler), den bedingten Median und das bedingte 90%-Intervall (von den 5. bis 95. bedingten Prozentilen) plotten.

Die Fehler-Metriken analysieren

Wir werden die Modelle mit den Metriken mean_squared_error und mean_pinball_loss auf dem Trainingsdatensatz messen. Eine Spalte zeigt alle Modelle, die mit derselben Metrik ausgewertet werden.

Die Hyperparameter der Quantil-Regressoren optimieren

Wir werden die Hyperparameter eines neuen Regressors für den 5. Prozentil optimieren, indem wir die besten Modellparameter durch Kreuzvalidierung auf der Pinball-Loss mit alpha=0,05 auswählen. Anschließend werden wir die Hyperparameter für den 95. Prozentil-Regressor optimieren.

Zusammenfassung

In diesem Lab wurde gezeigt, wie man die Quantil-Regression verwendet, um Prognoseintervalle mit scikit-learn zu erstellen. Wir haben synthetische Daten für ein Regressionsproblem generiert, die Funktion darauf angewendet und Beobachtungen des Ziels mit einer lognormalen Verteilung erstellt. Wir haben die Daten in Trainings- und Testdatensätze unterteilt, nicht-lineare Quantil- und kleinste Quadrate-Regressoren angepasst und einen gleichmäßig verteilten Evaluierungssatz von Eingabewerten erstellt, der den Bereich [0, 10] abdeckt. Wir haben die vorhergesagten Medianwerte mit den vorhergesagten Mittelwerten verglichen, die Fehler-Metriken analysiert und das Vertrauensintervall kalibriert. Schließlich haben wir die Hyperparameter der Quantil-Regressoren optimiert.