Вы находитесь на странице: 1из 64

Algoritmo ID3 e C.

45 no Processo de
Mineração de Dados

Gilcimar Hoehstein
Data Mining
• Data Mining é o processo de extrair informações
desejadas em uma base de dados, que em
primeiro momento são desconhecidas.

• Data Mining permite explorar ou adicionar


informações a partir dos dados, descobrindo
relacionamentos ocultos no banco de dados.
Descoberta de Conhecimento
• O problema é que estes registros da base dados,
muitas vezes, representam apenas dados e não
conhecimento. Visando transformar estes dados
em conhecimento, surge o processo chamado de
Descoberta de Conhecimento em Bancos de
Dados, conhecido com KDD (Knowledge
Discovery in Databases)
• A KDD é uma área de grande pesquisa na
Inteligência Artificial.
Aprendizado de Máquina

• Um sistema de Aprendizado de Máquina (AM)


é um programa de computador que toma
decisões baseado em experiências
acumuladas por meio de soluções bem-
sucedidas de problemas anteriores.
• O AM é uma poderosa ferramenta para
aquisição automática de conhecimento.
Processo Indutivo
• A indução é a forma de inferência lógica que
permite obter conclusões genéricas sobre um
conjunto particular de exemplos.
• Na indução, um conceito é aprendido
efetuando inferência indutiva sobre os
exemplos apresentados. Portanto, as
hipóteses geradas através da inferência
indutiva podem ou não, dizer a verdade.
Inferência Indutiva
• A inferência indutiva é um dos principais
métodos utilizados para derivar conhecimento
novo e predizer eventos futuros.
• O aprendizado indutivo pode ser dividido em
supervisionado e não-supervisionado.
Hierarquia do Aprendizado Indutivo
• No aprendizado não-supervisionado, o indutor
analisa os exemplos e tenta determinar se
alguns deles podem ser agrupados, formando
clusters ou agrupamentos.
• No aprendizado supervisionado é fornecido ao
algoritmo de aprendizado, ou indutor, um
conjunto de exemplos de treinamento para os
quais o rótulo da classe associada é
conhecido.
Hierarquia do Aprendizado Indutivo
• Os Algoritmos ID3 e C.45 estão na categoria
de Algoritmos de Classificação
Classificação

• Analisa um conjunto de dados de treinamento


(um conjunto de objetos cuja classificação já é
conhecida) e constrói um modelo para cada
classe baseado nas características dos dados.
Uma árvore de decisão ou um conjunto de regras
de classificação é gerado por tal processo de
classificação, que pode ser usado para entender
melhor cada classe ou classificar futuros dados.
Na classificação o atributo a ser predito é
discreto, por exemplo, se o cliente é bom ou mau
pagador.
Classificação e Regressão
• A regressão é conceitualmente similar à
classificação. A principal diferença é que o
atributo a ser predito é contínuo em vez de
discreto, por exemplo, predizer o lucro ou o
prejuízo em um empréstimo.

• Classificação e regressão utilizam algoritmos


de Indução de Regras e algoritmos que geram
Árvores de Decisão.
Outros algoritmos de Classificação e
Regressão

• J48;
• Adtree;
• UserClassifier;
• PredictionNode;
• Splitter;
• ClassifierTree;
• M5Prime.
Árvore de Decisão
• Uma árvore de decisão é uma representação
de uma tabela de decisão sob a forma de uma
árvore.
• Tem a mesma utilidade da tabela de decisão.
• Trata-se de uma maneira alternativa de
expressar as mesmas regras que são obtidas
quando se constrói a tabela.
Árvore de Decisão
• A árvore de decisão chega a sua decisão pela
execução de uma seqüência de testes. Cada
nó interno da arvore corresponde a um teste
do valor de uma das propriedades, e os ramos
deste nó são identificados com os possíveis
valores de teste. Cada nó folha da árvore
especifica o valor de retorno se a folha for
atingida.
Atributo, valor do atributo e classes

