Classificação
Arvores de Decisão
AULAS 8 e 9
Data Mining
Classificação
Nome
Idade
Renda
Profissão
Classe
Daniel
≤ 30
Média
Estudante
Sim
João
31..50
Média-Alta
Professor
Sim
Carlos
31..50
Média-Alta Engenheiro
Maria
31..50
Baixa
Vendedora
Não
Paulo
≤ 30
Baixa
Porteiro
Não
Otavio
> 60
Média-Alta Aposentado
Sim
Não
SE Idade ≤ 30 E Renda é Média ENTÃO Compra-Produto-Eletrônico = SIM.
.
Mestrado em Ciencia da Computacao
2
Etapas do Processo
Amostras
Classificadas
REGRAS
Banco de
Testes
Classificador
REGRAS CONFIÁVEIS
Mestrado em Ciencia da Computacao
3
Métodos de Classificação

Classificadores eager (espertos)
A partir da amostragem, constroem um modelo de classificação capaz de classificar novas tuplas.
Uma vez pronto o modelo, as amostras não são mais utilizadas na classificação de novos
objetos (tuplas)





Arvores de Decisão
Redes Neuronais
Redes Bayseanas
Máquinas de Suporte Vetorial
Classificadores lazy (preguiçosos)
Cada nova tupla é comparada com todas as amostras e é classificada segundo a classe
da amostra à qual é mais similar.

Método kNN (k-nearest-neighbor)

Case-Based Reasoning (CBR)

Outros Métodos


Algoritmos Genéticos
Conjuntos Difusos
Mestrado em Ciencia da Computacao
4
Critérios de Comparação dos Métodos





Acurácia – capacidade de classificar corretamente
novas tuplas
Rapidez – tempo gasto na classificacao
Robustez – habilidade de classificar corretamente em
presenca de ruidos e valores desconhecidos
Escalabilidade – eficiencia do classificador em
grandes volumes de dados
Interpretabilidade – facilidade de um usuario
entender as regras produzidas pelo classificador
Mestrado em Ciencia da Computacao
5
Acurácia – Taxa de erros



Acc(M) = porcentagem das tuplas dos dados de
teste que sao corretamente classificadas.
Err(M) = 1 – Acc(M)
Matriz de Confusão
Classes Preditas
C1
Classes Reais
C2
C1
Positivos
Falsos
verdadeiros Negativos
C2
Falsos
Positivos
Negativos
verdadeiros
Mestrado em Ciencia da Computacao
6
Outras medidas mais precisas

Exemplo : acc(M) = 90%
C1 = tem-câncer (4 pacientes)
C2 = não-tem-câncer (500 pacientes)
Classificou corretamente 454 pacientes que não tem câncer
Não acertou nenhum dos que tem câncer
Pode ser classificado como “bom classificador”
mesmo com acurácia alta ?
% pacientes classificados corretamente

Sensitividade = true-pos
com câncer dentre todos os que
pos
realmente tem câncer

Especificidade = true-neg
neg
% pacientes classificados corretamente

Precisão
=
true-pos
true-pos + falso-pos
com câncer dentre todos os que foram
classificados com câncer
Mestrado em Ciencia da Computacao
7
Processo de Classificação
Amostras
Deriva Modelo
(Regras)
Calcula Acuracia
Dados
Dados
de teste
Mestrado em Ciencia da Computacao
8
Preparação dos Dados



Limpeza dos dados : remove ruidos e resolve
problemas de dados incompletos
Análise de Relevância : elimina atributos
irrevelantes para a classificação
Transformação dos dados



Categorização
Generalização
Ex: Rua pode ser substituido por Cidade
Normalização : todos os valores dos atributos em [0,1]
Mestrado em Ciencia da Computacao
9
Árvore de Decisão
IDADE
≤ 30
>60
31-50
51-60
PROFISSÃO
RENDA
Não
B
Sim
Med
M
Não
Sim
M-A
Prof
A
Sim
Sim
Sim
Sim
Eng
Vend
Não
Sim
Se Idade ≤ 30 e Renda é Baixa então Não compra Eletrônico
Se Idade = 31-50 e Prof é Médico então compra Eletrônico
Mestrado em Ciencia da Computacao
10
Como criar uma Árvore de Decisão
– Algoritmo ID3
A
CASO 1
B
C
CLASSE
a1 b1 c1
C1
a1 b2 c1
X
a2 b1 c1
X
a2 b2 c2
X
a1 b2 c2
X
X
Mestrado em Ciencia da Computacao
11
Como criar uma Árvore de Decisão
A
CASO 2
B
C
CLASSE
a1 b1
c1
X
a1 b2
c1 A
X
a2 b1
c1
Y
a2 b2
c2
X
Y
a1
A
B
C
a1 b2 c2
CLASSE
a1
b1
c1
a1
b2
a1
b2
Atributo-Teste =
a2
O que mais reduz
a entropia
A
B
C
CLASSE
X
a2
b1
c1
Y
c1
X
a2
b2
c2
X
c2
Y
LISTA-ATRIBUTOS = { A, B, C }
Mestrado em Ciencia da Computacao
12
Como criar uma Árvore de Decisão
A
a1
a2
A
BC C
a1
b1
c1
X
a1
b2
c1
X
A
a1
B
b2 Cc2 CLASSE
Y
c1
X
Atributo-Teste =
CLASSE
a1 b1 c1
X
a1 b2 c1
X
O que mais reduz a entropia
=C
c2
A
Y
B
C
a1 b2 c2
CLASSE
Y
LISTA-ATRIBUTOS = { B, C }
Mestrado em Ciencia da Computacao
13
Qual é o Atributo-Teste ?

Divide-se o nó segundo cada atributo.

