• Nenhum resultado encontrado

Apontamentos M6

N/A
N/A
Protected

Academic year: 2021

Share "Apontamentos M6"

Copied!
41
0
0

Texto

(1)

Professor Doutor Fernando Lucas Bação

U

NIDADE DE

(2)

1

Introdução às Árvores de Decisão.

2

Princípios Básicos das Árvores de Decisão.

3

Indução pelo Algoritmo DDT.

4

Indução pelo Algoritmo CART.

5

Indução pelo Algoritmo C4.5.

6

Links de Interesse.

7

Bibliografia.

TÓPICOS

(3)

1 INTRODUÇÃO ÁS ÁRVORES DE DECISÃO

Podemos caracterizar as árvores de decisão como ferramentas de classificação e previsão. Uma das vantagens mais importantes, que estas ferramentas apresentam, relaciona-se com o facto de representarem regras. Estas regras são facilmente interpretáveis, ao contrário do que acontece com outros métodos de classificação e previsão como é o caso das redes neuronais. Os resultados de uma árvore de decisão podem facilmente ser expressos em Português de forma a que sejam compreendidos pelo analista ou mesmo pelo gestor responsável pela decisão. O conhecimento extraído pelas árvores de decisão pode, também, ser expresso numa qualquer linguagem de base de dados (por exemplo SQL) sob a forma de interrogações (queries) facilitando a extracção de subconjuntos de registos, classificados numa determinada categoria.

Alguns dos problemas que encontramos no Data Mining são caracterizados pelo facto de apenas se valorizar a precisão da previsão ou classificação, não sendo fundamental conhecer a forma de funcionamento do modelo. No entanto, existem problemas onde a possibilidade de explicar as razões que justificam determinadas decisões é essencial, é aqui que as árvores de decisão podem ser importantes. De facto, existem poucas ferramentas onde a compreensão do modelo, subjacente à classificação, seja tão simples como nas árvores. Esta característica talvez seja a que mais contribuiu para a popularidade das árvores de decisão enquanto ferramentas de classificação/previsão.

Existe uma grande variedade de algoritmos para a construção (indução) de árvores de decisão. Provavelmente os dois mais conhecidos e utilizados são: o algoritmo CART (classification and regression trees) e o algoritmo C4.5 (algoritmo que resultou de melhorias no original ID3) que sendo mais recente tem vindo a ganhar popularidade e encontra-se também disponível em alguns packages de software. Apesar de apresentarem diferenças na forma original do algoritmo estes algoritmos têm objectivos semelhantes e baseiam-se em princípios semelhantes.

Ao longo deste módulo iremos estudar o funcionamento básico das árvores de decisão. Para isso começamos com uma secção de carácter geral onde são apresentados os principais conceitos relacionados com as árvores de decisão. Analisaremos os componentes básicos das árvores de decisão bem como a forma como os outputs dos algoritmos se apresentam.

(4)

Falaremos sobre os critérios de paragem do treino de uma árvores de decisão, da forma como podemos avaliar o erro numa árvore completamente desenvolvida e da necessidade de, após o treino, proceder a correcções na estrutura da árvore, fase normalmente designado de desbaste. Finalizamos a primeira secção do módulo com uma avaliação sumária das vantagens e desvantagens das árvores de decisão enquanto ferramentas de classificação/previsão.

Na secção 3 apresentamos o algoritmo DDT (Divisive Decision Trees), que tem como principal objectivo exemplificar o processo de indução de uma árvore de decisão. A utilização do algoritmo DDT visa essencialmente objectivos pedagógicos, uma vez que o algoritmo, sendo pouco utilizado hoje em dia, é particularmente simples e constitui uma excelente introdução ao funcionamento destas ferramentas.

As secções 4 e 5 são dedicadas à apresentação dos algoritmos CART e C4.5, respectivamente. Como já dissemos estes são os algoritmos mais na indução de árvores de decisão, sendo que o objectivo é que o aluno compreenda as suas principais características e, através de um exemplo, a forma como funcionam. Para ambos os algoritmos é fornecido um documento Excel onde o aluno pode explorar os cálculos envolvidos na indução das árvores.

(5)

2 PRINCÍPIOS BÁSICOS DAS ÁRVORES DE DECISÃO

Quem já jogou ao jogo das vinte perguntas facilmente compreende a forma como estas árvores funcionam. No referido jogo um dos jogadores (J1) pensa em algo, objecto, pessoa, lugar que seja conhecido por todos os outros participantes, não dando qualquer pista sobre o que é. Os outros jogadores têm como missão descobrir o que é, através de um conjunto de perguntas, a que J1 responde apenas com sim ou não. Na prática as árvores de decisão representam uma série de perguntas. Tal como no jogo a resposta à primeira pergunta determina as questões seguintes. Caso a estratégia subjacente às perguntas seja eficiente, uma série de perguntas relativamente curta é suficiente para classificar um novo registo.

Uma árvore de decisão é um algoritmo decisional, é uma forma de representação de conhecimento. Existem um conjunto de conceitos fundamentais para compreender as árvores de decisão. A Figura 1 representa uma árvore de decisão que codifica os diferentes percursos de avaliação dos alunos de um curso. Assim, os alunos caso tenham nota igual ou superior a 10 valores são aprovados. Caso contrário se tiverem nota de trabalho inferior a 14 reprovam, se tiverem nota de trabalho igual ou superior a 14 e nota de exame igual ou superior a 8 valores são aprovados.

Tal como podemos observar na Figura 1, as árvores de decisão são compostas por nós, arcos e folhas. Os nós, também designados testes ou conceitos, representam as interrogações que se fazem sobre um conjunto de dados. Os arcos ou resultados separam o conjunto de dados de acordo com a resposta que representam à interrogação. Finalmente, e como o próprio nome indica, as folhas representam os nós finais onde já não existe qualquer interrogação. As árvores de decisão, ao contrário das suas homónimas na natureza, são construídas com a raiz no topo e as folhas por baixo.

(6)

Reprovado Reprovado Aprovado Sim Não Aprovado Sim Não Não Sim

Arcos

(resultados)

Nós

(testes ou conceitos)

Folhas

(alvos ou conceitos terminais) exame nota 10 trabalho nota 14 exame nota 8

Figura 1: o aspecto geral de uma árvore de decisão, composta por nós, arcos e folhas, também designadas nós finais.

Apesar do interesse das árvores de decisão enquanto instrumentos de representação de conhecimento, um dos aspectos que mais nos interessa, no contexto do Data Mining, é a possibilidade de criar (induzir) estas árvores automaticamente a partir de grandes quantidades de dados. A ideia básica associada à indução de uma árvore de decisão é bastante simples. Partimos do quadro habitual, em que temos um conjunto de variáveis de input e uma variável de output ou target. Utilizando as variáveis input tentamos criar regras que permitam isolar em subconjuntos as observações que possuem valores idênticos para a variável de output. A forma mais simples de compreender o funcionamento de uma Árvore de Decisão consiste em analisar um exemplo. Assim, digamos que possuímos os seguintes dados sobre dois tipos de tempestades (baro e trop), e que com base nas coordenadas da tempestade gostaríamos de desenvolver uma forma de as classificar automaticamente. Os dados de que dispomos são referentes a longitude e a latitude (variáveis de input) bem como o tipo de tempestade (variável de output ou target) a que corresponde como podemos ver a Tabela 1:

(7)

