Classificação e Análise de Dados usando Árvore de Decisão

 

Olá, leitores! Estamos de volta e vamos falar sobre árvore de decisão, provavelmente um dos métodos mais antigos de classificação e análise de dados.

 

As árvores de decisão são uma representação simples do conhecimento e uma forma eficiente de construir classificadores que podem predizer valores de determinados atributos de um conjunto de dados.

 

A modelagem gráfica de uma árvore consiste de folhas, também chamadas de nós, e ramos. Onde cada nó representa o conjunto de dados de uma classificação, esta por sua vez representada pelos ramos.

 

24-10-2007pic01.JPG 

Figura 1 – Árvore de Decisão em Níveis

 

Os níveis mostrados acima representam a classificação dos dados. Cada nível exibe a que classe foi encontrada para aquele dataset. O primeiro nó é a raiz, o grupo no qual todos os dados se enquadram.

 

Vejam: a árvore vai se ramificando sobre os dados na tentativa de identificar quais os melhores ramos para cada informação. Estas tentativas geram uma regra, ou melhor, um conjunto de regras que quando aplicado ao nó gera a classificação. Para os programadores procedurais é como implementar diversos IF-ELSE-THEN para que a classificação seja feita.

 

Existem diversos algoritmos conhecidos, que fazem a implementação de uma árvore de decisão. Não existe uma forma precisa para determinarmos qual o melhor algoritmo. O desempenho deles pode variar de acordo com o volume de dados e com a situação em que estão sendo usados.

 

Um dos primeiros algoritmos desenvolvidos foi o ID3. Seu conceito de criação usou a idéia dos sistemas de inferência e dos conceitos de aprendizado de máquina. Em pouco tempo outros algoritmos também surgiram: C4.5, CART (Classification and Regression Trees), CHAID (Chi Square Automatic Interaction Detection) e outros mais.

 

Até aqui tudo bem, mas vamos dar uma olhada na prática como fazer uma árvore de decisão. Pra isso vou usar o ambiente de Data Mining da Oracle (Banco e GUI).

 

Os dados que vamos usar foram utilizados como exemplo em um artigo da Oracle Magazine algum tempo atrás e eu guardei comigo, não me recordo de qual edição.

 

 

SQL> desc customer_satisfaction

 Nome                                                Nulo?            Tipo

 ---------------------------------      --------------- --------------

 CUSTOMER_SATISFACTION_ID             NOT NULL       NUMBER(10)

 PRODUCT                                                             VARCHAR2(100)

 VERSION                                                              NUMBER(2)

 LAST_UPGRADE_YEAR                                             VARCHAR2(4)

 FEEDBACK                                                            VARCHAR2(10)

 

 

24-10-2007pic02.JPG 

Figura 2 – Tela de Dados da Tabela Customer Satisfaction

 

Para criarmos a nossa árvore de decisão vamos até o menu Activity e selecionamos a opção Build. A tela de wizard para selecionarmos o que iremos fazer será mostrada:

 

24-10-2007pic03.JPG 

Figura 3 – Tela de Wizard

 

Na próxima tela nós selecionamos quais os dados que iremos classificar.

 

24-10-2007pic04.JPG 

Figura 4 – Seleção de Dados

 

Nós vamos então selecionar todos os campos, menos o customer_satisfaction_id; ele será a nossa chave primária seqüencial, então o seu conteúdo é irrelevante para a análise.

 

Agora precisamos selecionar qual atributo servirá como a variável resposta e quais as variáveis independentes. Neste caso, vamos classificar os dados de acordo com a variável feedback, ela será nossa variável de resposta, enquanto todas as outras servirão como variáveis independentes.

 

24-10-2007pic05.JPG 

Figura 5 – Seleção de Variáveis

 

Pronto. Mais um click e criamos um processo que irá gerar a nossa árvore. Vejam abaixo:

 

24-10-2007pic06.JPG 

Figura 6 – Processo de criação da árvore.

 

No item Build da tala de processos existe um ícone chamado Result. Clicando nele podemos ver o resultado da árvore.

 

24-10-2007pic07.JPG 

Figura 7 – Resultado da Árvore

 

Na figura acima podemos ver os nós criados pela árvore e ao clicar sobre cada nó, vemos quais regras criadas, fazendo com que os registros da tabela que atenderem a esta regra sejam ali agrupados.

 

Construir esta árvore foi extremamente simples, o que acaba mostrando que não é necessário ser nenhum super matemático para entender ou criar uma árvore para analisar sua massa de dados. É claro que dadas às proporções da análise que se pretende fazer a complexidade para a construção irá aumentar um pouco, mas mesmo assim é de fácil compreensão.

 

Bom, pessoal, é isso! Espero que vocês tenham aproveitado esta coluna e até a próxima.

 

Um forte abraço a todos.

 

Vander Emiro Muniz

vmuniz@triscal.com.br

www.triscal.com.br