Kom igångKom igång gratis

Gradientboostade träd: modellering

Gradientboostning är en teknik för att förbättra prestandan hos andra modeller. Grundidén är att du tränar en enkel men lättberäknad modell. Sedan ersätter du responsvariabelns värden med residualerna från den modellen och anpassar en ny modell. Genom att "addera" den ursprungliga förutsägelsemodellen och den nya residualmodellen får du en mer träffsäker modell. Du kan upprepa den här processen om och om igen – varje ny modell förutsäger residualerna från den föregående – och summerar resultaten. För varje iteration blir modellen starkare och starkare.

För att ge ett konkret exempel: sparklyr använder gradientboostade träd, det vill säga gradientboostning med beslutsträd som den enkla grundmodellen. De kan användas både för klassificeringsproblem (där responsvariabeln är kategorisk) och regressionsproblem (där responsvariabeln är kontinuerlig). I regressionsfallet, som du använder här, mäts hur dåligt en datapunkt anpassades med hjälp av residualen.

Beslutsträd behandlas mer ingående i kurserna Supervised Learning in R: Classification och Supervised Learning in R: Regression. Den senare kursen tar också upp gradientboostning.

För att köra en modell med gradientboostade träd i sparklyr, anropa ml_gradient_boosted_trees(). Användningen av den här funktionen beskrevs i det första exemplet i kapitlet.

Den här övningen är en del av kursen

Introduktion till Spark med sparklyr i R

Visa kurs

Övningsinstruktioner

En Spark-anslutning har skapats åt dig som spark_conn. En tibble kopplad till den kombinerade och filtrerade spår-metadata/klangfärgsdata som lagrats i Spark är fördefinierad som track_data_to_model_tbl.

  • Hämta de kolumner som innehåller strängen "timbre" för att använda som särdrag.
    • Använd colnames() för att hämta kolumnnamnen i track_data_to_model_tbl. Observera att names() inte ger dig vad du behöver.
    • Använd str_subset() för att filtrera kolumnerna.
    • Argumentet pattern till den funktionen ska vara fixed("timbre").
    • Tilldela resultatet till feature_colnames.
  • Skapa formula för modellen med hjälp av reformulate().
    • Argumentet termlabels (formelns indata) ska vara feature_colnames.
    • Argumentet response (formelns utdata) ska vara "year".
    • Tilldela resultatet till year_formula.
    • Att använda reformulate() på det här sättet kombinerar alla variabler i feature_colnames med ett +-tecken och bildar den högra sidan av formula. Resultatet blir en formel av typen year ~ timbre1 + timbre2 + ... + timbre12, som definierar sambandet mellan de variabler som ska ingå i modellen.
  • Kör gradientboostningsmodellen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
  ___
Redigera och kör kod