• Uma árvore de decisão consiste em nós que


representam os nomes do atributos, os arcos
representam os valores dos atributos e as
folhas, que correspondem as diferentes
classes a que pertencem as entidades.
Exemplo
• Atributo: {Consumo mensal}
• Valor do atributo: {7 KW/h, 20 KW/h, 60 KW/h }
• Classe: {Gasta Pouco, Gasta Médio, Gasta Muito}
Regras if-then
• A árvore de decisão é semelhantes as regras
if-then.

• If (consumo mensal > 50 KW/h)


then Gasta Muito
Exemplo – árvore de decisão para regras de
classificação

1.     Se    (Escolaridade = “Graduação”) - 
Rico = “Não”
2.     Se    (Escolaridade = “Doutorado”) - 
      Rico = “Sim”
3.     Se    (Escolaridade = “Mestrado”) & 
(Idade = “>30”)  - Rico = “Sim”)
4.     Se    (Escolaridade = “Mestrado”) & 
(Idade = “<=30”) - Rico = “Não”)
Vantagem das árvores de decisão
• Uma grande vantagem das árvores de decisão
é que elas podem ser aplicadas a grandes
conjuntos de dados e possibilitam uma visão
real da natureza do processo de decisão,
desta forma, o resultado do algoritmo pode
ser facilmente interpretado pelo usuário.
Vantagem das árvores de decisão
• As árvores de decisão também permitem
derivar regras, regras de produção, decisão ou
classificação, as quais são gerada percorrendo
o trajeto do nó raiz até uma folha da árvore.
Como as regras são equivalentes a árvore, a
derivação de regras é interessante quando a
árvore cresce muito.
O algoritmo ID3
• Foi inventando Ross Quinlan, na Universidade
de Sydnei, Austrália em 1979.
• O ID3 usa entropia e ganho de informação
para construir a árvore de decisão.
• É o algoritmo pioneiro em indução de árvore
de decisão. É um algoritmo recursivo, baseado
em busca gulosa, onde procura um conjunto
de atributos que melhor dividem os
exemplos(amostras), gerando sub-árvores.
Portugol do ID3
Desvantagem do ID3
• A Principal limitação do ID3 é que ele só lida
com atributos discretos, não sendo possível
apresentar a ele um conjuntos de dados com
atributos contínuos. Neste caso os atributos
contínuos devem ser “discretizados”.
• O ID3 também não apresenta nenhuma forma
de tratar valores desconhecidos, ou seja,
todos os exemplos do conjunto de
treinamento devem ter valores conhecidos
para todos os seus atributos.
Desvantagem do ID3
• O algoritmo ID3 não apresenta nenhum
método de pós poda, o que poderia amenizar
a busca em árvores mais complexas.
Transformando valores contínuos
de atributos em valores discretos
• temperatura = [6 25 30 50 0 32 3 10 5 32]

• Definir o valor maximo e minimo da amostra

• Dividir a soma do valor Max e Min pelo


quantidade de classes. Ex: Quente, normal e
frio ou seja, (0 + 50) / 3 = 16,66
Transformação de atributos
contínuos em discretos
• De zero a 16,66 graus = frio
• De 16,67 a 33,33 = normal
• De 33,34 a 50 = quente Temperatura

Se t < 16,66
Se 16,67 < tSe t > 33,34
< 33,34

Frio
normal Quente
O algoritmo ID3
• O ID3 usa entropia para calcular a
homogeneidade de uma amostra. Se a amostra é
completamente homogênea a entropia é zero e
se a amostra é dividido igualmente tem a
entropia é um.
Dois Tipos de entropia
• Para construir uma árvore de decisão,
precisamos calcular dois tipos de entropia
através de tabelas de frequência da seguinte
forma:

Jogo

Sim Não
9 5
Prob = 9/14 5/14
- (9/14)*log(9/14;2) + - (5/14)*log(5/14;2)
Entropia dos dados (S1) = 0,0940
Exemplo Prático

