Hackeando o R: analisando modelos com o tidymodels

No Hackeando o R de hoje, vamos continuar nossa exposição do pacote tidymodels, a partir daonde paramos no nosso post de semana passada. Para resumir, o método básico, chamado de workflow, depende apenas de uma receita, que descreve o processamento de dados, e um parsnip, que descreve o modelo que queremos utilizar e seus parâmetros.

Após realizarmos os passos acima, podemos tentar verificar a qualidade do nosso modelo através da reamostragem. Vamos começar com um exemplo da qualidade de imagens de células, do pacote modeldata. Os dados possuem uma classificação, que indica se a observação é boa ou ruim para o objetivo final do estudo. Como a amostra total é muito grande para ser classificada manualmente, nosso trabalho é montar um modelo que preveja corretamente a classificação a partir de variáveis mensuráveis, dada a amostra.

library(modeldata)
library(tidymodels)

data(cells)

Para iniciarmos, devemos separar nossa amostra em uma partição de treinamento e teste. Isso é feito facilmente pela função initial_split(). Note que removemos a coluna case, que não é interessante para nós, diretamente dentro da função, com linguagem do tidyverse. Ademais, o argumento strata é importante: como temos muito mais dados ruins do que bons, uma partição aleatória poderia conter dados ruins demais no treino ou no teste, dificultando a estimação. Ao utilizar o argumento, garantimos que ambas as partes possuam proporções 'razoáveis' de cada classe.

set.seed(123)

cell_split <- initial_split(cells %>% select(-case),
strata = class)

cell_train <- training(cell_split)
cell_test <- testing(cell_split)

Para a modelagem, faremos um modelo de random forest. Não entraremos nos detalhes de seu funcionamento, pois já falamos sobre esse modelo em um post mais antigo. Dentro do ambiente do tidymodels, podemos facilmente criar a random forest usando o pacote ranger:

rf_mod =
rand_forest(trees = 1000) %>%
set_engine("ranger") %>%
set_mode("classification")

rf_fit =
rf_mod %>%
fit(class ~ ., data = cell_train)

Após treinar o modelo, podemos testar ele com as funções do pacote yardstick. Abaixo, calculamos a acurácia das previsões:

rf_testing_pred =
predict(rf_fit, cell_test) %>%
bind_cols(predict(rf_fit, cell_test, type = "prob")) %>%
bind_cols(cell_test %>% select(class))

rf_testing_pred %>%
accuracy(truth = class, .pred_class)

Como podemos ver, o modelo é razoável, porém pode melhorar. Para isso, vamos utilizar a reamostragem, fazendo validação cruzada. O método é simples: criamos os folds, geramos um novo workflow, e o informamos que é para fazer o fit sobre cada um dos folds.

folds = vfold_cv(cell_train, v = 10)

rf_wf =
workflow() %>%
add_model(rf_mod) %>%
add_formula(class ~ .)

rf_fit_rs =
rf_wf %>%
fit_resamples(folds)

Após isso, podemos utilizar a função collect_metrics() para verificar o resultado dos modelos sobre cada fold. O resultado mostra que nosso teste inicial acaba sendo sim um bom previsor.


collect_metrics(rf_fit_rs)

 .metric .estimator mean n std_err .config 
<chr> <chr> <dbl> <int> <dbl> <chr> 
1 accuracy binary 0.833 10 0.00971 Preprocessor1_Model1
2 roc_auc binary 0.906 10 0.00901 Preprocessor1_Model1

________________________
(*) Para entender mais sobre a linguagem R e suas ferramentas, confira nosso Curso de Introdução ao R para análise de dados.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como avaliar modelos de IA na previsão macroeconômica?

Descubra como economistas e cientistas de dados estão combinando econometria e inteligência artificial para aprimorar previsões macroeconômicas. Neste post, você vai entender as principais etapas de avaliação de modelos — da preparação dos dados à validação cruzada — e conhecer as métricas e técnicas que revelam quais métodos realmente entregam as melhores previsões. Uma leitura essencial para quem quer compreender o futuro da análise econômica orientada por dados.

Análise exploratória e seleção de séries temporais econômicas para modelagem

Quer entender como transformar dados econômicos brutos em previsões macroeconômicas precisas? Neste post, mostramos passo a passo como realizar a análise exploratória e seleção de séries temporais com Python — desde o tratamento de dados e remoção de multicolinearidade até a escolha das variáveis mais relevantes usando técnicas de machine learning e econometria. Um guia essencial para quem quer unir teoria econômica e inteligência artificial na prática da previsão macroeconômica.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.