Dicas de R: utilizando random forests

No Dicas de R de hoje, vamos apresentar métodos de árvore para a classificação e regressão de dados, e mostrar como utilizar random forests no R. Árvores nesse contexto são um conjunto de regras de decisão que se subdividem (como em galhos) para separar o espaço das variáveis regressoras em compartimentos que preveem um valor ou classe (as folhas). Nesse contexto, fica a dúvida: como podemos construir uma árvore de decisões?

Uma estratégia inicial pode ser iniciar em sua base (que, na notação utilizada, é o topo), onde temos basicamente a mesma previsão para todas as observações, e procurar qual regra para qualquer regressor leva à árvore que minimiza uma certa métrica, como o EQM. Dado esse passo, temos uma árvore com dois galhos, que divide o espaço em duas regiões. A partir daí, buscamos a próxima regra que minimiza a métrica (que pode gerar uma subdivisão em um dos galhos originais, ou gerar um terceiro galho a partir da base), e seguimos esse processo recursivamente. O método é simples, porém pode incorrer problemas de overfitting, e também apresentar grande variância na estimação.

Com isso, vamos verificar métodos de reduzir tal variância. A princípio, como só temos uma amostra, não podemos rodar várias vezes o modelo para combater a variância elevada, porém, podemos extrair subamostras aleatórias da amostra original e aplicar o modelo sob elas, método conhecido como bootstrapping. Para cada subamostra, podemos gerar uma árvore de decisão conforme descrito anteriormente, e então tomar a média das decisões para cada observação como decisão final.

O método acima é conhecido como bagging, e ele tem um problema: como sempre testa para todas as variáveis a regra de decisão que melhor diminui o erro, se uma variável possuir poder explanatório muito maior do que as outras, as árvores terão sempre galhos iniciais parecidos, logo a estimação é altamente correlacionada, diminuindo o poder do bootstrapping de reduzir a variância. Para resolver isso, introduzimos as random forests: além de tomar uma subamostra das observações originais, ao construir uma árvore de decisão, cada passo da árvore é feito utilizando apenas parte dos regressores como possíveis regra de decisão, escolhida aleatoriamente todas as vezes. Assim, em grande parte das árvores geradas, a variável de maior poder explanatório só será introduzida depois da primeira ramificação - em alguns casos, pode nunca aparecer -, fazendo com que as árvores sejam muito mais diversas sobre suas regras de decisão, tornando-as menos correlacionadas.

Vamos agora fazer um exemplo no R de random forests. Para isso, utilizaremos o dataset de preços medianos de casas Boston, do pacote MASS, e o pacote randomForest.

</pre>
library(randomForest)
library(MASS)

set.seed(1)

train = sample(1:nrow(Boston), nrow(Boston)/2)
boston.test = Boston[-train, "medv"]

rf.boston=randomForest(medv ~ . , data=Boston,
subset=train,
importance =TRUE)

varImpPlot(rf.boston)
<pre>

O resultado encontrado no plot acima é de que as variáveis que mais importam para a decisão são a riqueza da comunidade (lstat) e o tamanho das casas (rm).

Conteúdos como esse podem ser encontrados no nosso Curso de Machine Learning usando o R.

_____________________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise de impacto fiscal sobre o dolár com Python

Usamos uma cesta de 12 moedas para construir um cenário contrafactual da taxa de câmbio após o último anúncio de pacote fiscal, com base em modelagem Bayesiana. No período, o dolár depreciou quase 5% e passou os R$ 6,15, enquanto que na ausência da intervenção a moeda deveria estar cotada em R$ 5,78.

Resultado IBC-br - Outubro/2024

A Análise Macro apresenta os resultados da IBC-br de Outubro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PMC - Outubro/2024

A Análise Macro apresenta os resultados da PMC de Outubro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

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.