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

O que é Agentic RAG e o que o diferencia de RAG?

Neste post, explicamos o que é o Agentic RAG, como ele se diferencia do RAG tradicional e apresentamos um estudo de caso construído com base nas Atas do COPOM, mostrando passo a passo como criar um agente que busca, avalia, reescreve e responde perguntas sobre política monetária.

Como Criar um Agente de IA Econometrista

Criar um Agente de IA Econometrista envolve construir um sistema autônomo capaz de entender uma solicitação em linguagem natural, buscar dados econômicos, realizar análises e aplicar modelos econométricos para entregar uma resposta completa. A abordagem mais eficaz é estruturar o sistema em múltiplos agentes especializados, cada um com um papel definido, que colaboram para resolver a tarefa. Neste post abordamos o desenvolvimento deste sistema de IA com Python.

Como criar um Agente de IA analista de dados

Agentes de IA podem automatizar a coleta, tratamento e análise de indicadores econômicos, entregando insights prontos para a tomada de decisão. Combinando modelos de linguagem (LLM) avançados com ferramentas de acesso a dados, é possível construir soluções que buscam informações em tempo real e as processam de forma autônoma. Neste post mostramos uma visão geral sobre como isso tudo funciona.

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.