LoslegenKostenlos loslegen

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

Kurs anzeigen

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 von track_data_to_model_tbl zu erhalten. Hinweis: names() liefert hier nicht das Gewünschte.
    • Nutze str_subset(), um die Spalten zu filtern.
    • Das Argument pattern dieser Funktion sollte fixed("timbre") sein.
    • Weise das Ergebnis feature_colnames zu.
  • Erstelle die formula für das Modell mit reformulate().
    • Das Argument termlabels (Eingaben der Formel) sollte feature_colnames sein.
    • Das Argument response (Ausgabe der Formel) sollte "year" sein.
    • Weise das Ergebnis year_formula zu.
    • Mit reformulate() in dieser Form werden alle Variablen in feature_colnames mit einem + kombiniert, um die rechte Seite der formula zu bilden. Dadurch entsteht eine Formel year ~ timbre1 + timbre2 + ... + timbre12, die die Beziehung zwischen den im Modell zu berücksichtigenden Variablen definiert.
  • Führe das Gradient-Boosting-Modell aus.
    • Rufe ml_gradient_boosted_trees() mit der von dir erstellten year_formula als einzigem Argument auf.
    • Weise das Ergebnis gradient_boosted_trees_model zu.

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
  ___
Code bearbeiten und ausführen