• Nenhum resultado encontrado

Modelos baseados em árvores (Hastie e Tibshirani, 1990; James et al., 2013) são bastante uti- lizados tanto para regressão quanto para classicação. Eles envolvem a segmentação do espaço gerado pelas variáveis explicativas em algumas regiões mais simples, onde a média ou a moda da variável resposta são utilizadas como predição.

As chamadas árvores de decisão são modelos conceitualmente e computacionalmente simples, bastante populares pela sua interpretabilidade, apesar da precisão inferior quando comparados com modelos mais complexos. Generalizações desse modelos, como as orestas aleatórias (random forests), costumam apresentar alta precisão, mesmo quando comparadas a modelos lineares, porém

são pouco interpretáveis.

Nesta seção, introduziremos os principais conceitos por trás das árvores de decisão e da oresta aleatória.

4.6.1 Árvores de decisão

As árvores de decisão se baseiam no particionamento do espaço gerado pelas variáveis explica- tivas. As predições são dadas pela média das observações dentro de cada subespaço obtido8, e a

construção desses subespaços visa minimizar alguma medida de erro (como o RMSE).

Na Figura4.4, apresentamos uma árvore de decisão para explicar a variabilidade da concentração de ozônio pela temperatura (tp). Nesse exemplo, a temperatura foi particionada em 2 pontos: 26 e 29 graus Celsius. Assim, a média da concentração de ozônio dentro de cada uma das três regiões obtidas pela partição serão as predições dadas pela árvore. No caso, a estimativa da concentração

de ozônio será 38 µg/m3 para dias com temperatura menor que 26C, 69 µg/m3 para dias com

temperatura entre 26 e 29◦C e 92 µg/m3 para dias com temperatura maior ou igual a 29C.

No caso geral, para p variáveis explicativas X1, . . . , Xp e uma amostra de tamanho n, a con-

strução da árvore pode ser resumida a partir do seguinte algoritmo: 1. Todas as observações começam na mesma partição.

2. Para cada variável explicativa Xj e seus valores observados xji, j = 1, . . . , p e i = 1, . . . , n,

são testadas todas as partições Xj < xji e escolhida aquela que minimize alguma medida de

erro (em geral, RMSE).

3. O passo 2 é repetido, agora dentro de cada subespaço obtido, até que um dos subespaços tenha menos de um número mínimo de observações pré-denido.

Na Figura 4.4, cada partição, chamada de nó, é representada pelos módulos verdes. Os nós na base da árvore são chamados de nós terminais e representam os subespaços obtidos pelo particiona- mento. A interpretação do diagrama começa pelo primeiro nó (no topo da gura) e, para cada nova observação, seguimos as regras de decisão até alcançar um nó terminal, que apresentam a predição para dessa observação e o número de observações da amostra dentro desse subespaço (absoluto e proporcional ao tamanho da amostra). Quando temos mais de um preditor, cada nó poderá indicar uma partição em um preditor diferente.

Observe que no exemplo temos 3 nós nais, mas, teoricamente, poderíamos continuar particio- nando o intervalo de valores da temperatura até cada possível valor ter o seu próprio nó. Esse seria um caso de árvore de decisão sobreajustada, apresentando pouco poder de generalização. A escolha do número de nós nais é feita a partir de uma técnica conhecida como poda, que consiste em usar validação cruzada para denir a melhor altura para a árvore.

Na linguagem R, árvores de decisão podem ser ajustadas a partir da função rpart() do pacote rpart.

As árvores de decisão imitam bem o processo de tomada de decisão do cérebro humano, e por isso são mais simples de interpretar até mesmo que o modelo de regressão linear. No entanto, elas apresentam baixo poder preditivo e raramente são utilizadas para descrever processos muito

8No caso de uma variável resposta quantitativa. No caso de classicação, variáveis respostas categóricas, a predição será a classe mais frequente dentro do subespaço.

4.6 MODELOS DE ÁRVORES 69 tp < 26 tp < 29 yes no 1 2 3 6 7 tp < 26 tp < 29 64 n=1033 100% 38 n=416 40% 81 n=617 60% 69 n=282 27% n=335 32%92 yes no 1 2 3 6 7

Figura 4.4: Exemplo de uma árvore de decisão para a concentração de ozônio explicada pela temperatura.

complexos. A seguir, apresentaremos as orestas aleatórias, que abrem mão da interpretabilidade em troca de um alto grau de precisão.

4.6.2 Florestas aleatórias

