Gradient Boosted Trees: Modellierung
Gradient Boosting ist eine Technik, um die Leistung anderer Modelle zu verbessern. Die Idee: Du startest mit einem schwachen, aber leicht zu berechnenden Modell. Dann ersetzt du die Zielwerte durch die Residuen dieses Modells und passt ein weiteres Modell an. Indem du das ursprüngliche Vorhersagemodell für die Zielvariable und das neue Residuen-Vorhersagemodell „addierst“, erhältst du ein genaueres Modell. Diesen Prozess kannst du immer wiederholen: neue Modelle sagen die Residuen der vorherigen Modelle voraus, und ihre Ergebnisse werden hinzugefügt. Mit jeder Iteration wird das Gesamtmodell stärker.
Ein konkretes Beispiel: sparklyr verwendet Gradient Boosted Trees, also Gradient Boosting mit Entscheidungsbäumen als schwachem, aber schnellen Basismodell. Damit lassen sich sowohl Klassifikationsprobleme (kategoriale Zielvariable) als auch Regressionsprobleme (kontinuierliche Zielvariable) lösen. Im Regressionsfall, wie hier verwendet, misst das Residuum, wie schlecht ein Punkt angepasst wurde.
Entscheidungsbäume werden ausführlicher in den Kursen Supervised Learning in R: Classification und Supervised Learning in R: Regression behandelt. Letzterer Kurs deckt auch Gradient Boosting ab.
Um in sparklyr ein Gradient-Boosted-Trees-Modell auszuführen, rufe ml_gradient_boosted_trees() auf. Die Verwendung dieser Funktion wurde in der ersten Übung dieses Kapitels besprochen.
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Anleitung zur Übung
Eine Spark-Verbindung wurde für dich als spark_conn erstellt. Eine Tibble, die an die kombinierten und gefilterten Track-Metadaten/Timbre-Daten in Spark gebunden ist, wurde als track_data_to_model_tbl vordefiniert.
- Ermittle die Spalten, die die Zeichenkette
"timbre"enthalten, und verwende sie als Features.- Nutze
colnames(), um die Spaltennamen vontrack_data_to_model_tblzu erhalten. Hinweis:names()liefert hier nicht das Gewünschte. - Nutze
str_subset(), um die Spalten zu filtern. - Das Argument
patterndieser Funktion solltefixed("timbre")sein. - Weise das Ergebnis
feature_colnameszu.
- Nutze
- Erstelle die
formulafür das Modell mitreformulate().- Das Argument
termlabels(Eingaben der Formel) solltefeature_colnamessein. - Das Argument
response(Ausgabe der Formel) sollte"year"sein. - Weise das Ergebnis
year_formulazu. - Mit
reformulate()in dieser Form werden alle Variablen infeature_colnamesmit einem+kombiniert, um die rechte Seite derformulazu bilden. Dadurch entsteht eine Formelyear ~ timbre1 + timbre2 + ... + timbre12, die die Beziehung zwischen den im Modell zu berücksichtigenden Variablen definiert.
- Das Argument
- Führe das Gradient-Boosting-Modell aus.
- Rufe
ml_gradient_boosted_trees()mit der von dir erstelltenyear_formulaals einzigem Argument auf. - Weise das Ergebnis
gradient_boosted_trees_modelzu.
- Rufe
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# track_data_to_model_tbl has been pre-defined
track_data_to_model_tbl
feature_colnames <- track_data_to_model_tbl %>%
# Get the column names
___ %>%
# Limit to the timbre columns
___(___(___))
feature_colnames
# Create the formula for the model
year_formula <- ___
gradient_boosted_trees_model <- track_data_to_model_tbl %>%
# Run the gradient boosted trees model
___