Precisa saber se é possível jogar tênis com


Sol, frio, alta, forte. ????
Entropia dos dados da amostra

Entropia dos Dados (S1) =-0,64* LOG(0,64;2)- 0,36*LOG(0,36;2) = 0,940

Obs: se a entropia estiver fora do intervalo [0,1], 
alguma coisa no calculo está errado
O conjunto de dados é dividido sobre os valores dos
atributos

A entropia de cada valor é calculado. Então, ele é


adicionado proporcionalmente, para obter a entropia
total do atributo.
=(5/14)*entropia do sol) + (4/14* entropia do
encoberto) + (5/14) * entropia da chuva) = 0,663
Ganho de informação
• O Ganho da informação de um determinado
atributo é calculado subtraindo a Entropia total,
dos dados da entropia de cada atributo.

Entropia dos dados (S)= 0,940


Entropia de Aparência(S) = 0,663

Ganho(S, Aparencia) = 0,940 – 0,663 = 0,278


• Já foi calculado o Ganho do atributo
aparência, agora é preciso calcular dos outros
atributos (temperatura, umidade e vento)
Ganho de informação do Atributo
Temperatura

Entropia de Temperatura =(4/14)*entropia de quente) +


(6/14* entropia de agradável) + (4/14) * entropia de frio)
= 0,768
Ganho (S, Temperatura) = 0,940 – 0,768 = 0,172
Ganho de informação do Atributo
Umidade

Entropia de Umidade =(7/14)*entropia de normal)


+ (7/14* alta) = 0,788
Ganho (S, Umidade) = 0,940 – 0,788 = 0,152
Ganho de informação do Atributo
Vento

Entropia de Vento =(6/14)*entropia de forte) + (8/14*


entropia de fraco)= 0,906
Ganho (S1, Temperatura) = 0,940 – 0,906 = 0,035
Escolha do atributo com maior Ganho
de informação para ser o nó raiz
Aparência

Sol Chuvoso
Encoberto

??? SIM ???


Selecionando apenas as linhas com o
valor sol para aparência
• Repete a interação, porem agora com esta
amostra menor

• Entropia(S2) = -(2/5)*log(2/5;2) –
(3/5)*log(3/5;2) = 0,971
Escolha do melhor atributo
• Ganho (S2, temperatura) = 0,371
• Ganho (S2, umidade) = 0,971
• Ganho (S2, vento) = 0,020
• Maior (ganhos(s2)) = 0,971
Escolha do Atributo com Maior Ganho
Escolha do atributo com maior Ganho de informação
para ser o nó filho de Sol

Aparência

Sol Chuvoso
Encoberto

Umidade SIM ???


Alta
Normal
SIM
NÃO
Calculando nó que descende
chuvoso
• Agora temos que calcular o nó que descente
chuvoso. Para isto, vamos pegar as linhas do
banco de dados que a aparência apresenta
chuvoso.
Calculo da Entropia dos Dados
• Probabilidade (S3) =
• P(sim,3 /5) = 0,6
• P(não, 2/5) = 0,4

• Entropia(S3) = - 0,6 * log (0,6;2) – log (0,6;2) =


0,0971
Entropia dos atributos em relação
ao atributo-classe
• Temperatura com Jogo
Entropia dos atributos em relação
ao atributo-classe
• Umidade com Jogo
Entropia dos atributos em relação
ao atributo-classe
• Vento com Jogo
Selecione o atributo com maior
ganho de informação
• O vento é o atributo que maior contribui para
a definição do nó. Então será o nó que
descenderá chuvoso.

• Como Fraco leva somente a Sim, e Forte leva


somente a Não, estes ramos serão nós folhas.
Árvore de Decisão final
É possível jogar
tênis com Sol, frio,
alta, forte. ????

