4.3 An´alises Preliminares (“Get to know the data”)
4.4.3 Algoritmo CART
O algoritmo CART ´e uma das mais conhecidas implementa¸c˜oes das ´Arvores de Decis˜ao. Tais estruturas de dados, por sua vez, podem ser definidas como modelos es- tat´ısticos que utilizam um treinamento supervisionado para classifica¸c˜ao e previs˜ao de dados.
As ´Arvores de Decis˜ao podem ser divididas basicamente em 3 componentes: • N´os-principais ou atributos: representam um mapeamento das vari´aveis (ou colunas)
da flat table utilizada como conjunto de treinamento. A cada n´o-principal est´a associado um subconjunto de dados, sendo que ao primeiro n´o da ´arvore corresponde toda a massa de dados do conjunto de treinamento;
s´ıveis para um determinado atributo;
• N´os-folha: representam as diferentes classes do conjunto de treinamento.
Na figura 4.10 observa-se um exemplo de uma ´arvore para suporte `a tomada de decis˜ao de conceder ou n˜ao um empr´estimo por parte de uma institui¸c˜ao banc´aria. A estrutura leva em considera¸c˜ao os atributos montante, sal´ario e o saldo existente na conta- corrente do candidato a empr´estimo. Cada um desses atributos pode assumir apenas os valores “alto” ou “baixo”. Os n´os-folhas da ´arvore indicam a existˆencia de apenas duas classes: “sim” ou “n˜ao”, para libera¸c˜ao do empr´estimo.
Figura 4.10: Exemplo de ´Arvore de Decis˜ao - Adaptado de (Garcia, 2000)
A metodologia do modelo CART ´e tecnicamente conhecida como parti¸c˜ao recursiva bin´aria. O processo ´e bin´ario porque os n´os-pais s˜ao sempre divididos em apenas dois n´os- filhos, e recursivo porque pode ser repetido tratando cada n´o-filho como um n´o-pai.
O algoritmo CART pode ser resumido nos seguintes passos (Yohannes and Webb, 1999):
1. Dado um determinado n´o, o algoritmo aplica todas as poss´ıveis regras para se dividir o conjunto de dados associados ao mesmo. Cada valor que cada vari´avel assume dentro da massa de dados ´e uma poss´ıvel regra. Por exemplo, se uma massa de dados possui duas vari´aveis, uma cont´ınua X assumindo os valores 0.1, 0.7 e 3.4, e outra categ´orica Y assumindo os valores baixo, m´edio e alto, as poss´ıveis regras para dividir um n´o seriam:
• X ≥ 0.1? • X ≥ 0.7? • X ≥ 3.4? • Y ´e baixo? • Y ´e m´edio? • Y ´e alto?
Para cada poss´ıvel regra, a amostra de dados ´e divida em duas, gerando dois n´os- filhos. Os casos que respondam“sim”para uma regra v˜ao para o n´o-filho da esquerda, e os casos que respondam “n˜ao” v˜ao para o n´o da direita.
2. O CART aplica ent˜ao um crit´erio de parti¸c˜ao para cada n´o-filho gerado por cada uma das poss´ıveis regras. O crit´erio de parti¸c˜ao utilizado pelo CART ´e ´ındice Gini11
. O grau Gini de impureza de um determinado n´o t ´e definido como 1 - F I, onde F I (fun¸c˜ao de impureza) ´e calculado por
F I = −Xp2(j|t) para j = 1, 2.., k (4.1)
onde p ´e a probabilidade de ocorrˆencia de cada classe j do modelo de classifica¸c˜ao no subconjunto de dados associado ao n´o t em quest˜ao. T˜ao melhor ser´a uma regra de divis˜ao quanto maior for a redu¸c˜ao de impureza associada `a ela. Dado um n´o t, o crit´erio de parti¸c˜ao gerado por uma regra s ´e dado por
∆(s, t) = i(t) − pE[i(tE)] − pD[i(tD)], (4.2) onde pE ´e a propor¸c˜ao de casos associados ao n´o t que v˜ao para o n´o-filho `a esquerda, pE ´e a propor¸c˜ao de casos que v˜ao para o n´o-filho `a direita, i(tE) ´e a impureza associada ao n´o-filho `a esquerda, e i(tD) a impureza associada ao n´o-filho `a direita. 3. O algoritmo seleciona ent˜ao a regra que gerou a maior redu¸c˜ao na impureza da
´arvore.
11
O ´ındice Gini, desenvolvido por Conrado Gini em 1912, mede o grau de heterogeneidade dos dados. Logo, pode ser utilizado para medir a impureza de um n´o de uma ´arvore de decis˜ao. Quando este ´ındice ´e igual a zero, o n´o ´e puro. Por outro lado, quando ele se aproxima do valor um, o n´o ´e impuro (aumenta o n´umero de classes uniformemente distribu´ıdas neste n´o)(R¨atsch et al., 2001).
4. O pr´oximo passo ´e ent˜ao dividir o conjunto de dados em dois, a partir da regra selecionada.
5. Cada n´o filho ´e ent˜ao classificado dentro de uma das poss´ıveis classes do conjunto de treinamento. Essa classifica¸c˜ao ´e feita pela simples an´alise de distribui¸c˜ao dos registros que foram separados para um determinado n´o-filho. Por exemplo, supondo que o conjunto de dados possa ser classificado nas classes A, B e C, se uma divis˜ao CART gerou um n´o-filho esquerdo com uma maior quantidade de registros da classe A, esse n´o ser´a atribu´ıdo como classe A. Caso tamb´em existam registros das classes B e C, esse n´o ainda n˜ao ser´a 100% puro.
6. O CART continua ent˜ao dividindo a ´arvore, aplicando os passos acima de forma recursiva aos n´os-filhos gerados at´e que s´o existam n´os-filhos 100% puros, ou com um grau de pureza considerado aceit´avel. Outro crit´erio de parada que pode ser difinido ´e o do n´umero m´aximo de n´os que a ´arvore pode ter.
Durante ou ap´os a gera¸c˜ao da ´arvore, t´ecnicas de “podagem” (pruning) podem ser aplicadas com o intuito de estancar o crescimento da ´arvore ou diminuir o seu tamanho final. Existem v´arias formas de se realizar a podagem, por´em a mais simples e eficaz ´e a que verifica se o erro de classifica¸c˜ao de um determinado n´o ´e menor do que a soma dos erros dos n´os-filhos. Quando isso ocorre, os n´os-filhos s˜ao descartados e o n´o em quest˜ao se torna uma folha da ´arvore.
A particularidade das ´arvores CART serem estruturas bin´arias permite um trata- mento mais simplificado em rela¸c˜ao a outras estruturas de dados mais complexas. Al´em disso, podemos apresentar outras vantagens desse algoritmo:
• Possui, junto com o C4.5, os melhores tempos de resposta m´edios para gera¸c˜ao de ´arvores de decis˜ao (Garcia, 2004);
• ´E flex´ıvel para trabalhar tanto com atributos num´ericos, quanto com atributos categ´oricos, podendo devido a isso tratar de problemas de regress˜ao, al´em dos de classifica¸c˜ao (Flores, 2005);
• O algoritmo lida bem com pontos muito fora da distribui¸c˜ao padr˜ao dos dados (outliers), normalmente os separando em n´os isolados (Lewis, 2000).