Title: Minera
1Mineração de dados
- Classificação conceitos básicos e árvores de
decisão - Apresentação adaptada do material de apoio do
livro Introduction to Data Mining - Tan, Steinbach, Kumar
2Classificação Definição
- Dada uma coleção de registros (conjunto de
treinamento,training set ) - cada registro contém um conjunto de atributos, e
um dos atributos é a classe. - Encontre um modelo para o atributo classe como
uma função dos valores de outros atributos. - Objetivo a classe deve ser atribuída tão
acuradamente quanto possível para novos
registros. - Um conjunto de teste (test set) é usado para
determinar a acurácia do modelo. Geralmente o
conjunto de dados é dividido em conjunto de
treinamento e conjunto de teste.
3Ilustrando a Tarefa de Classificação
4Exemplos de Tarefas de Classificação
- Predizer se um tumor é benigno ou maligno
- Classificar transações de cartões
- de crédito como legítimas ou
- fraudulentas
- Classificar estruturas secundárias de
- proteínas como alpha-helix,
- beta-sheet, or random coil
- Categorizar textos como da área de finanças,
- previsão de tempo, esportes, cultura, etc.
5Técnicas de Classificação
- Métodos baseados em árvores de decisão
- Métodos baseados em regras
- Raciocínio baseado em memória
- Redes neurais
- Naïve Bayes e Redes Bayesianas
- Máquinas de Vetores de Suporte (Support Vector
Machines)
6Exemplo de uma árvore de decisão
Atributo teste
Refund
Yes
No
MarSt
NO
Married
Single, Divorced
TaxInc
NO
lt 80K
gt 80K
YES
NO
Modelo árvore de decisão
Dados de treinamento
7Outro exemplo de árvore de decisão
contínuo
categórico
categórico
classe
Single, Divorced
MarSt
Married
Refund
NO
No
Yes
TaxInc
lt 80K
gt 80K
YES
NO
Pode haver mais de um árvore para o mesmo
conjunto de dados
8Classificação usando árvores de decisão
Decision Tree
9Aplicando o modelo nos dados de teste
Dado para teste
Comece pela raíz da árvore.
10Aplicando o modelo nos dados de teste
Dado para teste
11Aplicando o modelo nos dados de teste
Dado para teste
Refund
Yes
No
MarSt
NO
Married
Single, Divorced
TaxInc
NO
lt 80K
gt 80K
YES
NO
12Aplicando o modelo nos dados de teste
Dado para teste
Refund
Yes
No
MarSt
NO
Married
Single, Divorced
TaxInc
NO
lt 80K
gt 80K
YES
NO
13Aplicando o modelo nos dados de teste
Dado para teste
Refund
Yes
No
MarSt
NO
Married
Single, Divorced
TaxInc
NO
lt 80K
gt 80K
YES
NO
14Aplicando o modelo nos dados de teste
Dado para teste
Refund
Yes
No
MarSt
NO
Assign Cheat to No
Married
Single, Divorced
TaxInc
NO
lt 80K
gt 80K
YES
NO
15Classificação com árvore de decisão
Decision Tree
16Indução de árvores de decisão
- Vários algoritmos
- Hunts Algorithm (um dos primeiros)
- CART
- ID3, C4.5
- SLIQ,SPRINT
17Estrutura geral do algorítmo de Hunt
- Seja Dt o conjunto de registros de teste que
alcança o nodo t - Procedimento geral
- Se Dt só contém registros que pertencem a mesma
classe yt, então t é um nodo folha rotulado como
yt - Se Dt é um conjunto vazio, então t é um nodo
folha rotulado com a classe default, yd - Se Dt contém registros que pertencem a mais de
uma classe, use um atributo teste para dividir os
dados em subconjuntos menores. Recursivamente
aplique o procedimento para cada subconjunto.
Dt
?
18Hunts Algorithm
Dont Cheat
19Indução da árvore
- Estratégia gulosa.
- Divida os registros baseado no atributo teste que
otimiza um certo critério. - Questões
- Determine como dividir os registros
- Como especificar qual o atributo teste?
- Como determinar a melhor divisão?
- Determine quando parar de dividir
20Como especificar qual o atributo teste?
- Depende do tipo dos atributos
- Nominal (categórico,...)
- Ordinal
- Contínuo
- Depende do tipo de divisão
- divisão binária
- divisão em múltiplos caminhos
21Divisão baseada em atributos nominais
- Divisão múltipla Use tantas partições quantos
forem os valores distintos do atributo. - Divisão binária Divide em dois subconjuntos.
Necessidade de encontrar o particionamento
ótimo.
OU
22Divisão baseada em atributos ordinais
- Divisão múltipla Use tantas partições quantos
forem os valores distintos do atributo - Divisão binária Divide em dois subconjuntos.
Necessidade de encontrar o particionamento
ótimo. - E esta divisão?
OU
23Divisão baseada em atributos contínuos
- Diferentes formas de tratar
- Discretização para formar um atributo ordinal
categórico - Estático discretizar uma vez no início
- Dinâmico intervalos podem ser determinados por
mesmo tamanho, mesma freqüência, clustering. - Decisão binária (A lt v) or (A ? v)
- considera todas as divisões possíveis e usa a
melhor
24Divisão baseada em atributos contínuos
25Indução de árvores
- Estratégia gulosa.
- Divida os registros baseado no atributo teste que
otimiza um certo critério. - Questões
- Determine como dividir os registros
- Como especificar qual o atributo teste?
- Como determinar a melhor divisão?
- Determine quando parar de dividir
26Como determinar a melhor divisão
Antes da divisão 10 registros da classe 0,
10 registros da classe 1
Qual divisão é a melhor?
27Como determinar a melhor divisão
- Estratégia gulosa
- Nós com distribuição de classe homogenea são
preferidos - Necessita da medida da impureza do nó
Não-homogênea, Alto grau de impureza
Homogêneo, baixo grau de impureza
28Medidas de impureza de um nó
- Índice de Gini
- Entropia
- Erro de classificação
29Como encontrar a melhor divisão?
Antes da divisão
A?
B?
Sim
Não
Sim
Não
Nodo N1
Nodo N2
Nodo N3
Nodo N4
Ganho M0 M12 vs M0 M34
30Medida da impureza GINI
- Índice Gini para um nó t
- (Nota p( j t) é a freqüência relativa da
classe j no nó t). - Máximo (1 - 1/nc) quando os registros estão
igualmente distribuídos entre todas as classes
(pior) - Mínimo (0.0) quando todos os registros pertencem
a uma classe (melhor)
31Exemplos do cálculo do índice GINI
P(C1) 0/6 0 P(C2) 6/6 1 Gini 1
P(C1)2 P(C2)2 1 0 1 0
P(C1) 1/6 P(C2) 5/6 Gini 1
(1/6)2 (5/6)2 0.278
P(C1) 2/6 P(C2) 4/6 Gini 1
(2/6)2 (4/6)2 0.444
32Divisão baseda no índice GINI
- Usado nos métodos CART, SLIQ, SPRINT.
- Quando um nó p é dividido em k partições
(filhos), a qualidade da divisão é calculada
como, -
- onde, ni número de registros no filho i,
- n número de registros no nó p.
33Índice Gini para atributos categóricos
Multi-way split
Binary split (find best partition of values)
34Atributos contínuos cálculo do índice Gini
- Usar decisão binária baseada em um valor
- Várias possibilidades para a escolha do valor de
corte - Número de possíveis cortes número de valores
distintos - Cada valor de corte tem uma matriz associada
- Contadores de classe para cada partição possível,
A lt v and A ? v - Método simples para escolher o melhor valor de
corte - Para cada v, varra os dados para realizar a
contagem e calcular o índice Gini - Computacionalmente ineficiente! Reptição do
trabalho.
35Atributos contínuos cálculo do índice Gini
- Para uma computação eficiente para cada atributo
contínuo, - Classifique os valores do atributo em ordem
crescente - percorra os dados, atualizando a matriz de
contadores e calculando o índice Gini - Escolha a posição de corte que tem o menor índice
Gini
36Divisão baseada em entropia
- Entropia em um nó t
- (Nota p( j t) é a freqüência relativa da
classe j no nó t). - Mede a homogeneidade de um nó.
- Máximo (log nc) quando os registros estão
igualmente distribuídos entre todas as classes - Mínimo (0.0) quando todos os registros pertencem
a uma classe - O cálculo baseado em entropia é similar ao
baseado no índice Gini
37Exemplos de cálculo da entropia
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) log2 (1/6) (5/6) log2 (1/6) 0.65
P(C1) 2/6 P(C2) 4/6 Entropia
(2/6) log2 (2/6) (4/6) log2 (4/6) 0.92
38Divisão baseada em entropia ...
- Ganho de Informação (Information Gain)
- O nó pai p é dividido em k partições
- ni é o número de registros na partição i
- Mede a redução da entropia em função da divisão.
Escolhe a divisão que obtém maior redução
(maximiza o ganho) - Usado nos métodos ID3 e C4.5
- Desvantagem Tende a preferir divisões que
resultam em grande número de partições, cada uma
delas sendo pequena mas pura.
39Splitting Based on INFO...
- Razão de ganho (Gain Ratio)
- O nó pai p é dividido em k partições
- ni é o número de registros na partição i
- Ajusta o Ganho de Informação pela entropia do
particionamento (SplitINFO). Particionamento de
alta entropia (grande número de pequenas
partições) é penalizado. - Usado no C4.5
- Projetado para evitar as desvantagens do Ganho de
Informação
40Exemplo
41Entropia e Ganho de Informação
- Considerando apenas 2 valores possíveis, a
entropia é dada pela fórmula - Entropia (S) - (p log2 p p- log2 p-)
- Onde
- S é a totalidade de amostras do conjunto (todos
os registros) - p é a proporção de amostras positivas
- p- é a proporção de amostras negativas
- Exemplo
- Se S é uma coleção de 14 exemplos com 9
instâncias positivas e 5 negativas, então - Entropia (S) - (9/14) Log 2 (9/14) (5/14) Log
2 (5/14) 0.940
42Nodo raiz
- Selecionando o melhor atributo
- Entropia(S) - 9/14 log2 (9/14) - 5/14 log 2
(5/14) 0,940
43Escolha do próximo atributo
44Escolha o próximo atributo
- Qual é o melhor atributo?
- Smédio C1,C2,C8,C9,C11
- Gain (Smédio, idade) 0,971 - (2/5)0 - (2/5)1 -
(1/5)0 0,571 - Gain (Smédio, salário) 0,971 - (3/5)0 - (2/5)0
0,971 - Gain (Smédio, conta) 0,971 - (3/5)0,918 -
(2/5)1 0,020
45C1,C2,...C14 9, 5-
montante
médio
baixo
alto
C1,C2,C8,C9,C11 2, 3-
C3,C7,C12,C13 4, 0-
C4,C5,C6,C10,C14 3, 2-
?
salário
sim
baixo
alto
C1,C2,C8 0, 3-
C9,C11 2, 0-
46Resultado
47Divisão baseada em erro de classificação
- Erro de classificação no nó t
- Mede o erro de classificação em um nó.
- Máximo (1 - 1/nc) quando os registros são
igualmente distribuídos entre todas as classes
(pior) - Mínimo (0.0) quando todos os registros pertencem
à mesma classe (melhor)
48Exemplos de cálculo de erro de classificação
P(C1) 0/6 0 P(C2) 6/6 1 Error 1
max (0, 1) 1 1 0
P(C1) 1/6 P(C2) 5/6 Error 1 max
(1/6, 5/6) 1 5/6 1/6
P(C1) 2/6 P(C2) 4/6 Error 1 max
(2/6, 4/6) 1 4/6 1/3
49Comparação entre os critérios de divisão
Para problemas com duas classes
50Indução de árvores
- Estratégia gulosa.
- Divida os registros baseado no atributo teste que
otimiza um certo critério. - Questões
- Determinar como dividir os registros
- Como especificar qual o atributo teste?
- Como determinar a melhor divisão?
- Determinar quando parar de dividir
51Critérios de parada para a indução de árvores
- Pare de expandir um nó quando todos os registros
pertencem à mesma classe - Pare de expandir um nó quando todos os registros
tiverem os mesmos valores de atributo
52Classificação baseada em árvores de decisão
- Vantagens
- Construção barata
- Extremamente rápido para classificar novos
registros - Fácil interpretação de árvores pequenas
- A acurácia é comparável a outros métodos de
classificação para muitos conjuntos de dados
53Exemplo C4.5
- Algoritmo simples, em profundidade.
- Usa o Ganho de Informação (Information Gain)
- Classifica atributos contínuos em cada nó.
- Exige que todos os dados caibam em memória.
- Não indicado para grandes conjuntos de dados.
- Necessita classificação em disco.
- O Software pode ser baixado do sitehttp//www.cs
e.unsw.edu.au/quinlan/c4.5r8.tar.gz
54Questões práticas de classificação
- Sub e super-especialização (Underfitting and
Overfitting) - Valores faltantes
- Custo da classificação
55Sub e super-especialização (Exemplo)
500 pontos circulares e 500 pontos triangulares
data. Pontos circulares 0.5 ? sqrt(x12x22) ?
1 Pontos triangulares sqrt(x12x22) gt 0.5
or sqrt(x12x22) lt 1
56Sub e super-especialização
Overfitting
Sub-especialização quando o modelo é simples
demais, os erros com os dados de treinamento e de
teste são grandes
57Super-especialização em função do ruído
A fronteira de decisão é distorcida pelo ruído