• A verificação ocorre de cima para baixo (top-


down), ele verifica primeiro o nó raiz, qual o
valor do atributo aparência? Sol, agora ele
verifica o nó umidade, qual o valor do atributo
umidade? Alta. Respota. Não
Conclusão do id3
• A construção da árvore de decisão de id3, ele
calcula o atributo que mais interfere na
classificação do atributo. Por isto, no caso do
exemplo do slide anterior, ele considera
apenas os valores Sol e Alta, ou seja, valores
dos atributos Aparência e Umidade. Assim, a
classificação se torna muito mais rápida e
menos complexa.
Algoritmo C.45
• Lida tanto com atributos discretos, como
contínuos.
• O algoritmo C.45 ignora valores
desconhecidos, ou seja, não utiliza a amostra
para os cálculos e entropia e ganho.
• Utiliza a medida de razão de ganho para
selecionar o melhor atributo que divide os
exemplo. Medida superior ao ganho de
informação do id3, gerando árvores menos
complexas.
Vantagem do C.45
• Apresenta método de pós poda da árvore de
decisão gerada, ou seja, realiza um busca de
baixo para cima, e transforma em nós folhas
aqueles nós que não representam nenhum
ganho significativo.
Razão de Ganho do C.45
• Razão de ganho = ganho / entropia

• Desta forma, o algoritmo C.45 na primeira


etapa calcula o ganho de informação para
todos os atributos. Após isso, ele considera
apenas os atributos que obtiveram o ganho de
informação acima da média, e então escolhe o
atributo com a melhor razão de ganho para
ser a raiz da árvore.
Razão de ganho
• Quinlan mostrou que a razão de ganho supera
o ganho da informação em termos de precisão
de complexidade da árvore gerada.
Métodos de Poda
• Existem dois tipos de Podas em uma árvore de
decisão. A Pré-poda e a Pós-Poda

• A pré-poda é realizada durante o processo da


construção da árvore, em que o processo
pode parar de dividir o conjunto de elementos
e transformar o nó corrente em um nó folha
da árvore.
Pós-Poda
• A Pós-poda é utilizada após a construção da
árvore de decisão, removendo ramos
completos, onde tudo que está abaixo de um
nó interno é excluído e este nó é
transformado em folha, representando a
classe mais freqüente do ramo.
Poda baseada em Erro (Error based
pruning)
• Utilizado pelo C.45
• Pós-Poda
• Utiliza média, desvio padrão, distribuição
binomial,nível de confiança, estimativa de
erro.
Exemplo – Poda baseada em Erro
Métodos de Poda
• Existem muitos outros métodos de poda, cost
complexity pruning, reduced error pruning,
critical value pruning, pessimistic prunning,
entre outros.
• Tratados de maneira separada no C.45
O Weka
• O Weka é uma ferramenta permite a importação de
arquivos arff. Já disponibiliza o uso dos algoritmos id3
e C.45, porem, um similar, chamdo j48. Nestes
arquivos já devem estar definidos o atributo-classe
@relation jogo; Os atributos, @attribute Aparencia
{Sol, Encoberto, Chuvoso} como por exemplo; e os
dados da amostra, colocados depois da linha @data.
Veja o próximo slide para ver um exemplo de um
arquivo arff.
Arquivo arff
Demonstração no Weka
• Na tela inicial escolha o modo Explorer.
• Abra o arquivo jogo.arff no web. No botão open
file, na aba Preprocess.
• Aplicando o algoritmo id3, na aba classify, no
botão choose.
• Escolha a opção use test set para usar os dados
do arquivo para treinamento.
• E clique em Start
Resultado
Tela de resultados
• Pode-ser observar a construção da árvore de
decisão destacado em vermelho
Escolhendo j48
• Permite modo gráfico da árvore de
decisão.Junto com a visualização da
quantidade de amostras em cada classe.
Exercício
1) Terminar a construção da árvore, do Nó que
descende Chuvoso seguindo o algoritmo ID3
2) Monte a Regras de classificação da árvore a
seguir:
Custo das
Viagens

Barato Caro
padrão

Gênero
Trem Carro

Masculino Feminino

Transporte

Ônibus 0 1

Ônibus Trem