Para cada divisão calcula-se a entropia
produzida caso fosse escolhido este atributo.

Considera-se o atributo cuja divisão resulta
numa maior redução da entropia.
Mestrado em Ciencia da Computacao
14
Informação ganha na divisão

Entrop(A) = -NC1 log2 NC1 - NC2 log2 NC2
Tot

Tot
Tot
Tot
Entrop(D) = NF1 * Entrop(F1) + NF2 * Entrop(F2)
Tot
Tot

Info(Divisão) = Entrop(A) – Entrop (D)

Maior Info(Divisão)  Atributo escolhido
Mestrado em Ciencia da Computacao
15
Um Exemplo
Aparência
Temperatura
Humidade
Vento
Classe
Sol
Quente
Alta
Não
Ruim
Sol
Quente
Alta
Sim
Ruim
Encoberto
Quente
Alta
Não
Bom
Chuvoso
Agradavel
Alta
Não
Bom
Chuvoso
Frio
Normal
Não
Bom
Chuvoso
Frio
Normal
Sim
Ruim
Encoberto
Frio
Normal
Sim
Bom
Sol
Agradavel
Alta
Não
Ruim
Sol
Frio
Normal
Não
Bom
Chuvoso
Agradavel
Normal
Não
Bom
Sol
Agradavel
Normal
Sim
Bom
Encoberto
Agradavel
Alta
Sim
Bom
Encoberto
Quente
Normal
Não
Bom
Chuvoso
Agradavel
Alta
Sim
Ruim
Mestrado em Ciencia da Computacao
16
1a divisão possível : Aparência
APARÊNCIA
Sol
Bom
Bom
Bom
Ruim
Ruim
Enc
Bom
Bom
Bom
Bom
Chuva
Bom
Bom
Bom
Ruim
Ruim
Entrop(D) = 5/14 * Entrop(F1) + 4/14*Entrop(F2) + 5/14*Entrop(F3)
= 0.693
Entrop(F1) = -3/5*log2(3/5) - 2/5*log2 (2/5) = 0.971
Entrop(F2) = - 4/4*log2 (4/4) = 0
Entrop(F3) = - 3/5*log2(3/5) - 2/5*log2(2/5) = 0.971
Mestrado em Ciencia da Computacao
17
Redução da Entropia
Entrop(A) = - (9/14 * log2 (9/14) + 5/14* log2(5/14)) =
= 0.940
INFO(APARÊNCIA) = Entrop(A) – Entrop(D) =
= 0.940 - 0.693 = 0.247
Mestrado em Ciencia da Computacao
18
Comparando as 4 possibilidades

Info(Aparência) = 0.247

Info(Temperatura) = 0.029

Info(Humidade) = 0.152

Info(Vento) = 0.020
Mestrado em Ciencia da Computacao
19
Algoritmo ID3

Input: Banco de dados de amostras A (com os valores dos
atributos categorizados), lista de atributos Cand-List

Output : Uma árvore de decisão
Begin
Gera-árvore(A, Cand-List)
End
Mestrado em Ciencia da Computacao
20
Algoritmo ID3
Gera-árvore(A, Cand-List)
Cria um nó N; Associa a este nó o banco de dados A
Se todas as tuplas de A são da mesma classe C: transforma N numa folha com label C e
PÁRA
Caso contrário: Se Cand-List = vazio então transforma N numa folha com label igual a
classe mais frequente de A
Caso contrário: X:= Ganho(Cand-List)
% esta função retorna o atributo X com maior ganho de informação (que causa maior
redução de entropia)
Etiqueta N com o atributo X
Para cada valor a do atributo X




5.
6.
1.
2.
3.
Cria nó-filho F ligado a X por um ramo com label a e associa a este nó o
conjunto A’ de amostras que tem X = a
Se A’ é vazio: transforma o nó F numa folha com label C onde C é a classe
mais frequente de A
Caso contrário: chama a rotina Gera(A’, Cand-List-{X}) e associa ao nó F a
árvore resultante deste cálculo.
Mestrado em Ciencia da Computacao
21
Implementações

Christian Borgelt's Webpages
http://www.borgelt.net//software.html
Software Weka
Machine Learning Software in Java

http://www.cs.waikato.ac.nz/ml/weka/
Dados reais para testes
UCI Machine Learning Repository

http://archive.ics.uci.edu/ml/datasets.html
Mestrado em Ciencia da Computacao
22
Exercicio : amostras
A
B
C
D
CLASSE
a1
b1
c1
d1
SIM
a1
b1
c2
d1
NAO
a2
b2
c1
d1
SIM
a2
b2
c2
d2
NAO
a1
b2
c2
d1
NAO
a2
b1
c2
d2
SIM
a3
b2
c2
d2
SIM
a1
b3
c1
d1
SIM
a3
b1
c1
d1
NAO
Mestrado em Ciencia da Computacao
23
Exercicio - Testes
A
B
C
D
CLASSE
a2
b2
c2
d1
SIM
a1
b1
c2
d2
NÃO
a2
b2
c1
d3
SIM
a2
b2
c2
d1
SIM
a1
b2
c2
d2
NÃO
a2
b1
c2
d1
SIM
a3
b3
c2
d2
SIM
a1
b3
c1
d1
NÃO
a3
b3
c1
d1
NÃO
Mestrado em Ciencia da Computacao
24
Acurácia, Sensividade, Precisão
A
B
C
D
a2
b2
c2
d1
a1
b1
c2
d2
a2
b2
c1
d3
a2
b2
c2
d1
a1
b2
c2
d2
a2
b1
c2
d1
a3
b3
c2
d2
a1
b3
c1
d1
a3
b3
c1
d1
Mestrado em Ciencia da Computacao
CLASSE
25
Download

Slides- Classificação