ComeçarComece de graça

Gradient boosted trees: modelagem

Gradient boosting é uma técnica para melhorar o desempenho de outros modelos. A ideia é rodar um modelo fraco, mas fácil de calcular. Em seguida, você substitui os valores de resposta pelos resíduos desse modelo e ajusta outro modelo. Ao “somar” o modelo de predição da resposta original com o novo modelo de predição dos resíduos, você obtém um modelo mais preciso. Esse processo pode ser repetido várias vezes: você executa novos modelos para prever os resíduos dos modelos anteriores e soma os resultados. A cada iteração, o modelo fica mais forte.

Para tornar isso mais concreto, o sparklyr usa gradient boosted trees, ou seja, gradient boosting com árvores de decisão como o modelo fraco e fácil de calcular. Elas podem ser usadas tanto para problemas de classificação (quando a variável resposta é categórica) quanto para regressão (quando a variável resposta é contínua). No caso de regressão, que é o que você usará aqui, a medida de quão mal um ponto foi ajustado é o resíduo.

Árvores de decisão são abordadas com mais profundidade nos cursos Supervised Learning in R: Classification e Supervised Learning in R: Regression. Este último também cobre gradient boosting.

Para executar um modelo de gradient boosted trees no sparklyr, chame ml_gradient_boosted_trees(). O uso dessa função foi discutido no primeiro exercício deste capítulo.

Este exercício faz parte do curso

Introdução ao Spark com sparklyr em R

Ver curso

Instruções do exercício

Uma conexão Spark foi criada para você como spark_conn. Uma tibble vinculada aos metadados/timbre de faixas combinados e filtrados armazenados no Spark foi predefinida como track_data_to_model_tbl.

  • Obtenha as colunas que contêm a string "timbre" para usar como features.
    • Use colnames() para obter os nomes das colunas de track_data_to_model_tbl. Observe que names() não vai fornecer o que você precisa.
    • Use str_subset() para filtrar as colunas.
    • O argumento pattern dessa função deve ser fixed("timbre").
    • Atribua o resultado a feature_colnames.
  • Crie a formula do modelo usando reformulate().
    • O argumento termlabels (entradas da fórmula) deve ser feature_colnames.
    • O argumento response (saída da fórmula) deve ser "year".
    • Atribua o resultado a year_formula.
    • Usar reformulate() dessa forma combina todas as variáveis em feature_colnames com um sinal + para formar o lado direito da formula. Isso resulta em uma fórmula year ~ timbre1 + timbre2 + ... + timbre12, que define a relação entre as variáveis a serem incluídas no modelo.
  • Execute o modelo de gradient boosting.
    • Chame ml_gradient_boosted_trees() com a year_formula que você criou como único argumento.
    • Atribua o resultado a gradient_boosted_trees_model.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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
  ___
Editar e executar o código