Začněte nyníZačněte zdarma

Gradient boosted trees: tvorba modelu

Gradient boosting je technika pro zlepšení výkonu jiných modelů. Princip spočívá v tom, že nejprve spustíš jednoduchý, ale snadno vypočitatelný model. Poté nahradíš hodnoty odezvy rezidui z tohoto modelu a natrénuješ další model. „Sečtením" původního modelu předpovídajícího odezvu a nového modelu předpovídajícího rezidua získáš přesnější model. Tento postup můžeš opakovat – vždy trénuješ nový model na reziduích předchozího a výsledky průběžně přidáváš. S každou iterací se model stává silnějším.

Konkrétněji: sparklyr využívá gradient boosted trees, tedy gradient boosting s rozhodovacími stromy jako tím jednoduchým a snadno vypočitatelným modelem. Lze je použít jak pro klasifikační úlohy (kde je proměnná odezvy kategoriální), tak pro regresní úlohy (kde je proměnná odezvy spojitá). V regresním případě, který použiješ zde, se míra špatného přizpůsobení bodu vyjadřuje reziduem.

Rozhodovacím stromům se podrobněji věnují kurzy Supervised Learning in R: Classification a Supervised Learning in R: Regression. Druhý z nich se zabývá i gradient boostingem.

Pro spuštění modelu gradient boosted trees v sparklyr zavolej ml_gradient_boosted_trees(). Použití této funkce bylo popsáno v prvním cvičení této kapitoly.

Toto cvičení je součástí kurzu

Úvod do Sparku se sparklyr v R

Zobrazit kurz

Pokyny k cvičení

Spark připojení bylo vytvořeno za tebe jako spark_conn. Tibble napojený na kombinovaná a filtrovaná metadata skladeb spolu s timbre daty uloženými ve Sparku je předdefinován jako track_data_to_model_tbl.

  • Získej sloupce obsahující řetězec "timbre", které použiješ jako příznaky.
    • Pomocí colnames() získej názvy sloupců track_data_to_model_tbl. Pozor: names() ti v tomto případě nedá požadovaný výsledek.
    • Pomocí str_subset() sloupce vyfiltruj.
    • Argument pattern této funkce nastav na fixed("timbre").
    • Výsledek přiřaď do feature_colnames.
  • Vytvoř formula pro model pomocí reformulate().
    • Argument termlabels (vstupy vzorce) nastav na feature_colnames.
    • Argument response (výstup vzorce) nastav na "year".
    • Výsledek přiřaď do year_formula.
    • Tímto způsobem reformulate() spojí všechny proměnné z feature_colnames znaménkem + a vytvoří pravou stranu vzorce formula. Výsledkem je vzorec year ~ timbre1 + timbre2 + ... + timbre12, který definuje vztah mezi proměnnými zahrnutými do modelu.
  • Spusť model gradient boosting.
    • Zavolej ml_gradient_boosted_trees() s year_formula, kterou jsi vytvořil/a, jako jediným argumentem.
    • Výsledek přiřaď do gradient_boosted_trees_model.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
  ___
Upravit a spustit kód