Tabela 1: dados sobre a localização e tipo de tempestade (fonte: http://www.statsoft.com/textbook/stclatre.html).

LONGITUDE LATITUDE CLASSE

59.00 59.50 60.00 60.50 61.00 61.00 61.50 61.50 62.00 63.00 63.50 64.00 64.50 65.00 65.00 65.00 65.50 65.50 65.50 66.00 66.00 66.00 66.50 66.50 66.50 67.00 67.50 68.00 68.50 69.00 69.00 69.50 69.50 70.00 70.50 71.00 71.50 17.00 21.00 12.00 16.00 13.00 15.00 17.00 19.00 14.00 15.00 19.00 12.00 16.00 12.00 15.00 17.00 16.00 19.00 21.00 13.00 14.00 17.00 17.00 18.00 21.00 14.00 18.00 14.00 18.00 13.00 15.00 17.00 19.00 12.00 16.00 17.00 21.00 BARO BARO BARO BARO BARO BARO BARO BARO BARO TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP TROP BARO BARO BARO BARO BARO BARO BARO BARO BARO BARO

Tendo em conta que apenas temos duas variáveis de input (longitude e latitude), podermos proceder à apresentação gráfica da tabela que acabámos de conhecer, sendo o resultado desta representação expresso na Figura 2.

(8)

0 5 10 15 20 25 55 57 59 61 63 65 67 69 71 73 Temp. b Temp. t

Figura 2: representação gráfica da localização e tipo de tempestade.

Relembrando, que o nosso objectivo consiste em criar regras que permitam discriminar entre os dois conjuntos de tempestades, temos um conjunto, bastante grande, de possibilidades para criar esta discriminação. Na Figura 3 temos todas as possibilidades de partição baseadas na variável longitude (representada no eixo dos x’s), seria possível produzir um gráfico semelhante para a variável latitude. Cada uma das rectas perpendiculares ao eixo dos x’s representa uma possível partição aplicável ao nosso conjunto de dados.

0 5 10 15 20 25 55 57 59 61 63 65 67 69 71 73 Temp. b Temp. t

(9)

O problema que se põem é o de escolher, de entre todas as partições possíveis, qual a partição que permitirá discriminar melhor entre as modalidades da variável de output. De entre todas as partições possíveis, a simples análise da Figura 2 permite antever que uma árvore idêntica à da Figura 4 resolve o nosso problema.

9 b

18 t

10 b

Long. > 67.5 Sim Não Sim Long. < 63 Não

9 b

18 t

10 b

Long. > 67.5 Sim Não Sim Long. < 63 Não

Figura 4: aspecto final da árvore para o problema do tipo de tempestade.

Sendo que as regras terão a seguinte forma:

Trop

Longitude

Longitude

Baro

Longitude

Longitude

>

<

<

>

63

5

.

67

63

5

.

67

Na prática as regras expressas na árvore anterior traduzem a posição das linhas verticais na Figura 5 e que permitem isolar os dois tipos de tempestades. A primeira regra separa 10 ocorrências de tempestades baro das restantes, a segunda regra procede à separação das 18 tempestades tropicais das restantes 9 tempestades baro.

(10)

0 5 10 15 20 25 55 57 59 61 63 65 67 69 71 73 Temp. b Temp. t Se Long.<63 Se Long.>67.5

Figura 5: aspecto gráfico da árvore de decisão produzida para o problema do tipo de tempestade.

Obviamente, este é um exemplo extremamente simples, com objectivos unicamente didácticos. Na realidade o tipo de problemas que encontramos é bastante mais complexo, compostos por n variáveis de input, sendo que raras vezes é possível proceder à construção de regras 100% correctas, como é o caso das anteriores. Mais complexo é o exemplo da Figura 6. Caso tenha entendido a explicação até aqui dada sobre o funcionamento nas árvores de decisão, deverá ser capaz de compreender quais as partições expressas na figura que são construídas em primeiro lugar.

(11)

Y>50

X>55

X>80

T

Y>32

T

T

X>20

X>20

T

T

Y>20

T

T

T

S

S

S

S

S

S

S

Y>50

X>55

X>80

T

Y>32

T

T

X>20

X>20

T

T

Y>20

T

T

T

Y>50

X>55

X>80

T

Y>32

T

T

X>20

X>20

T

T

Y>20

T

T

T

S

S

S

S

S

S

S

Figura 6: representação gráfica e da árvore de decisão que lhe deu origem, com base na árvore facilmente percebemos quais os nós que correspondem a cada uma das rectas no gráfico.

Como começamos por ver no início desta secção, uma vez completamente desenvolvida uma árvore serve de instrumento de classificação. Um registo entra na árvore no nó raiz e aí é-lhe aplicado um teste para determinar a qual dos nós descendentes o registo pertence. Existem diferentes algoritmos para escolher a partição ou teste inicial (esta é uma das principais diferenças entre os diferente algoritmos), no entanto, o objectivo é sempre o mesmo: escolher o teste que melhor discrimina entre as modalidades da variável de output. Este processo é repetido até que o registo chegue a um nó final. Assim, todos os registos que chegam a uma determinada folha (nó final) da árvore são classificados da mesma forma.

Existe um caminho único entre a raiz e cada nó final. Este percurso é a expressão da regra utilizada para classificar os registos. Muitos nós finais diferentes podem classificar os registos da mesma forma, no entanto, cada nó final produz essa classificação por uma razão diferente. A árvore da Figura 4 representa esse tipo de regras, assim se a variável Long. for superior a 67.5 então a variável dependente pertencerá à classe baro, caso contrário testamos se a variável Long. é inferior a 63, se sim a classe da variável dependente será b, se não será trop.

(12)

A árvore da Figura 4 é designada uma árvore binária de profundidade não-uniforme, ou seja, cada nó tem dois nós descendentes e a distância dos nós finais à raiz varia. Neste caso, cada nó corresponde a uma pergunta sim-ou-não, a resposta a esta pergunta determina por qual dos dois percursos o registo prosseguirá para o nível seguinte da árvore. No entanto, as árvores de decisão podem não ser binárias, sendo que existem árvores em que cada nó pode dar origem a n nós descendentes.

Para facilitar a compreensão a Figura 7 apresenta um estado intermédio de evolução da árvore, no qual já foram criados 3 nós finais e são apresentadas as segmentações correspondentes no gráfico. Como podemos observar as partições que vamos criando com base nas variáveis de input servem para segmentar as observações, com base em rectas perpendiculares aos eixos das variáveis, com o objectivo de isolar observações caracterizadas pela mesma variável de output.

Y>50 X>55 X>80 T Y>32 T T S S S Y>50 X>55 X>80 T Y>32 T T S S S

(13)

A pergunta que agora se põe é “como é que definimos em cada momento qual a partição a

adoptar?”. De facto, necessitamos de um critério por forma a preferir uma determinada

partição em relação a todas as outras partições possíveis. Nesta fase é importante relembrar que o que procuramos atingir com as sucessivas partições são grupos cada vez mais homogéneos em termos das modalidades da variável de output. “Quais as medidas que

poderemos utilizar para avaliar a qualidade das diferentes partições possíveis?”. Existem

diversas. Duas das mais conhecidas, normalmente associadas a dois dos algoritmos inicialmente referenciados, são:

• Coeficiente de Gini – P1(1-P1); normalmente associado ao algoritmo CART;

• Critério de Redução de Entropia - -P1logP1-P2logP2; normalmente associado ao algoritmo C4.5.

Na prática o que acontece é que o algoritmo testa todas as possibilidade de partição optando por aquela que maximiza a “pureza” (ou minimiza a diversidade) dos nós descendentes, sendo que em qualquer caso uma partição só é aceite quando existe melhoria em termos de “pureza”, entre o nó do nível superior e os dois nós descendentes. De seguida iremos concentrar-nos em alguns aspectos importantes na construção de árvores de decisão.

2.1 Medição da taxa de erro

Uma vez feita a partição e tendo a árvore atingindo o seu desenvolvimento máximo, necessitamos de avaliar a qualidade das partições executadas. A forma como medimos a qualidade global de uma árvore de decisão é muito simples: aplicamos um conjunto de dados com os quais a árvore nunca teve contacto e medimos a percentagem de registos que são correctamente classificados, a este procedimento designamos validação cruzada (já descrita no módulo II), mas sobre ele falaremos na página 14.

Em qualquer caso e após terminar a indução da árvore pode ser relevante analisar o erro associado a cada um dos nós, mesmo sabendo que a avaliação dos erros com base nos dados que deram origem à árvore é largamente optimista. Assim, em cada nó podemos medir:

⇒ o número de registos que entraram no nó;

(14)

⇒ a percentagem de registos correctamente classificados nesse nó.

No final do processo da construção da árvore, todos os registos do conjunto de treino foram atribuídos a um dos nós finais da árvore completa. A cada um destes nós podemos agora associar uma classe e uma taxa de erro. Suponhamos que uma árvore apresenta o percurso desde o nó raiz até a um nó final que classifica os registos como femininos. O facto de este ser um nó final significa que não foi encontrada qualquer partição que reduza de forma significativa a diversidade. No entanto, isto não significa que todos os registos classificados neste nó final pertençam de facto à mesma classe. Neste caso e na medida em que a maioria dos registos de treino que atingem este nó têm o valor “feminino” para a variável de output, atribuímos a este nó final a classe “feminino”.

Digamos que 9 em 11 se encontram correctamente classificados, ou seja, dos 11 registos classificados no nó, 9 pertencem de facto a indivíduos do sexo feminino.

Fem. Masc. 9 2

Figura 8: nó com 11 registos classificados, 9 como femininos e 2 como masculinos.

Qual a probabilidade de um registo classificado neste nó, sobre o qual não temos qualquer informação sobre o seu sexo, corresponder de facto a um indivíduo do sexo feminino? A resposta é bastante simples, os registos que atingem este nó têm uma probabilidade de 0.818 (9/11) de serem feminino. A partir daqui podemos definir um “erro associado” a este nó em particular:

1 - 0.818 = 0.182

Da mesma forma será de todo o interesse compreender qual a taxa de erro da árvore no seu todo. Assim, a taxa de erro aparente (TEA) da árvore de decisão é uma soma ponderada da taxa de erro de todos os nós finais. A contribuição de cada um destes nós para o total é a taxa de erro do nó multiplicado pela probabilidade de um registo vir a ser classificado por esse nó. A Figura 9 mostra um pequeno exemplo que facilita a compreensão do cálculo. Na figura, estão representadas 3 classes para a variável de output, no nó inicial cada uma delas é representada por 100 registos. Assim, o erro TEA traduz-se no produto entre o número de registos

(15)

classificados num determinado nó e a percentagem de registos erradamente classificados no nó. Por exemplo, se tomarmos o nó final mais à esquerda, começamos por definir este nó como classe 2, na medida em que 63 dos 74 registos aí classificados pertencem à classe 2. Se assim for então 11 registos encontram-se erradamente classificados (7 na classe 1 e 4 na classe 3) o que se traduz num erro de 14.9. Assim, obtemos a taxa de erro de cada nó final, basta de seguida, ponderar esses valores pelo número de registos classificado em cada um dos nós como podemos observar na figura e obtemos a TEA da árvore.

100, 100, 100 75, 65, 20 25, 35, 80 7, 63, 4 68, 2, 16 10, 15, 70 15, 20, 10

(

)

26

.

3

%

300

%

5

.

55

*

45

%

3

.

26

*

95

%

9

.

20

*

86

%

9

.

14

*

74

=

+

+

+

=

TEA

Figura 9: exemplo gráfico de uma árvore onde a variável de output pode assumir 3 valores diferentes, e o correspondente cálculo da Taxa de Erro Aparente.

2.2 Critério de Paragem

Existem diversos critérios que podem ser seguidos para parar o algoritmo de indução. A maior parte dos software permite que o utilizador escolha o critério que quer usar. Os critérios de paragem da indução têm como principal objectivo prevenir a sobre-aprendizagem. Ao estabelecer um critério de paragem reduz-se o tempo de processamento em situações onde, em princípio, partições adicionais já não produzem conhecimento generalizável. No entanto, em geral, o controlo da sobre-aprendizagem não se fica pelo critério de paragem, sendo aplicados outros procedimentos para resolver este problema, como veremos na subsecção seguinte.

Um dos critérios é o estabelecimento de um limite para a medida de diversidade, ou seja, quando esta atinge um valor abaixo do limite estabelecido a árvore pára de crescer. Existe

(16)

ainda a possibilidade de impedir o desenvolvimento da árvore a partir do momento em que os nós possuam um número de registos inferior a um determinado limite. A lógica subjacente a esta opção tem que ver com a representatividade do nó. Quando o nó já possui um número muito pequeno de registos é natural que qualquer particularidade daquele pequeno conjunto possa permitir a redução da diversidade. No entanto, esta partição não terá qualquer utilidade quando aplicada a outros conjuntos de dados. Outro critério, menos conservador que os anteriores, consiste em permitir que a árvore se desenvolva até que todos os nós sejam completamente puros, caso isso seja possível. Existem ainda alguns critérios, propostos por Quinlan (1986), onde através da aplicação de um teste estatístico, como o qui-quadrado, se estima se uma partição adicional produzirá melhorias na quantidade de conhecimento generalizável.

Independentemente do critério de paragem utilizado a verdade é que hoje em dia a grande maioria das aplicações garante a ausência de sobre-aprendizagem através do procedimento de validação cruzada, bastante mais fiável do que qualquer critério de paragem. Assim, tipicamente, existe um critério de paragem que permite evitar gastos desnecessários de tempo e processamento e em seguida procede-se ao desbaste da árvore através da validação cruzada.

2.3 Desbaste da Árvore

Como já referimos, a árvore de decisão cresce na medida em que novas partições, que melhorem a capacidade discriminatória da árvore, sejam encontradas, ou seja, partições que permitam separar os registos de treino em classes. Se utilizarmos os dados de treino, como fizemos para calcular a TEA, para avaliar a qualidade da árvore qualquer desbaste (redução do número de nós da árvore) servirá apenas para aumentar a taxa de erro. Será que isto implica que a árvore sem qualquer desbaste também terá a melhor performance na classificação de um novo conjunto de dados, com os quais não teve contacto durante a fase de treino? Não. A maioria dos algoritmos para indução de árvores de decisão utiliza a melhor partição em primeiro lugar no nó raiz, onde existe uma grande população de registos. Cada partição posterior possui uma população mais pequena e menos representativa para trabalhar. À medida que nos aproximamos do fim, as idiossincrasias de determinados registos de treino começam a dominar o processo. Se estamos a tentar prever uma variável como altura e chegamos a um nó onde encontramos um Manuel alto e várias pessoas mais baixas com outros

(17)

nomes, podemos fazer decrescer a diversidade no nó através de uma nova regra: pessoas chamadas Manuel são altas. Esta regra ajuda a classificar os dados de treino, mas provavelmente num universo de dados maior revela-se errada, sendo que não parece haver evidência de correlação entre o nome Manuel e a estatura.

As classificações tornaram-se tão especializadas e adaptaram-se tão bem aos dados de treino que provavelmente não se adaptarão bem aos novos dados, este é o problema, já estudado, da sobre-aprendizagem ou overfitting. É óbvio que, mesmo com um critério de paragem, uma árvore nestas circunstâncias necessita de ser desbastada, por forma a obter melhores previsões gerais. O problema consiste em saber até onde desbastar e determinar qual, de entre as inúmeras sub-árvores, terá melhor performance.

A melhor forma de proceder ao desbaste das árvores consiste em “guardar” um conjunto de dados (os dados de validação já referenciados nos módulos anteriores) por forma a identificar qual a melhor, de entre todas as sub-árvores possíveis. Este procedimento é conhecido por validação cruzada. Assim, uma vez terminado o processo de construção da árvore, utilizamos o conjunto de validação para aferir qual das sub-árvores possui a mais baixa estimativa de erro. Assim, obteremos um gráfico idêntico ao da Figura 10, onde podemos observar a evolução do erro do conjunto de treino e do conjunto de validação, à medida que a árvore se foi desenvolvendo.

erro

ciclo

Validação

Treino

erro

ciclo

Validação

Treino

Dimensão da árvore (nº de nós)

erro

erro

ciclo

Validação

Treino

erro

ciclo

Validação

Treino

Dimensão da árvore (nº de nós)

erro

Figura 10: evolução típica do erro no conjunto de treino e no conjunto de validação, a partir de uma determinada dimensão o conhecimento extraído pela árvore deixa de ser útil na medida em que não é generalizável.

(18)

No eixo dos y’s podemos ver o valor de erro e no eixo dos x’s as sucessivas partições feitas. Como podemos observar o valor do erro no conjunto de treino decresce ao longo de todo o processo de partição, no entanto, o mesmo não acontece com o erro do conjunto de validação. A partir de uma determinada fase o erro do conjunto de validação não só não decresce como começa a subir. Tipicamente, é esta a árvore que é escolhida para fazer previsões sobre o comportamento da população. Como podemos ver na Figura 11, a árvore que utilizaremos nas nossas previsões é aquela que minimiza o erro no conjunto de validação o que, em regra, implica algum desbaste na árvore original.

Desbaste

err

o

ciclo

Validação Treino

err

o

ciclo

Validação Treino Dimensão da árvore (nº de nós) erro

err

o

ciclo

Validação Treino

err

o

ciclo

Validação Treino Dimensão da árvore (nº de nós) erro

Figura 11: o ponto de paragem determinado pelo conjunto de validação implica um desbaste na árvore criada, sendo que todos os nós abaixo da linha não serão utilizados.

É importante relembrar que, dependendo do tipo de aplicação, pode ser importante a utilização de um terceiro conjunto de dados, designado conjunto de teste, por forma a obter uma estimativa não enviesada do erro da árvore. De facto, apesar do conjunto de validação não ser utilizado no treino da árvore ele é utilizado para seleccionar a árvore que vai ser utilizada na classificação, pelo que a estimativa de erro obtida a partir deste conjunto deve ser considerada optimista em relação ao erro esperado.

2.4 Vantagens e Desvantagens das Árvores de Decisão

As árvores de decisão são ferramentas capazes de construir bons modelos preditivos, sendo particularmente relevantes quando na presença de classificação onde a variável de output é

(19)

uma variável discreta e assume um número relativamente reduzido de valores. Muito importante é também a sua capacidade de utilização de dados binários e categóricos sem qualquer necessidade de transformação. Esta é uma característica importante, na medida em que a maioria das outras ferramentas tem dificuldade em lidar com este tipo de variáveis, exigindo, normalmente, a sua conversão para variáveis intervalares. Adicionalmente, as árvores de decisão são insensíveis aos factores de escala, sendo que as variáveis medidas em diferentes escalas podem ser utilizadas sem qualquer tipo de normalização.

Uma das mais apreciadas vantagens das árvores de decisão é a, já referida, facilidade de compreensão dos seus resultados. De facto, não só os resultados são de fácil interpretação como também são fáceis de implementar como interrogações em linguagem de bases de dados. Paralelamente as árvores de decisão procedem à definição automática dos atributos mais relevantes em cada caso, sendo que os atributos mais relevantes aparecem no topo da árvore

Entre as vantagens podemos ainda falar da robustez aos erros, quer na variável de output quer nas variáveis de input, e na possibilidade de utilizar registos com valores omissos (para mais informação ver Mitchell 1997). Finalmente, a simplicidade dos algoritmos e a facilidade com que se implementam também tem contribuído para a sua popularidade.

Como já vimos as árvores de decisão constroem partições (linhas de decisão) lineares e perpendiculares aos eixos das variáveis. Num espaço n dimensional de variáveis de input, as árvores de decisão constroem hipercubos que classificam subconjuntos de dados. Os algoritmos de indução são algoritmos greedy (para mais informação ver

http://en.wikipedia.org/wiki/Greedy_algorithm), ou seja, em cada fase o algoritmo opta pela

opção óptima. Sendo uma estratégia bastante eficaz tem como principal problema o facto de não garantir que o resultado final será um óptimo global, na medida em que as escolhas óptimas em cada fase não garantem o óptimo global (Nota: a estratégia greedy é também utilizada nos algoritmos hierárquicos de clustering estudados no módulo 4, conduzindo a problemas semelhantes). A utilização de uma estratégia greedy justifica que pequenas perturbações nos valores das variáveis possam produzir alterações muito significativas nos resultados finais, conduzindo a árvores completamente diferentes. Finalmente, a sua capacidade de previsão nos problemas de regressão tende a ficar abaixo de outros modelos como a regressão logística e as redes neuronais.

(20)

3 INDUÇÃO PELO ALGORITMO DDT

O exemplo que apresentamos de seguida tem como objectivo consolidar algumas das ideias já apresentadas e sistematizar a forma como uma árvore de decisão pode ser construída, a partir de um conjunto de dados. O algoritmo que utilizaremos é bastante conhecido, apesar de hoje em dia já não ser utilizado, a não ser para exemplos didácticos, e designa-se Divisive Decision Tree (Hunt et al. 1966) daí o acrónimo DDT. Os dados que utilizamos (Langley 1995) referem-se ao estudo de células e são aprereferem-sentados na Tabela 2 onde referem-se encontram reprereferem-sentados 12 exemplos caracterizados por variáreis de input (nº de núcleos, nº de caudas, cor e membrana) e uma variável de output (classe). O objectivo consiste em construir uma árvores de decisão que seja capaz de, dadas as variáveis de input, classificar correctamente, na classe correspondente, qualquer exemplo.

Tabela 2: conjunto de dados inicial, relacionados com a identificação de diferentes tipos de células ( fonte: Langley 1995).

# Núcleos # Caudas Cor Membrana Classe

1 1 Clara Fina Lethargia

2 1 Clara Fina Lethargia

1 1 Clara Grossa Lethargia

1 1 Escura Fina Lethargia

1 1 Escura Grossa Lethargia

2 2 Clara Fina Burpoma

2 2 Escura Fina Burpoma

2 2 Escura Grossa Burpoma

2 1 Escura Fina Saudável

2 1 Escura Grossa Saudável

1 2 Clara Fina Saudável

1 2 Clara Grossa Saudável

(21)

Onde N corresponde ao N, ASET (attribute set) ao conjunto de atributos (conjunto das variáveis de input), ISET (instance set) conjunto de exemplos.

Utilizando as variáveis de input como discriminadores obtemos o seguinte conjunto de partições possíveis:

• Os 12 registos podem ser separados de acordo com o número de núcleos que apresentam (1 ou 2);

• Os 12 registos podem ser separados de acordo com o número de caudas que apresentam (1 ou 2);

• Os 12 registos podem ser separados de acordo com a cor que apresentam (escura ou clara);

• Os 12 registos podem ser separados de acordo com a espessura da membrana que apresentam (grossa ou fina).

O passo seguinte consiste em definir e aplicar uma métrica que permita comparar a qualidade das diferentes partições. Neste caso a medida que utilizaremos para discriminar o atributo é:

( )

=

=

A i i

C

n

A

f

1

1

(22)

onde n é o número total de exemplos e Ci o número de exemplos correctamente classificados

pela classe mais frequente. Esta é uma medida de “dominância” ou “pureza”. O resumo dos resultados obtidos com as partições possíveis pode ser analisado na Tabela 3.

Tabela 3: quadro das partições possíveis com base nos dados de input existentes.

# núcleos 1 2 Lethargia 4 1 Burpoma 0 3 Saudável 2 2 # caudas 1 2 Lethargia 5 0 Burpoma 0 3 Saudável 2 2

Cor Clara Escura

Lethargia 3 2

Burpoma 1 2

Saudável 2 2

Membrana Fina Grossa

Lethargia 3 2

Burpoma 2 1 Saudável 3 1

Aplicando a métrica proposta teremos:

⇒ # núcleos Æ (4+3)/12=0.58

⇒ # caudas Æ (5+3)/12=0.67

⇒ Cor Æ (3+2)/12=0.41

⇒ Membrana Æ (3+2)/12=0.41

Tendo em conta os resultados fica claro que, nesta primeira partição, a variável que mais contribui para separar os diferentes tipos de classes de células é o # caudas, pelo que a partição inicial terá a seguinte forma:

(23)

# caudas

1 2

Figura 12: partição do nó inicial com base no número de caudas, para o problema do tipo de células.

Onde o nó descendente do lado esquerdo contém os registos da Tabela 4 e o nó descendente do lado direito os registos da Tabela 5.

Tabela 4: conjunto de registo classificados no nó relativo às células com uma cauda.

# Núcleos # Caudas Cor Membrana Classe

1 1 Clara Fina Lethargia

2 1 Clara Fina Lethargia

1 1 Clara Grossa Lethargia

1 1 Escura Fina Lethargia

1 1 Escura Grossa Lethargia

2 1 Escura Fina Saudável

2 1 Escura Grossa Saudável

Tabela 5: conjunto de registo classificados no nó relativo às células com duas caudas.

# Núcleos # Caudas Cor Membrana Classe

1 2 Clara Fina Saudável

1 2 Clara Grossa Saudável

2 2 Clara Fina Burpoma

2 2 Escura Fina Burpoma

2 2 Escura Grossa Burpoma

A partir do conjunto de dados iniciais e com base numa única partição temos dois subconjuntos mais “puros” do que o conjunto inicial. O próximo passo consiste em aplicar novos testes aos subconjuntos agora criados. Sugere-se que o aluno prossiga os cálculos até atingir a solução

(24)

final, apresentada na Figura 13. Neste caso particular os nós finais não são passíveis de ser subdivididos uma vez que são completamente “puros”, apenas possuem registos da mesma classe.

Caudas

Núcleos Núcleos

Lethargia 4 Cor Saudável 2 Burpoma 3

Lethargia 1 Saudável 2 Caudas

Núcleos Núcleos

Lethargia 4 Cor Saudável 2 Burpoma 3

Lethargia 1 Saudável 2

2

1

2

1

2

1

Escura Clara

Figura 13: árvore que representa a solução final para o problema do tipo de célula.

Após a construção da árvore obtemos as regras representadas na Figura 14, relacionadas com cada um dos nós finais produzido. Com este resultado não só é bastante simples aceder, numa base de dados, a registos de uma classe em particular, como também classificar registos para os quais não temos dados sobre a classe a que pertencem (variável de output).

(

) (

)

(

caudas

uma

) (

núcleos

dois

) (

cor

clara

)

Lethagia

um

núcleos

uma

caudas

=

=

=

=

=

(

) (

)

(

caudas

uma

) (

núcleos

dois

) (

cor

escura

)

Saudável

um

núcleos

duas

caudas

=

=

=

=

=

(

caudas

=

duas

) (

núcleos

=

dois

)

Burpoma

(25)

4 INDUÇÃO PELO ALGORITMO CART

O algoritmo CART (Classification And Regression Trees) é um dos métodos mais populares para construção de árvores. Este algoritmo desenvolvido por Briemen et all 1984 foi um marco na área aprendizagem-máquina. Muitas das ferramentas de indução de regras, disponíveis comercialmente, utilizam variantes deste algoritmo por forma a gerar as suas árvores e regras. O algoritmo CART constrói uma árvore binária, ou seja, cada nó dá origem a apenas dois nós descendentes. O CART separa os registos em cada nó de acordo com uma função de um único campo de input. Assim, a primeira tarefa consiste em decidir qual, de entre as variáveis de input, produz a melhor partição. A melhor partição é definida como sendo a que produz a melhor separação dos registos em grupos onde uma única classe predomina.

Para escolher a melhor partição num determinado nó, consideramos as variáveis de input, uma de cada vez. Como é óbvio as variáveis assumem múltiplos valores, assim, em primeiro lugar ordenamos os registos com base nas diferentes variáveis. De seguida, avaliamos cada partição possível de acordo o valor da diversidade (neste caso com base no coeficiente de Gini). Por exemplo, no caso da Tabela 1 existem inúmeras partições possíveis, uma delas é agrupar todas as observações com Longitude superior a 67.5 e agrupar aquelas que apresentam uma Longitude inferior ao referido valor. Assim, os valores assumidos pelas observações para as diferentes variáveis de input constituem as partições que podemos testar em termos de diversidade. Isto significa que iremos procurar todas as partições possíveis, com base nas variáveis input, avaliá-las tendo em conta o valor de diversidade que apresentam e finalmente, escolher aquela que apresenta uma menor diversidade.

Como já referimos a medida utilizada para avaliar uma potencial partição é a “pureza” dos nós criados. Existem diversas formas de calcular o “índice de pureza” para um conjunto de registos, uma delas já vimos no exemplo do algoritmo DDT. No caso particular do algoritmo CART a medida utilizada é o coeficiente de Gini. O algoritmo CART, tal como foi originalmente descrito por Briemen et all 1984, adaptou uma medida para avaliar a diversidade proveniente da economia. Um economista italiano chamado Gini concebeu uma medida standard para o avaliar o nível de desigualdade de rendimento num país (para mais informações ver

(26)

Assim, o critério para avaliar a pureza ou diversidade é dado pela seguinte expressão:

( )

(

c

)

m c c G

i

P

P

I

=

=

1

1

onde Pc corresponde à proporção de indivíduos da classe c no nó i, sendo que no caso

particular de a classe de output ser binária teremos:

( )

c

(

c

)

G

i

P

P

I

=

1

( )

i

I

G varia entre um máximo de diversidade de 0.25 e um mínimo de 0, que corresponde à situação em que todos os indivíduos correspondem à mesma classe. Assim, a melhor partição é aquela que mais reduz a diversidade do conjunto de registos. No entanto, para além de considerar a redução de diversidade produzida por cada uma das variáveis é indispensável comparar se a maior redução possível melhora o resultado em relação ao nó inicial. É indispensável calcular o ganho produzido pela nova partição. Por forma a decidir se deveremos aceitar a partição basta comparar a diversidade do nó antes da partição com a diversidade dos nós após a partição. Por outras palavras, queremos maximizar:

diversidade(antesdapartição)–(diversidade(descendenteesquerda)+diversidade(descendentedireita)), ou seja:

( )

d G

( )

d e G

( )

e G m j

=

I

i

p

I

i

p

I

i

Onde

I

G

( )

i

representa a diversidade do nó inicial

I

G

( )

i

d a diversidade do nó descendente da direita,

I

G

( )

i

e a diversidade do nó descendente da esquerda e

p ,

d

p

ea proporção de registos classificados em cada um dos nós.

A partição inicial produz dois nós, cada um dos quais tentaremos dividir da mesma forma que dividimos o nó raiz. Novamente examinamos todos os campos de input para encontrar as partições. Se o campo assume apenas um único valor então é eliminado na medida em que não existe forma de ser utilizado para criar uma partição. Quando não existe qualquer partição que diminua a diversidade de determinado nó esse nó é designado final. A determinada altura

(27)

temos apenas nós finais pelo que temos uma árvore de decisão completa. Mas como já vimos a árvore completa não é, normalmente, a melhor na classificação de novos registos.

4.1 Exemplo de Aplicação

De seguida apresentamos um exemplo sumário da aplicação do algoritmo CART. Obviamente, este constitui um pequeno exemplo muito simplificado por forma a permitir a sua descrição tendo em conta os constrangimentos de espaço. Assim, limitar-nos-emos a apresentar os procedimentos relativos à construção da árvore, sendo que as questões relativas ao desbaste da árvore não serão tratadas.

Em primeiro lugar vale a pena começar por relembrar os principais passos na construção do algoritmo CART:

1. Estabelecer para cada nó o conjunto de divisões possíveis;

2. Definir o critério que permita seleccionar a melhor divisão de um nó;

3. Definir uma regra que permita declarar o nó como final (se já não necessita de mais divisões ou se dimensão do segmento, ou seja o número de registos aí classificados é inferior a um valor pré-determinado) ou intermédio;

4. Afectar cada nó final a uma das classes;

5. Estimar o risco de erro da classificação ou da previsão associado à árvore; 6. Volta a 1.

A base de partida do nosso exemplo é o conjunto de dados apresentados na Tabela 6. Temos 3 variáveis de input e uma variável output ou target (a variável Compra Computador).

(28)

Tabela 6: dados de base para apresentação do algoritmo CART, a variável RID corresponde ao identificador, rendimento, estudante e rating de crédito são variáveis de input e compra computador variável de output.

RID Rendimento Estudante Rating Crédito Compra Computador

1 Elevado Não Regular Não

2 Elevado Não Excelente Não

3 Elevado Não Regular Sim

4 Médio Não Regular Sim

5 Baixo Sim Regular Sim

6 Baixo Sim Excelente Não

7 Baixo Sim Excelente Sim

8 Médio Não Regular Não

9 Baixo Sim Regular Sim

10 Médio Sim Regular Sim

11 Médio Sim Excelente Sim

12 Médio Não Excelente Sim

13 Elevado Sim Regular Sim

14 Médio Não Excelente Não

Em primeiro lugar há que estabelecer o conjunto de partições possíveis para o nó inicial, assim teremos: Variável Modalidades Elevado – Médio/Baixo Baixo - Elevado/Médio Rendimento Médio – Elevado/Baixo Estudante Sim – Não

Crédito Regular – Excelente

O critério que utilizaremos é para avaliar a pureza é o seguinte:

( )

c

(

c

)

G

i

P

P

I

=

1

Assim, resta proceder à análise de cada uma das partições possíveis em termos do critério de pureza escolhido e seleccionar a que produz nós com menor diversidade. No primeiro teste utilizamos a variável Crédito, os cálculos são apresentados na Figura 15.

(29)

Abs. Proporções

Classe A 5 0.3571

Classe B 9 0.6429

Total 14

Impureza 0.4592

Val. Abs. Proporções Val. Abs. Proporções

Classe A 3 0.5000 Classe A 2 0.2500 Classe B 3 0.5000 Classe B 6 0.7500 Total 6 Total 8 Impureza 0.5000 Impureza 0.3750 PP D PP D*Imp PP E PP E*Imp 0.4286 0.2143 0.5714 0.2143 Ganho 0.0306 Nó Inicial Nó D Nó E

Figura 15: cálculos para aimpureza e ganho com base na variável crédito.

O teste seguinte é feito sobre a variável Estudante, sendo os cálculos apresentados na Figura 16. Abs. Proporções Classe A 5 0.3571 Classe B 9 0.6429 Total 14 Impureza 0.4592

Val. Abs. Proporções Val. Abs. Proporções

Classe A 4 0.5714 Classe A 1 0.1429 Classe B 3 0.4286 Classe B 6 0.8571 Total 7 Total 7 Impureza 0.4898 Impureza 0.2449 PP D PP D*Imp PP E PP E*Imp 0.5000 0.2449 0.5000 0.1224 Ganho 0.0918 Nó Inicial Nó D Nó E

(30)

O teste seguinte é feito sobre a variável Rendimento, sendo os cálculos apresentados na Figura 17. Neste caso específico e devido ao facto de termos mais do que 2 classes teremos que proceder não a um mas a três testes. O primeiro separando os de baixos rendimentos dos outros: Abs. Proporções Classe A 5 0.3571 Classe B 9 0.6429 Total 14 Impureza 0.4592

Val. Abs. Proporções Val. Abs. Proporções

Classe A 1 0.2500 Classe A 4 0.4000 Classe B 3 0.7500 Classe B 6 0.6000 Total 4 Total 10 Impureza 0.3750 Impureza 0.4800 PP D PP D*Imp PP E PP E*Imp 0.2857 0.1071 0.7143 0.3429 Ganho 0.0092 Nó Inicial Nó D Nó E

Figura 17: cálculos para aimpureza e ganho com base na variável rendimento separando os baixos rendimentos das outras duas categorias.

(31)

Abs. Proporções

Classe A 5 0.3571

Classe B 9 0.6429

Total 14

Impureza 0.4592

Val. Abs. Proporções Val. Abs. Proporções

Classe A 3 0.3750 Classe A 2 0.3333 Classe B 5 0.6250 Classe B 4 0.6667 Total 8 Total 6 Impureza 0.4688 Impureza 0.4444 PP D PP D*Imp PP E PP E*Imp 0.5714 0.2679 0.4286 0.1905 Ganho 0.0009 Nó Inicial Nó D Nó E

Figura 18: cálculos para aimpureza e ganho com base na variável rendimento separando os rendimentos médios das outras duas categorias.

E finalmente, separando os de elevado rendimento dos outros (Figura 19):

Abs. Proporções

Classe A 5 0.3571

Classe B 9 0.6429

Total 14

Impureza 0.4592

Val. Abs. Proporções Val. Abs. Proporções

Classe A 3 0.3000 Classe A 2 0.5000 Classe B 7 0.7000 Classe B 2 0.5000 Total 10 Total 4 Impureza 0.4200 Impureza 0.5000 PP D PP D*Imp PP E PP E*Imp 0.7143 0.3000 0.2857 0.1429 Ganho 0.0163 Nó Inicial Nó D Nó E

Figura 19: cálculos para aimpureza e ganho com base na variável rendimento separando os rendimentos elevados das outras duas categorias.

(32)

Posto isto, estamos em condições de escolher qual a variável que servirá de base à partição do nó inicial. Assim, o maior ganho em termos de pureza é conseguido na partição obtida através da utilização da variável Estudante (0.0918), sendo por isso esta a escolhida para proceder à partição. Numa situação normal, com um número suficientemente grande de exemplos de treino, este processo continuaria até que todos os nós fossem considerados finais. No caso dos nós construídos, o nó D representaria os não-compradores (isto apesar do erro associado à classificação do nó ser bastante elevado 42.8%) e o nó E representaria os compradores (com um erro associado de cerca de 14%).

Para explorar este exemplo de forma mais interactiva o aluno é incentivado a consultar o documento Excel CART.xls disponível na plataforma de elearning. Neste documento terá a possibilidade de explorar a folha de cálculo que serviu de base à construção do exemplo e analisar em pormenor os cálculos necessários para a decisão de qual das partições escolher.

(33)

5 INDUÇÃO PELO ALGORITMO C4.5

Chegou a vez de apresentar o algoritmo C4.5. Agora que já estudámos os algoritmos DDT e CART, a explicação prévia do C4.5 pode ser bastante mais curta, na medida em que os seus objectivos e procedimentos são bastante semelhantes. A estratégia básica consiste em:

1. A árvore inicia-se com um único nó, representando todos os exemplos de treino;

2. Se os exemplos são todos da mesma classe, então o nó torna-se um nó final e todos os exemplos classificados nessa classe;

3. Caso contrário:

o O algoritmo utiliza uma medida de entropia como forma de seleccionar a variável de input que melhor separe os exemplos em classes individuais. A entropia varia entre um máximo 0.5 (entropia máxima) e 0 (quando todos os elementos pertencem à mesma classe).

o Ao contrário do algoritmo CART cada valor da variável de input é utilizado simultaneamente na partição, ou seja as árvores produzidas pelo algoritmo C4.5 não são binárias podendo cada nós dar origem a n nós descendentes.

o A melhor partição é comparada com o nó que lhe dá origem e avalia-se o “ganho de informação” (information gain), ou seja se a partição melhora os resultados ou não.

o Se a partição melhorar os resultados a variável é seleccionada. Nesta versão do algoritmo todas as variáveis de input são categóricas (discretas). Variáveis expressas em valores contínuos necessitam de ser discretizadas.

4. Um nó é criado para cada valor da variável de input que serve de teste, sendo os exemplos separados de acordo com ela.

5. O algoritmo continua o mesmo processo até que a árvore esteja completa

(34)

o Todos os exemplos de um dado nó pertencem à mesma classe;

o Não existem mais variáveis de input com base nas quais possam ser feitas partições adicionais. Neste caso a classe assumida pelo nó será aquela a que pertencem a maior parte dos exemplos;

A medida de “ganho de informação” é utilizada para seleccionar a variável de input que servirá de base à partição, em cada nó da árvore. A variável de input com o maior “ganho de informação” (a maior redução de entropia) é escolhida como teste (base da partição) para o nó em apreço. Esta variável minimiza a informação necessária para classificar os exemplos nas partições resultantes e minimiza a “impureza” nas partições. Esta abordagem minimiza o número esperado de testes necessários para classificar um objecto e garante que uma árvore simples (não necessariamente a mais simples) é encontrada.

Sendo S um conjunto constituído por s exemplos. Suponhamos que a variável de output assume m valores distintos, definindo m classes distintas, Ci (para i=1,...,m). Sendo si o

número de exemplos de S na classe Ci. A informação necessária esperada para classificar um

determinado exemplo é dada por:

( )

( )

=

=

m i i i

p

p

S

Ent

1 2

log

onde pi é a probabilidade de um exemplo arbitrário pertencer à classe Ci e é estimada por si/s.

=

) (

)

(

#

#

)

(

)

,

(

A Valores v v v

Ent

S

S

S

S

Ent

A

S

Ganho

Assumindo a variável A, v valores distintos,

{

a

1

,

a

2

,

a

3

,...,

a

v

}

. A variável A pode ser utilizada para proceder à partição de S em v subconjuntos,

{

S

1

,

S

2

,

S

3

,...,

S

v

}

, onde Sj contém os exemplos de S

que têm o valor aj de A. Se A foi seleccionada como a melhor variável para proceder à

partição, então estes subconjuntos corresponderão aos nós que derivam do nó contendo o conjunto S. Sendo sij o número de exemplos da classe Ci no subconjunto Sj. Por outras

palavras, o Ganho (A) é a redução esperada de entropia motivada pelo conhecimento da variável A.

(35)

O algoritmo calcula o ganho de informação para cada variável. A variável com maior ganho de informação é escolhida para proceder à partição. Assim, os ramos a partir do nó são criados para cada valor da variável, e os exemplos agrupados de acordo com a regra criada.

Devido ao problema do overfitting é agora necessário proceder ao desbaste da árvore construída, por forma a generalizar o conhecimento criado à população. A metodologia de desbaste inicialmente proposta por Quilan para este algoritmo difere bastante daquela que já analisamos na subsecção onde falámos do desbaste das árvores. Assim, em vez de guardar um conjunto de dados que permitam determinar a dimensão ideal da árvore, o algoritmo C4.5 procede ao desbaste sem qualquer conjunto de dados adicionais.

O algoritmo C4.5 procede ao desbaste através da análise da taxa de erro em cada nó e assumindo que o verdadeiro erro é substancialmente pior do que o observado. Se n registos chegam a um nó, sendo e erradamente classificados, então a taxa de erro nesse nó é dado por

e/n. Assim, neste caso, assumimos que o valor de e/n é o melhor que conseguimos obter. O algoritmo C4.5 utiliza uma analogia com a teoria estatística de amostragem por forma a construir uma estimativa do maior valor de erro que poderemos encontrar num nó. A analogia funciona pensando nos dados observados num nó como o resultado de um conjunto de testes em que cada um pode assumir um de dois resultados (cara ou coroa é o exemplo mais conhecido). Desde a distribuição binomial de Bernoulli que a estatística se preocupa com este tipo de testes, sendo que existem formulas para determinar o significado de obter e ocorrências de um evento em n testes.

Em particular existe uma fórmula que, para um determinado nível de confiança, fornece um intervalo de confiança, a amplitude dos valores esperados de e. Assim, o algoritmo C4.5 assume que a taxa de erro observada no conjunto de treino constitui o limite mínimo deste intervalo e utiliza o limite máximo como o erro esperado para a população. A aplicação desta metodologia faz com que à medida que o número de exemplos classificados num nó diminua o erro esperado cresça. Quando o erro esperado de uma determinada sub-árvore é maior que o do nó que lhe dá origem, então a sub-árvore é desbastada restando o nó que lhe deu origem.

(36)

5.1 Exemplo de Aplicação

De seguida apresentaremos um exemplo do funcionamento deste tipo de árvore, por forma a facilitar o entendimento do seu funcionamento. Para isso utilizaremos os dados da Tabela 7.

Tabela 7: dados de base para apresentação do algoritmo CART, a variável RID corresponde ao identificador; idade, rendimento, estudante e rating de crédito são variáveis de input e compra computador variável de output.

RID Idade Rendimento Estudante Rating Crédito Compra Computador

1 <=30 Elevado Não Regular Não

2 <=30 Elevado Não Excelente Não

3 31...40 Elevado Não Regular Sim

4 >40 Médio Não Regular Sim

5 >40 Baixo Sim Regular Sim

6 >40 Baixo Sim Excelente Não

7 31...40 Baixo Sim Excelente Sim

8 <=30 Médio Não Regular Não

9 <=30 Baixo Sim Regular Sim

10 >40 Médio Sim Regular Sim

11 <=30 Médio Sim Excelente Sim

12 31...40 Médio Não Excelente Sim

13 31...40 Elevado Sim Regular Sim

14 >40 Médio Não Excelente Não

A variável dependente, “Compra Computador”, assume dois valores distintos (sim, não); ou seja existem duas classes distintas (m=2). A classe C1 corresponde a sim e a classe C2 a não. Existem 9 exemplos da classe sim e 5 exemplos da classe não. Para calcular o ganho de informação proporcionado por cada uma das variáveis de input, utilizaremos em primeiro lugar a seguinte fórmula por forma a calcular a informação necessária esperada para classificar um determinado exemplo:

( ) ( )

0

.

94

14

5

log

14

5

14

9

log

14

9

5

,

9

=

2

2

=

= I

S

Ent

De seguida necessitamos de calcular a entropia de cada variável. Começando com a variável idade, necessitamos de analisar a distribuição de exemplos com valor sim e não para cada valor de idade. Assim, vamos calcular a informação esperada para cada uma destas distribuições.

Para idade = ”<=30”

(37)

Para idade = ”31...40”

Sim=4 Não=0 Ent(31...40)=0 Para idade = ”>40”

Sim=3 Não=2 Ent(>40)=0.971

A informação necessária esperada para classificar um dado exemplo, se os exemplos se encontrarem agrupados de acordo com a variável idade será:

(

)

(

40

)

0

.

694

14

5

)

40

...

31

(

14

4

)

30

(

14

5

=

>

+

+

<=

=

Ent

Ent

Ent

idade

E

Assim, o ganho de informação com tal partição seria:

(

idade

)

=

Ent

( )

S

Ent

(

idade

)

=

0

.

246

Ganho

O leitor é convidado a proceder aos cálculos correspondentes para as restantes variáveis. Assim, os resultados serão:

• Ganho(rendimento)=0.029; • Ganho(estudante)=0.151; • Ganho(rating crédito)=0.048.

Tendo em conta que idade proporciona o maior ganho de informação de entre todas as variáveis disponíveis, será seleccionada para proceder à partição, dando origem a uma árvore idêntica à da Figura 20.

(38)

Sim Excelente Sim Médio Sim Regular Sim Baixo Não Regular Não Médio Não Excelente Não Elevado Não Regular Não Elevado Classe Rating Crédito Estudante Rendimento Sim Excelente Sim Médio Sim Regular Sim Baixo Não Regular Não Médio Não Excelente Não Elevado Não Regular Não Elevado Classe Rating Crédito Estudante Rendimento Não Excelente Não Médio Sim Regular Sim Médio Não Excelente Sim Baixo Sim Regular Sim Baixo Sim Regular Não Médio Classe Rating Crédito Estudante Rendimento Não Excelente Não Médio Sim Regular Sim Médio Não Excelente Sim Baixo Sim Regular Sim Baixo Sim Regular Não Médio Classe Rating Crédito Estudante Rendimento Sim Regular Sim Elevado Sim Excelente Não Médio Sim Excelente Sim Baixo Sim Regular Não Elevado Classe Rating Crédito Estudante Rendimento Sim Regular Sim Elevado Sim Excelente Não Médio Sim Excelente Sim Baixo Sim Regular Não Elevado Classe Rating Crédito Estudante Rendimento Idade?

Figura 20: resultado da partição do nó inicial com base na variável idade.

De notar que todos os exemplos pertencentes ao nó correspondente a idade=”31...40” pertencem à mesma classe. Neste caso, o nó será classificado sim e considerado final. A árvore completa desenvolvida pelo algoritmo é apresentada na Figura 21.

Idade?

Estudante? Sim Rating Crédito?

Não Sim

Sim Não

<=30 31…40 >40

Não Sim Excelente Regular

Idade?

Estudante? Sim Rating Crédito?

Não Sim

Sim Não

<=30 31…40 >40

Não Sim Excelente Regular

Figura 21: solução final do algoritmo C4.5 para a compra de computador.

Para explorar este exemplo de forma mais interactiva o aluno é incentivado a consultar o documento Excel C4.5.xls disponível na plataforma de elearning.

(39)

6 LINKS DE INTERESSE

• Artigo da DBMS, Data Mining Solutions Supplement, escrito por Estelle Brand e Rob Gerritsen que faz uma boa introdução às árvores de decisão: http://www.dbmsmag.com/9807m05.html. • Mais uma excelente contribuição da statsoft que com estes três textos cobre grande parte dos

temas que abordámos no módulo, como sempre de forma simples e clara:

http://www.statsoft.com/textbook/stclatre.html, http://www.statsoft.com/textbook/stcart.html

http://www.statsoft.com/textbook/stchaid.html.

• Um grande site com toneladas de informação sobre árvores de decisão da American Association for Artificial Intelligence, http://www.aaai.org/aitopics/html/trees.html.

• Um excelente site de Howard Hamilton, Ergun Gurak, Leah Findlater, and Wayne Olive, com o curso de Knowledge Discovery in Databases da universidade de Regina

(40)

BIBLIOGRAFIA

• Briemen L, Friedman JH, Olshen RA, Stone CJ., 1983, “Classification and regression trees”.: Wadsworth & Brooks, Pacific Grove Monterey, CA;

• Han, J., Kamber, M., 2001 “Data Mining: Concepts and Techniques”, the Morgan Kaufmann Series in Data Management Systems, ISBN 1-55860-901-6

• Hunt, E., Marin, J., & Stone P. 1966, “Experiments in Induction”. Academic Press. New York, NY.

• Langley, P., 1995, “Elements of Machine Learning”, Morgan and Kaufmann Publishers, ISBN-10: 1558603018

• Mitchell, T. M., 1997, “Machine Learning”, McGraw-Hill, ISBN 0071154671

• Quinlan, J. R., 1993, “C 4.5: Programs for machine learning” The Morgan Kaufmann Series in Machine Learning, San Mateo, CA: Morgan Kaufmann.

(41)

Referências

Documentos relacionados

São discutidos os conhecimentos disponíveis em termos de imagem funcional pelo método na esquizofrenia, transtornos ansiosos e do humor, nas demências e nos transtornos de

O pastor Felipe Silva de Oliveira da Terceira Igreja Batista em Jardim Bom Retiro (São Gonçalo/RJ), é convidado para apresentar uma reflexão bíblica baseada na

Para comparar a eficiência dos métodos acústico e visual, considerou-se os seguintes parâmetros: as limitações à amostragem; as taxas de detecção de cetáceos; o alcance

Esta tese trata do emprego do controle preditivo baseado no modelo (MBPC-Model Based Predictive Control) no acionamento do motor de indu¸c˜ao trif´asico, para controle de fluxo de

 A empresa realizou a partir de 02/out/06, uma reestruturação societária e jurídica, autorizada pela lei estadual número 13.570, que levou a criação de duas empresas

Neste contexto, a mídia programática surge para elevar à potência as capacidades de focalização e dinamismo das campanhas de publicidade online, trabalhando de modo

Dentre as atípicas detectadas pelo teste, 10 foram positivas para os genes cromossômicos aaiA e aaiG somente, desse modo se fossem utilizados apenas os genes

Artigo 17.. b) Promover as acções necessárias aos trabalhos de avaliação de candidaturas a financiamentos de programas e projectos de investigação cien- tífica e