Classificação - conceitos básicos, árvores de decisão, avaliação de resultados
Mineração de Dados 2011
Luís Rato
(Capítulo 4 do livro “Introduction to Data Mining”)
Universidade de Évora, 2011 Mineração de dados / Data Mining 2
Classificação: Definição
● Dado um conjunto de dados em que cada registo correspondente a um objecto tem vários atributos sendo uma deles a classe.
● Encontar um modelo (fórmula, algoritmo,
função...) que preveja a classe em função dos
atributos.
Classificação: Objectivo
● Objectivo: face a novos dados (sem classe determinada) prevêr a classe de cada novo objecto, com o máximo de precisão possível.
● Usalmente, no processo de construção do
modelo, divide-se os dados em “dados de treino”,
usados para treinar o modelo proposto, e “dados
de teste”, para validar o resultado, através de uma
estimativa da sua qualidade.
Universidade de Évora, 2011 Mineração de dados / Data Mining 4
Exemplos
● Prever se um tumor é maligno ou benigno
● Classificar transações de cartão de crédito como: “legítimas” ou “fraude”
● Classificar a forma (estrutura) das proteínas como: alpha-helix, beta-sheet, ou aleatório
● Classificar documentos ou notícias em função do tema principal: “economia”,
“tempo”, “viagens”, “desporto”
Técnicas de classificação
● Árvores de decisão
● Regras
● Redes neuronais
● Bayesiano - Naïve Bayes e redes Bayesianas
● SVMs – Máquinas de vector de Suporte
● Lazy - Métodos baseados em instâncias
Universidade de Évora, 2011 Mineração de dados / Data Mining 6
Exemplo de uma árvore de decisão
Tid Refund Marital Status
Taxable
Income Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
10
no m in al
nu m ér ico
Cl as se n om in al
Refund
MarSt
TaxInc
YES NO
NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Splitting Attributes
Dados de Treino Modelo: árvore de
decisão
Outro exemplo
Tid Refund Marital Status
Taxable
Income Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
10
MarSt
Refund
TaxInc
YES NO
NO
NO
Yes No
Married Single,
Divorced
< 80K > 80K
Pode haver mais do que uma árvore
que se adaptam aso dados, com igual
sucesso
Universidade de Évora, 2011 Mineração de dados / Data Mining 8
Modelo aplicado a dados de teste
Refund
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
10
Dados de teste
Iniciar pela raiz da árvore
Modelo aplicado a dados de teste
Refund
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
10
Dados de teste
Universidade de Évora, 2011 Mineração de dados / Data Mining 10
Modelo aplicado a dados de teste
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
Refund
10Dados de teste
Modelo aplicado a dados de teste
Refund
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
10
Dados de teste
Universidade de Évora, 2011 Mineração de dados / Data Mining 12
Modelo aplicado a dados de teste
Refund
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
10
Dados de teste
Modelo aplicado a dados de teste
Refund
MarSt
TaxInc
NO YES NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable
Income Cheat
No Married 80K ?
10
Resultado = “No”
Universidade de Évora, 2011 Mineração de dados / Data Mining 14
Construção da árvore de decisão
● Muitos Algoritmos:
– Algoritmo de Hunt (simples) – CART
– ID3, C4.5 (baseados no alg de hunt)
– SLIQ,SPRINT
Algoritmo de Hunt
●
Seja D
to conjunto de objectos dos dados de treino que chegam ao nó t
– Se D
ttem tem objectos que têm classe y
t, então a folha é identificada com y
t– Se D
té conjunto vazio, então a folha é identificada com a classe por default, y
d– Se D
tcontém tem objectos que têm várias
classes , usar um teste dos atributos, para dividir os dados em subconjuntos menores.
Aplicar recursivamente a cada subconjunto.
Tid Refund Marital Status
Taxable
Income Cheat
1 Yes Single 125K No 2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married 60K No 7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No 10 No Single 90K Yes
10
D
t?
Universidade de Évora, 2011 Mineração de dados / Data Mining 16
Algoritmo de Hunt
Don’t Cheat
Refund
Don’t Cheat
Don’t Cheat
Yes No
Refund
Don’t Cheat
Yes No
Marital Status
Don’t Cheat
Cheat
Single,
Divorced Married
Taxable Income
Don’t Cheat
< 80K >= 80K
Refund
Don’t Cheat
Yes No
Marital Status
Don’t Cheat
Cheat
Single,
Divorced Married
Tid Refund Marital Status
Taxable
Income Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No 5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
10
Construção da árvore
● Dividir os registos baseados num teste dos atributos que optimiza um certo critério
● Questões
– Como dividir ?
Como definir o teste dos atributos?
Como determinar a melhor maneira de dividir os dados?
– Definir quando parar...
Universidade de Évora, 2011 Mineração de dados / Data Mining 18
Teste dos atributos e divisão
● Depende dos atributos – Nominal
– Ordinal – Contínuo
● Depende do modo de dividir – 2 ramos
– Vários ramos
Divisão de atributos nominais
● N ramos: tantos quantos os valores.
● 2 ramos (binária): tem de encontar a melhor divisão.
CarType
Family
Sports
Luxury
CarType
{Family,
Luxury} {Sports}
CarType
{Sports,
Luxury} {Family} ou
Universidade de Évora, 2011 Mineração de dados / Data Mining 20
Divisão de atributos contínuos
● Duas abordagens – Discretização
estática – discretiza no início
dinâmica – intervalo igual, frequência igual, clustering.
– Decisão binária: (A < v) or (A ≥ v)
Considerar todas as hipótese de v e escolher a melhor
Pode ser muito “pesada” computacionalmente
Como definir a melhor divisão?
Antes da divisão: 10 objectos da classe 0, 10 objectos da classe 1
Qual a melhor?
Universidade de Évora, 2011 Mineração de dados / Data Mining 22
Como definir a melhor divisão?
● Nós com classes mais homogénias são melhores
● É necessária uma medida de “pureza”
Não homogénio grande impureza
Homogénio
grande impureza
Medida de pureza
● Entropia
● Erros de classificação
● Outros (índice de gini, ….)
Universidade de Évora, 2011 Mineração de dados / Data Mining 24
Como escolher a melhor?
B?
Yes No
Node N3 Node N4
A?
Yes No
Node N1 Node N2
Antes da divisão
C0 N10 C1 N11
C0 N20 C1 N21
C0 N30 C1 N31
C0 N40 C1 N41 C0 N00
C1 N01
M0
M1 M2 M3 M4
M12 M34
Gain = M0 – M12 vs M0 – M34
Critério baseado na informação
● Entropia num nó t:
(p( j | t) é a frequência relativa da classe j no nó t ).
– Measures homogeneity of a node.
Máxima entropia (mínima informação) quando as classes são igualmente distribuídas
Entropia ( t )=− ∑
j
p ( j ∣t ) log p ( j ∣t )
Universidade de Évora, 2011 Mineração de dados / Data Mining 26
Exemplo
C1 0
C2 6
C1 2
C2 4
C1 1
C2 5
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Entropia = – 0 log 0 – 1 log 1 = – 0 – 0 = 0
P(C1) = 1/6 P(C2) = 5/6
Entropia = – (1/6) log
2(1/6) – (5/6) log
2(1/6) = 0.65
P(C1) = 2/6 P(C2) = 4/6
Entropia = – (2/6) log
2(2/6) – (4/6) log
2(4/6) = 0.92
Entropy ( t )=− ∑
j
p ( j∣t ) log 2 p ( j ∣t )
Baseada na informação
● Ganho de informação
O nó pai, p é dividido em k partes;
n
ié o número de objectos na partição i
– Escolher a que maximiza o ganho – ID3 e C4.5
– Tende a favorecer muitas partições
GANHO split = Entropia ( p )− ( ∑ i =1 k n n i Entropia ( i ) )
Universidade de Évora, 2011 Mineração de dados / Data Mining 28
Baseada na informação
● Rácio de ganho:
– Usado no C4.5
GainRATIO split = GAIN Split SplitINFO
SplitINFO=− ∑
i= 1
k n i
n log n i
n
Comparação de critérios
2-classes:
Universidade de Évora, 2011 Mineração de dados / Data Mining 30