As predições obtidas a partir de árvores de decisão tendem a ter alta variância, isto é, se dividirmos nossa amostra em duas e aplicarmos o mesmo modelo de árvores de decisão em cada uma, há uma grande chance de obtermos divisões diferentes no espaço amostral e, consequentemente, diferentes predições.

Uma maneira de lidar com esse problema é gerar diferentes amostras de bootstrapping, ajustar o mesmo modelo em cada uma delas e utilizar predições médias como estimativas nais do modelo. Em um contexto geral, essa técnica é chamada de bootstrapping aggregation ou bagging. Ela pode ser utilizada para qualquer modelo e seu objetivo geral é diminuir a variância das estimativas.

As chamadas orestas aleatórias (random forests) (Hastie et al., 2008) são uma aplicação do bagging para árvores de decisão. Neste modelo, além de utilizarmos uma amostra de boostraping diferente para cada árvore ajustada, também fazemos uma seleção dos preditores para cada ajuste. Isso impede que as árvores ajustadas sejam muito correlacionadas e permite que preditores que seriam preteridos por serem menos importantes também ajudem a explicar a variação da variável resposta.

Em cada iteração do algoritmo,

2. geramos uma amostra de boostrapping a partir da base completa;

3. ajustamos uma árvore de decisão utilizando os m preditores escolhidos em (1) e a amostra em (2).

Repetindo esse procedimento M vezes, teremos M estimativas, e predição nal será a média dessas M estimativas (no caso de regressão) ou a classe mais frequente (no caso de classicação). Geralmente, m é escolhido como√p, mas esse hiperparâmetro pode ser denido utilizando validação cruzada. M por volta de 200 costuma ser suciente para gerar bons resultados9.

Florestas aleatórias podem ser ajustadas utilizando a função train() do pacote caret com method = "ranger". Os principais hiperparâmetros que devem ser escolhidos são o número de sorteados em cada ajuste (m) e o número mínimo de observações nos nós nais de cada árvore.

4.6.3 XGBoost

Assim como o bagging, apresentado na seção anterior, o algoritmo boosting é uma abordagem geral aplicada a diversos modelos para aumentar seu poder preditivo. No contexto de árvores de decisão, a ideia aqui é construir árvores sequencialmente, sendo que cada árvore utiliza informações obtidas da árvore anterior. Ao contrário do bagging, o algoritmo boosting não envolve amostras de bootstraping, sendo que cada passo do algoritmo utiliza uma versão modicada dos dados originais. A ideia por trás do algoritmo boosting é aprender devagar. Em vez de tentarmos ajustar uma grande árvore com toda a base de dados, ajustamos árvores com poucos nós ˆf1(x), ˆf2(x), . . . , ˆfB(x) sequencialmente, de tal forma que a árvore ˆfi(x)é ajustada utilizando os resíduos da árvore ˆfi−1(x). Considere ˆf (x)a função estimada do modelo e que, inicialmente, ˆf (x) = 0. Em cada passo do al- goritmo, a nova árvore ˆfi(x) é somada à função estimada ˆf (x) utilizando-se um parâmetro de encolhimento λ > 0, isto é, no passo i, ˆf (x)passa a ser ˆf (x) + λ ˆfi(x). Assim, os resíduos são atu- alizados em cada passo e ˆf (x)se torna mais precisa10lentamente em regiões onde sua performance era ruim. O parâmetro de encolhimento λ, o número de árvores B e o tamanho de cada árvore (controlado pelo número de nós terminais) são os principais hiperparâmetros do modelo e podem ser escolhidos por validação cruzada.

O gradient boosting generaliza o boosting substituindo o ajuste dos resíduos pela minimização de uma função de custo L(y, f(x)). Em cada etapa, ajustamos uma árvore não mais aos resíduos, mas sim às quantidades

gi= −  δL(yi− f (xi)) δf (xi)  f =fi−1 , i = 1, . . . , n.

As quantidades g1, . . . , gn representam o gradiente da função de custo em relação a cada árvore

fi(x). Portanto, em cada etapa, minimizamos lentamente a função de custo a partir da nova árvore ajustada. Esse é um algoritmo de minimização chamado de gradient descent (Kiefer e Wolfowitz, 1952).

Por m, o XGBoost (ou extreme gradient boosting) é uma implementação eciente do gradient boosting que utiliza alguns truques para otimizar o processo de estimação, como penalização das

9Para valores de M muito altos (maior que 200), a amostragem dos preditores passa a criar árvores mais parecidas com as já existentes, o que não gera maiores ganhos de precisão.

Documentos relacionados