prof. júlio cesar nievola data mining ppgia -...
TRANSCRIPT
�����������
Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPR
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������� ������
� Dada uma coleção de registros (conjunto de treinamento)– Cada registro contém um conjunto de atributos e um dos
atributos é a classe.
� Encontrar um modelo para o atributo classe como uma função dos valores dos outros atributos.
� Objetivo: aos registros previamente desconhecidos deve ser assinalada uma classe tão precisamente quanto possível.– Um conjunto de teste é usado para determinar a precisão do
modelo. Geralmente o conjunto de dados fornecido é dividido em conjuntos de treinamento e testes, com o conjunto de treinamento sendo usado para construir o modelo e o conjunto de testes sendo usado para validá-lo.
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������������������������
Apply Model
Learn Model
Tid Attrib1 Attrib2 Attrib3 Class
1 Yes Large 125K No
2 No Medium 100K No
3 No Small 70K No
4 Yes Medium 120K No
5 No Large 95K Yes
6 No Medium 60K No
7 Yes Large 220K No
8 No Small 85K Yes
9 No Medium 75K No
10 No Small 90K Yes 10
Tid Attrib1 Attrib2 Attrib3 Class
11 No Small 55K ?
12 Yes Medium 80K ?
13 Yes Large 110K ?
14 No Small 95K ?
15 No Large 67K ? 10
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������������������
� Prever se tumor em células é benigno ou maligno
� Classificar transações de cartão de crédito como legítimas ou fraude
� Classificar estruturas secundárias de proteínas como alpha-helix, beta-sheet, ou random coil
� Categorizar textos novos como finanças, tempo, lazer, esportes, etc
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������������
� Métodos baseados em Árvore de Decisão
� Métodos baseados em Regras
� Raciocínio baseado em Memória
� Redes Neurais Artificiais
� Naïve Bayes e Redes Baiesianas de Crença
� Máquinas de Vetores de Suporte – SVM
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������������� ����
Tid Refund MaritalStatus
TaxableIncome 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 Yes10
categórico
categórico
contínuos
classe
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
Atributos de Decisão
Dados de Treinamento Modelo: Árvore de Decisão
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������������������ ����
Tid Refund MaritalStatus
TaxableIncome 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 Yes10
categórico
categórico
contínuos
classeMarSt
Refund
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle,
Divorced
< 80K > 80K
Pode haver mais de uma árvore que se ajusta aos mesmos dados!
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������������������� ����
Apply Model
Learn Model
Tid Attrib1 Attrib2 Attrib3 Class
1 Yes Large 125K No
2 No Medium 100K No
3 No Small 70K No
4 Yes Medium 120K No
5 No Large 95K Yes
6 No Medium 60K No
7 Yes Large 220K No
8 No Small 85K Yes
9 No Medium 75K No
10 No Small 90K Yes 10
Tid Attrib1 Attrib2 Attrib3 Class
11 No Small 55K ?
12 Yes Medium 80K ?
13 Yes Large 110K ?
14 No Small 95K ?
15 No Large 67K ? 10
Decision Tree
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de TesteIniciar na raiz da árvore.
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de Teste
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de Teste
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de Teste
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de Teste
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� ������������
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Dado de Teste
Assinalar “No” ao Atributo Cheat
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������������������� ����
Apply Model
Learn Model
Tid Attrib1 Attrib2 Attrib3 Class
1 Yes Large 125K No
2 No Medium 100K No
3 No Small 70K No
4 Yes Medium 120K No
5 No Large 95K Yes
6 No Medium 60K No
7 Yes Large 220K No
8 No Small 85K Yes
9 No Medium 75K No
10 No Small 90K Yes 10
Tid Attrib1 Attrib2 Attrib3 Class
11 No Small 55K ?
12 Yes Medium 80K ?
13 Yes Large 110K ?
14 No Small 95K ?
15 No Large 67K ? 10
Decision Tree
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������������ ����
� Muitos Algoritmos:
– Algoritmo de Hunt (um dos primeiros)
– CART
– ID3, C4.5
– SLIQ, SPRINT
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������� ���������!��������"���
� Seja Dt o conjunto de registros de treinamento que chegam ao nó t
� Procedimento Geral:– Se Dt contém registros que
pertencem à mesma classe yt, então t é um nó folha com nome yt
– Se Dt é um conjunto vazio, então t é um nó folha com o nome da classe padrão yd
– Se Dt contém registros que pertencem a mais de uma classe, usar um teste em atributo para dividir os dados em sub-conjuntos menores. Aplicar recursivamente o procedimento para 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
Dt
?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��!��������"���
Don’t Cheat
Refund
Don’t Cheat
Don’t Cheat
Yes No
Refund
Don’t Cheat
Yes No
MaritalStatus
Don’t Cheat
Cheat
Single,Divorced Married
TaxableIncome
Don’t Cheat
< 80K >= 80K
Refund
Don’t Cheat
Yes No
MaritalStatus
Don’t Cheat
Cheat
Single,Divorced Married
Tid Refund MaritalStatus
TaxableIncome 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 Yes10
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������
� Estratégia gulosa.– Dividir os registros baseado sobre o teste do
atributo que otimiza determinado critério.
� Pontos a considerar– Determinar como dividir os registros
�Como especificar a condição de teste do atributo?�Como determinar a melhor divisão?
– Determinar quando parar de dividir
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������
� Estratégia gulosa.– Dividir os registros baseado sobre o teste do
atributo que otimiza determinado critério.
� Pontos a considerar– Determinar como dividir os registros
�Como especificar a condição de teste do atributo?�Como determinar a melhor divisão?
– Determinar quando parar de dividir
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������������������������#
� Depende dos tipos de atributos– Nominal– Ordinal– Contínuo
� Depende do número de formas de dividir– 2-way split– Multi-way split
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$��������������$����%������
� Multi-way split: Usar tantas partições quantos forem os valores distintos.
� Binary split: Divide os valores em dois sub-conjuntos. Necessita de encontrar o particionamento ótimo.
CarTypeFamily
SportsLuxury
CarType{Family, Luxury} {Sports}
CarType{Sports, Luxury} {Family} OU
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
� Multi-way split: Usar tantas partições quantos forem os valores distintos.
� Binary split: Dividir os valores em dois sub-conjuntos. Precisa encontrar o particionamento ótimo.
� E esta divisão?
�����$��������������$������������
SizeSmall
MediumLarge
Size{Medium,
Large} {Small}Size
{Small, Medium} {Large}
OU
Size{Small, Large} {Medium}
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$��������������$�������&���
� Diferentes formas de manipular– Discretização para formar um atributo
categórico ordinal� Estático – discretizar uma vez no início� Dinâmico – pode-se encontrar faixas que tem largura igual, freqüência igual (percentis), ou agrupamento.
– Decisão Binária: (A < v) ou (A ≥ v)� considerar todas as possíveis divisões e encontrar o melhor corte� pode ser mais intensivo computacionalmente
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$��������������$�������&���
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������
� Estratégia gulosa.– Dividir os registros baseado sobre o teste do
atributo que otimiza determinado critério.
� Pontos a considerar– Determinar como dividir os registros
�Como especificar a condição de teste do atributo?�Como determinar a melhor divisão?
– Determinar quando parar de dividir
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������������'�������#
Antes da divisão: 10 registros da classe 0,10 registros da classe 1
Qual condição de teste é melhor?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������������'�������#
� Abordagem gulosa:– Nós com distribuição de classe homogênea
são preferidos� Necessária uma medida de impureza do nó:
Não homogêneo,
Alto grau de impureza
Homogêneo,
Baixo grau de impureza
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������(��������%)
� Índice Gini
� Entropia
� Erro de Classificação
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������'�������
B?
Sim Não
Nó N3 Nó N4
A?
Sim Não
Nó N1 Nó N2
Antes da divisão:
��� %*+���� %**�
�
��� %,+���� %,*�
�
��� %-+���� %-*�
�
��� %.+���� %.*�
�
��� %++���� %+*�
�
M0
M1 M2 M3 M4
M12 M34Ganho = M0 – M12 versus M0 – M34
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������(��� �%�
� Índice Gini para um dado nó t :
(NOTA: p( j | t) é a freqüência relativa da classe j no nó t).
– Máximo (1 - 1/nc) quando registros são igualmente distribuídos entre todas classes, implicando informação menos interessante
– Mínimo (0.0) quando todos os registros pertencem a uma classe, implicando informação mais interessante
�−=j
tjptGINI 2)]|([1)(
�� +�� /
���0+1+++
�� ,�� .
���0+1...
�� -�� -
���0+12++
�� *�� 2
���0+1,34
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������5�������� �%�
��� +���� /�
�
��� ,���� .�
�
��� *���� 2�
�
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0
�−=j
tjptGINI 2)]|([1)(
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
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$���������� �%�
� Usada em CART, SLIQ, SPRINT.� Quando um nó p é dividido em k partições (filhos), a
qualidade da divisão é calculada como,
em que, ni = número de registros no filho i,n = numero de registros no nó p.
�=
=k
i
isplit iGINI
nn
GINI1
)(
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����$����6��5���������������7������ �%�
� Divide em duas partições� Efeito de ponderar partições:
– Buscam-se partições maiores e mais puras.
B?
Sim Não
Nó N1 Nó N2
� 8���
��� /�
��� /�
����0�+12++�
� %*� %,���� 2� *���� ,� .� ���0+1---�
�
Gini(N1) = 1 – (5/6)2 – (2/6)2
= 0.194
Gini(N2) = 1 – (1/6)2 – (4/6)2
= 0.528
Gini(Filhos) = 7/12 * 0.194 +
5/12 * 0.528= 0.333
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����$��������!)����������������7������ �%�
� Para cada valor distinto obter a contagem para cada classe no conjunto de dados
� Usar a matriz de contagens para tomar decisões
CarType{Sports,Luxury} {Family}
C1 � �
C2 � �
��� +1.++
CarType
{Sports} {Family,Luxury}
C1 � �
C2 � �
��� +1.*9
CarTypeFamily Sports Luxury
C1 � � �
C2 � � �
��� +1-9-
Multi-way split Two-way split (encontrar melhor partição de valores)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����$�������&���������������7������ �%�
� Usar Decisões Binárias baseadas sobre um valor
� Várias escolhas para o valor divisório– Número de possíveis valores
divisórios = Número de valores distintos
� Cada valor divisório tem uma matriz de contagem associada a si
– Classe conta em cada uma das partições, A < v e A ≥ v
� Método simples para escolher melhor v– Para cada v, percorrer base para
obter matriz de contagem e calcular seu índice Gini
– Computacionalmente ineficiente! Repetição do trabalho.
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
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����$�������&���������������7������ ���111
� Para cálculo eficiente: para cada atributo,– Ordenar os atributos baseado nos valores– Linearmente pesquisar estes valores, cada vez atualizando a
matriz de contagem e calculando o índice gini– Usar a posição de corte que tem o menor índice gini
Cheat No No No Yes Yes Yes No No No No
Taxable Income
60 70 75 85 90 95 100 120 125 220
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0
No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0
Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420
Split PositionsSorted Values
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������� �����$����������%:�
� Entropia em um dado 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 registros são igualmente
distribuídos entre todas classes => informação menor�Mínimo (0.0) quando todos registros pertencem à
mesma classe, implicando informação maior
– Cálculo baseados em entropia são similares ao cálculo do índice GINI
�−=j
tjptjptEntropia )|(log)|()(
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������5���������������
��� +���� /�
�
��� ,���� .�
�
��� *���� 2�
�
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
�−=j
tjptjptEntropia )|(log)|()( 2
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����6�����������%:�111
� Ganho de Informação:
Nó Pai, p é dividido em k partições;ni é o número de registros na partição i
– Mede redução na Entropia obtida pela divisão. Escolhe divisão de máxima redução (maximiza GAIN)
– Usado no ID3 e C4.5– Desvantagem: Tendência para divisões que resultam
em um número maior de partições, cada uma sendo pequena porém pura.
��
���
�−= �=
k
i
idivisão iEntropia
nn
pEntropiaGAIN1
)()(
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$�����������%:�111
� Razão de Ganho:
Nó Pai, p é dividido em k partiçõesni é o número de registros na partição i
– Ajusta Ganho de Informação pela entropia do particionamento (SplitINFO). Maior entropia de particionamento (grande número de pequenas partições) é penalizado!
– Usado no C4.5– Criado para superar a desvantagem do Ganho de Informação
SplitINFOGAIN
GainRATIO divisãodivisão = �
=
−=k
i
ii
nn
nn
SplitINFO1
log
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������$��������������������������
� Erro de Classificação em um nó t :
� Mede erro de classificação devido a um nó.� Máximo (1 - 1/nc) quando registros são igualmente distribuídos
entre todas classes, implica informação menos interessante� Mínimo (0.0) quando todos registros pertencem a uma classe,
implica informação mais interessante
)|(max1)( tiPtErroi
−=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������5����������
��� +���� /�
�
��� ,���� .�
�
��� *���� 2�
�
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Erro = 1 – máx (0, 1) = 1 – 1 = 0
P(C1) = 1/6 P(C2) = 5/6
Erro = 1 – máx (1/6, 5/6) = 1 – 5/6 = 1/6
P(C1) = 2/6 P(C2) = 4/6
Erro = 1 – máx (2/6, 4/6) = 1 – 4/6 = 1/3
)|(max1)( tiPtErroi
−=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������������������� ����
Para um problema de duas classes:
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������������� ���
A?
Sim Não
Nó N1 Nó N2
� 8���
��� 3�
��� -�
����0�+1.,�
� %*� %,���� -� .���� +� -� ���0+1-/*�
�
Gini(N1) = 1 – (3/3)2 – (0/3)2
= 0
Gini(N2) = 1 – (4/7)2 – (3/7)2
= 0.489
Gini(Filhos) = 3/10 * 0 + 7/10 * 0.489= 0.342
Gini melhora !!
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������
� Estratégia gulosa.– Dividir os registros baseado sobre o teste do
atributo que otimiza determinado critério.
� Pontos a considerar– Determinar como dividir os registros
�Como especificar a condição de teste do atributo?�Como determinar a melhor divisão?
– Determinar quando parar de dividir
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8��������������������� ����
� Parar de expandir um nó quando todos os registros pertencem à mesma classe
� Parar de expandir um nó quando todos os registros tem valores de atributo similar
� Terminação precoce (a ser discutida)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������$������������������� ����
� Vantagens:– Sem dificuldades de construção– Extremamente rápida para classificar
registros desconhecidos– Fácil de interpretar para árvores pequenas– Precisão comparável a outras técnicas de
classificação para muitos conjuntos com dados simples
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������.12
� Construção simples de busca em profundidade.� Usa Ganho de Informação� Ordena Atributos Contínuos em cada nó.� Todos os dados devem caber na memória.� Não adequado para grandes bases de dados.
– Necessita de ordenação out-of-core.
� Pode ser obtido de:http://www.cse.unsw.edu.au/~quinlan/c4.5r8.tar.gz
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
;����<���8�5��������������������
� Sub- e sobre-ajuste (Underfitting e Overfitting)
� Valores Faltantes
� Custos de Classificação
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=�$> ��=$���?���� @������A
500 pontos de dados circulares e 500 triangulares.
Pontos Circulares:
0.5 ≤≤≤≤ sqrt(x12+x2
2) ≤≤≤≤ 1
Pontos Triangulares:
sqrt(x12+x2
2) > 0.5 ou
sqrt(x12+x2
2) < 1
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=�$> ��=$��>�?����
Sobre-ajuste
Sub-ajuste: Quando o modelo é simples demais, tanto o erro de treinamento quando o erro de teste são elevados
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=$��>�?�������������B�&�
Fronteira decisória é distorcida pelo ponto de ruído
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=$��>�?����������������������������������
Falta de dados na metade inferior do diagrama torna difícil prever corretamente os rótulos da classe naquela região
- Número insuficiente de registros na região faz árvore de decisão prever exemplos de teste usando outros registros de treinamento que são irrelevantes para a tarefa de classificação
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�$������<����������������=$��>�?����
� Sobre-ajuste resulta em árvores de decisão que são mais complexas que o necessário
� Erro de treinamento não é mais uma boa estimativa de quão bem a árvore desempenharáem registros previamente desconhecidos
� Necessita de novas formas para estimar erros
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������� �������(��
� Erro de Re-substituição: erro sobre treinamento (Σ e(t) )� Erro de Generalização: erro sobre teste (Σ e’(t))� Métodos para estimar erro de generalização:
– Abordagem Otimista: e’(t) = e(t)– Abordagem Pessimista:
� Para cada nó folha: e’(t) = (e(t)+0.5)� Erro total: e’(T) = e(T) + N × 0.5 (N: número de nós folha)� Para uma árvore com 30 nós folha e 10 erros no treinamento
(de um total de 1000 instâncias):Erro de treinamento = 10/1000 = 1%Erro de Generalização = (10 + 30×0.5)/1000 = 2.5%
– Poda do Erro Reduzido (Reduced error pruning REP):� usa dados de conjunto de validação para estimar erro de generalização
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
%����'���������� @�����C��B�(�A
� Dados dois modelos com erro de generalização similares, deve-se preferir o modelo mais simples em relação ao modelo mais complexo
� Para modelos complexos, há uma maior chance que tenha sido ajustado acidentalmente pelos erros nos dados
� Portanto, deve-se incluir a complexidade do modelo durante a avaliação do modelo
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������� ����������D��!�'@� DA
� Custo(Modelo,Dados) = Custo(Dados|Modelo) + Custo(Modelo)– Custo é o número de bits para codificar.– Busca o modelo de menor custo.
� Custo(Dados | Modelo) codifica o erro de classificação.� Custo(Modelo) usa codificação do nó (número de filhos)
mais codificação da condição de divisão.
A B
A?
B?
C?
10
0
1
Yes No
B1 B2
C1 C2
X yX1 1X2 0X3 0X4 1… …Xn 1
X yX1 ?X2 ?X3 ?X4 ?… …Xn ?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������$���?����
� Pré-Poda (Early Stopping Rule)– Pára algoritmo antes de ter árvore completa– Condições típicas de parada para um nó:
� Pare se todas instâncias pertencem à mesma classe� Pare se todos os valores de atributo são iguais
– Condições mais restritivas:� Pare se o número de instâncias é menor que algum limiar especificado pelo usuário� Pare se a distribuição de classes das instâncias é independente das características disponíveis (e.g., usando teste χ 2)� Pare se a expansão do nó atual não melhora a medida de impureza (e.g., Gini ou ganho de informação).
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������$���?����E
� Pós-poda– Cria a árvore de decisão completa– Ajusta os nós da árvore de decisão de
maneira bottom-up– Se erro de generalização melhora após
ajuste, substituir sub-árvore pelo nó folha.– Rótulo da classe do nó folha é determinado
pela classe da maioria das instâncias na sub-árvore
– Pode usar MDL para pós-poda
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������8)�>8��
10Classe = Não
Erro = 10/30
20Classe = Sim
Erro de Treinamento (antes da divisão) = 10/30
Erro Pessimista = (10 + 0.5)/30 = 10.5/30
Erro de Treinamento (após divisão) = 9/30
Erro Pessimista (após divisão)
= (9 + 4 ×××× 0.5)/30 = 11/30
PODAR!
4Classe = Não
8Classe = Sim
4Classe = Não
3Classe = Sim
1Classe = Não
4Classe = Sim
1Classe = Não
5Classe = Sim
A?
A1
A2 A3
A4
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8)�>���
– Erro Otimista?
– Erro Pessimista?
– Reduced error pruning?
C0: 11C1: 3
C0: 2C1: 4
C0: 14C1: 3
C0: 2C1: 2
Não poda em ambos os casos
Não poda caso 1, poda caso 2
Caso 1:
Caso 2:
Depende do conjunto de validação
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������F������:����������������$���
� Valores faltantes afetam a construção de árvores de decisão de três maneiras diferentes:– Afetam como medidas de impureza são
calculadas– Afetam como distribuir instâncias com valores
faltantes para os nós filhos– Afetam como uma instância de teste com
valor faltante é classificada
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������������(�
Tid Refund Marital Status
Taxable Income Class
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 ? Single 90K Yes 10
��������0�G���
�������0�%�
�� ����� +� -��� ����� ,� .�
�
�� ���� *� +�
Dividir em Refund:
Entropia(Refund=Yes) = 0
Entropia(Refund=No) = -(2/6)log(2/6) – (4/6)log(4/6) = 0.9183
Entropia(Filhos) = 0.3 (0) + 0.6 (0.9183) = 0.551
Ganho = 0.9 ×××× (0.8813 – 0.551) = 0.3303
Valor Faltante
Antes da divisão:Entropia(Pai) = -0.3 log(0.3)-(0.7)log(0.7) = 0.8813
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����$��������H�����
Tid Refund Marital Status
Taxable Income Class
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
RefundYes No
������0G��� +�
������0%� -��
�'���0G��� ,�
�'���0%� .��
RefundYes
Tid Refund Marital Status
Taxable Income Class
10 ? Single 90K Yes 10
No
������0G��� ,�I�/J9�
������0%� .��
Probabilidade para Refund=Yes é 3/9
Probabilidade para Refund=No é 6/9
Assinalar registro para filho àesquerda com peso = 3/9 e para filho à direita com peso = 6/9
������0G��� +�I�-J9�
������0%� -��
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������H�����
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
MarriedSingle, Divorced
< 80K > 80K
6.67123.67Total
2.67116/9Classe=Yes
4013Classe=No
TotalDivorcedSingleMarriedTid Refund Marital
Status Taxable Income Class
11 No ? 85K ? 10
Novo registro:
Probabilidade para Marital Status = Married é 3.67/6.67
Probabilidade para Marital Status ={Single, Divorced} é 3/6.67
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������;����<��
� Fragmentação de Dados
� Estratégia de Busca
� Expressividade
� Replicação de Árvore
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
:��!���������� ���
� Número de instâncias torna-se menor à medida que se caminha na árvore
� Número de instâncias nos nós folha pode ser muito pequeno para tomar qualquer decisão estatisticamente significante
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������!������6����
� Encontrar uma árvore de decisão ótima é NP-hard
� O algoritmo apresentado até aqui usa uma estratégia de particionamento recursiva, gulosa, top-down para induzir uma solução razoável
� Outras estratégias?– Bottom-up– Bi-direcional
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������
� Árvore de decisão fornece representação expressiva para aprendizagem de função com valores discretos– Apesar disto, não generalizam bem para certos tipos
de funções Booleanas� Exemplo: função paridade:
– Classe = 1 se há um número par de atributos Booleanos com valor verdade = True
– Classe = 0 se há um número ímpar de atributos Booleanos com valor verdade = True
� Para modelagem precisa deve ter uma árvore completa
� Não é suficientemente expressiva para modelar variáveis contínuas– Particularmente quando a condição de teste envolve
somente um único atributo por vez
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=�����&��������������
• A linha limite entre duas regiões vizinhas com diferentes classes éconhecida como superfície de separação
• A superfície de separação é paralela aos eixos pois a condição de teste envolve um único atributo por vez
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������� ������$�&K���
x + y < 1
Classe = + Classe =
• Condição de teste pode envolver vários atributos
• Representação mais expressiva
• Encontrar condição de teste ótima é computacionalmente cara
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B����������������
P
Q R
S 0 1
0 1
Q
S 0
0 1
• Mesma sub-árvore aparece em vários ramos
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������
� Métricas para Avaliação de Desempenho– Como avaliar o desempenho de um modelo?
� Métodos para Avaliação de Desempenho– Como obter estimativas confiáveis?
� Métodos para Comparação de Modelos– Como comparar o desempenho relativo entre
vários modelos?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������
� Métricas para Avaliação de Desempenho– Como avaliar o desempenho de um modelo?
� Métodos para Avaliação de Desempenho– Como obter estimativas confiáveis?
� Métodos para Comparação de Modelos– Como comparar o desempenho relativo entre
vários modelos?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������������������� �������'
� Foco na capacidade preditiva de um modelo– Em lugar de quão rápido ele classifica ou
constrói modelos, escalabilidade, etc.� Matriz de Confusão:
dcClasse=Não
baClasse=Sim
Classe=NãoClasse=Sim
CLASSE REAL
CLASSE PREVISTA
a: TP (verdadeiro positivo)
b: FN (falso negativo)
c: FP (falso positivo)
d: TN (verdadeiro negativo)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������������������� �������'
� Métrica mais largamente utilizada:
d(TN)
c(FP)
Classe=Não
b(FN)
a(TP)
Classe=Sim
Classe=NãoClasse=Sim
CLASSE REAL
CLASSE PREVISTA
FNFPTNTPTNTP
dcbada
++++=
++++= Precisão
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
D����������8�����
� Considere um problema com 2 classes– Número de exemplos da Classe 0 = 9990– Número de exemplos da Classe 1 = 10
� Se o modelo prevê tudo como sendo classe 0, precisão é 9990/10000 = 99.9 %– Precisão pode enganar porque o modelo não
detecta qualquer exemplo da classe 1
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����(��������
C(Não|Não)C(Sim|Não)Classe=Não
C(Não|Sim)C(Sim|Sim)Classe=Sim
Classe=NãoClasse=SimC(i|j)
CLASSE REAL
CLASSE PREVISTA
C(i|j): Custo de classificar incorretamente um exemplo da classe j como sendo da classe i
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�5��������������������������
01-100-1+
-+C(i|j)CLASSE
REAL
CLASSE PREVISTAMatriz de Custo
25060-40150+-+
CLASSE REAL
CLASSE PREVISTAModeloM1
2005-45250+-+
CLASSE REAL
CLASSE PREVISTAModeloM2
Precisão = 80%Custo = 3910
Precisão = 90%Custo = 4255
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������8�����
dcClasse=Não
baClasse=Sim
Classe=NãoClasse=Sim
CLASSE REAL
CLASSE PREVISTAContagem
pqClasse=Não
qpClasse=Sim
Classe=NãoClasse=Sim
CLASSE REAL
CLASSE PREVISTACusto
N = a + b + c + d
Precisão = (a + d)/N
Custo = p (a + d) + q (b + c)
= p (a + d) + q (N – a – d)
= q N – (q – p)(a + d)
= N [q – (q-p) × Precisão]
Precisão é proporcional ao custo se1. C(Sim|Não)=C(Não|Sim) = q 2. C(Sim|Sim)=C(Não|Não) = p
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������=���&�����������
cbaa
prrp
baa
caa
++=
+=
+=
+=
222
(F) measure-F
(r) Recall
(p)Precision
� Precision tem tendência para C(Sim|Sim) & C(Sim|Não)� Recall tem tendência para C(Sim|Sim) & C(Não|Sim)� F-measure tem tendência para todos exceto C(Não|Não)
dwcwbwawdwaw
4321
41 Ponderada Precisão+++
+=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������
� Métricas para Avaliação de Desempenho– Como avaliar o desempenho de um modelo?
� Métodos para Avaliação de Desempenho– Como obter estimativas confiáveis?
� Métodos para Comparação de Modelos– Como comparar o desempenho relativo entre
vários modelos?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������������� �������'
� Como obter uma estimativa confiável de desempenho?
� Desempenho de um modelo pode depender de outros fatores além do algoritmo de aprendizagem:– Distribuição de classes– Custo de classificação incorreta– Tamanho dos conjuntos de treinamento e
teste
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������(�!��
� Curva de Aprendizagem mostra como precisão muda com a variação do tamanho da amostra
� Requer um escalonamento de amostragem para criar a curva de aprendizagem:� Amostragem aritmética
(Langley, et al)� Amostragem
Geométrica(Provost et al)
Efeitos de amostra de pequeno tamanho:
- Bias na estimativa- Variância da estimativa
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������
� Holdout– Reserva 2/3 para treinamento e 1/3 para teste
� Sub-amostragem aleatória– Holdout repetido
� Validação Cruzada– Particionar dados em k subconjuntos disjuntos– k-fold: treinar em k-1 partições, testar no restante– Leave-one-out: k = n
� Amostragem Estratificada– Sobre-amostragem versus sub-amostragem
� Bootstrap– Amostragem com reposição
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������
� Métricas para Avaliação de Desempenho– Como avaliar o desempenho de um modelo?
� Métodos para Avaliação de Desempenho– Como obter estimativas confiáveis?
� Métodos para Comparação de Modelos– Como comparar o desempenho relativo entre
vários modelos?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B���@B����������������!��'������������A
� Desenvolvido nos anos 1950 para teoria de detecção de sinais para analisar sinais ruidosos– Caracteriza o compromisso entre acertos
positivos e falsos alarmes� Curva ROC plota TP (no eixo y) contra FP (no
eixo x)� Desempenho de cada classificador representado
como um ponto na curva ROC– Alterando o limiar do algoritmo, a distribuição
da amostra ou a matriz de custo altera a posição do ponto
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������B��
No limiar t:
TP=0.5, FN=0.5, FP=0.12, FN=0.88
- Conjunto de dados unidimensional com 2 classes (positiva e negativa)
- Qualquer ponto localizado em x > t é classificado como positivo
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������B��
(TP,FP):� (0,0): declara tudo
como classe negativa� (1,1): declara tudo
como classe positiva� (1,0): ideal
� Linha diagonal:– Sorteio aleatório– Abaixo da linha
diagonal:� previsão é oposta àclasse real
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
L�����B������������������������
� Nenhum modelo supera sempre outros� M1 é melhor para
FPR pequeno� M2 é melhor para
FPR grande
� Área sob a curva ROC� Ideal:
� Área = 1� Sorteio aleatório:
� Área = 0.5
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������������B��
+0.2510
-0.439
+0.538
-0.767
+0.856
-0.855
-0.854
-0.873
+0.932
+0.951
Classe RealP(+|A)Instância• Usar classificador que produz probabilidade a posteriori para cada instância de teste P(+|A)
• Ordenar as instâncias de acordo com P(+|A) em ordem decrescente
• Aplicar limiar para cada valor único de P(+|A)
• Contar o número de TP, FP, TN, FN em cada limiar
• Taxa TP: TPR = TP/(TP+FN)
• Taxa FP: FPR = FP/(FP + TN)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������������B��
Classe + - + - - - + - + +
0.25 0.43 0.53 0.76 0.85 0.85 0.85 0.87 0.93 0.95 1.00
TP 5 4 4 3 3 3 3 2 2 1 0
FP 5 5 4 4 3 2 1 1 0 0 0
TN 0 0 1 1 2 3 4 4 5 5 5
FN 0 1 1 2 2 2 2 3 3 4 5
TPR 1 0.8 0.8 0.6 0.6 0.6 0.6 0.4 0.4 0.2 0
FPR 1 1 0.8 0.8 0.6 0.4 0.2 0.2 0 0 0
Limiar >=
Curva ROC:
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������=�!�����H����
� Dados dois modelos:– Modelo M1: precisão = 85%, testado em 30 instâncias– Modelo M2: precisão = 75%, testado em 5000
instâncias
� Pode-se dizer que M1 é melhor que M2?– Quanta confiança pode-se ter na precisão de M1 e
M2?– A diferença da medida de desempenho pode ser
explicada como resultado de flutuações aleatórias no conjunto de testes?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������������8�����
� Previsão pode ser vista como um processo de Bernoulli
– Um processo de Bernoulli tem dois resultados possíveis– Possíveis resultados da previsão: correto ou errado– Coleção de processos de Bernoulli tem distribuição Binomial:
� x ∼ Bin(N, p) x: número de previsões corretas� e.g: Sortear uma moeda honesta 50 vezes, quantas caras surgiriam?
Número esperado de caras = N×p = 50 × 0.5 = 25
� Dado x (número de previsões corretas) ou equivalentemente, precisão = x / N, e N (número de instâncias de teste),
Pode-se prever p (precisão real do modelo)?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������������8�����
� Para conjuntos de teste grandes (N > 30), – Precisão tem uma distri-
buição normal com média p e variância p(1-p)/N
� Intervalo de confiança para p:α
αα
−=
<−
−< −
1
)/)1(
( 2/12/ ZNpppprecisão
ZP
Área = 1 - αααα
Zαααα/2 Z1- αααα /2
)(2442
22/
222/
22/
α
αα
ZN
precisãoNprecisãoNZZprecisãoNp
+××−××+±+××
=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������������8�����
� Considere um modelo que produz uma precisão de 80% quando avaliado sobre 100 instâncias de teste:– N = 100, precisão = 0.8– Assuma 1- α = 0.95 (95% confiança)
– Da tabela de probabilidade, Zα/2=1.96
1.650.90
1.960.95
2.330.98
2.580.99
Z1-α
0.7890.7740.7630.7110.670p(inferior)
0.8110.8240.8330.8660.888p(superior)
5000100050010050N
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������� �������'����,������
� Dados dois modelos M1 e M2, qual é melhor?– M1 é testado em D1 (tamanho = n1), taxa de erro = e1
– M2 é testado em D2 (tamanho = n2), taxa de erro = e2
– Assumir que D1 e D2 são independentes– Se n1 e n2 são suficientemente grandes, então
– Aproximar:
( )( )222
111
,~
,~
σµσµ
Ne
Ne
i
ii
i nee )1(
ˆ−=σ
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������� �������'����,������
� Para testar se a diferença de desempenho éestatisticamente significante: d = e1 – e2
– d ~ NN(dt,σt) em que dt é a diferença verdadeira– Como D1 e D2 são independentes, suas variâncias
são somadas:
– Em nível de confiança (1-α),
2
22
1
11
22
21
22
21
2
)1()1(
ˆˆ
nee
nee
t
−+−=
+≅+= σσσσσ
ttZdd σ
αˆ
2/±=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
L�������������������
� Dados: M1: n1 = 30, e1 = 0.15M2: n2 = 5000, e2 = 0.25
� d = | e2 – e1| = 0.1 (teste com duas caudas)
� Em nível de confiança de 95%, Zα/2=1.96
=> Intervalo contém 0 => diferença pode não serestatisticamente significante
0043.05000
)25.01(25.030
)15.01(15.0ˆ =−+−=
dσ
128.0100.00043.096.1100.0 ±=×±=t
d
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������� �������'����,������
� Cada algoritmo de aprendizagem pode produzir kmodelos:– L1 pode produzir M11, M12, …, M1k
– L2 pode produzir M21, M22, …, M2k
� Se modelos são gerados sobre mesmo conjuntos de teste D1, D2, …, Dk (e.g., via cross-validation)– Para cada conjunto: calcular dj = e1j – e2j
– dj tem média dt e variância σt
– Estimar:
tkt
k
j j
t
tddkk
dd
σ
σ
αˆ)1(
)(ˆ
1,1
1
2
2
−−
=
±=−−
=�
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� ���� �����������������
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������6����������B�!���
� Classificar registros usando uma coleção de regras “if…then…”
� Regra: (Condição) → y– em que
� Condição é uma conjunção de atributos� y é o rótulo da classe
– LHS: antecedente da regra ou condição– RHS: conseqüente da regra– Exemplos de regras de classificação:
� (Blood Type=Warm) ∧ (Lay Eggs=Yes) → Birds� (Taxable Income < 50K) ∧ (Refund=Yes) → Evade=No
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6���������B�!����@������A
R1: (Give Birth = no) ∧ (Can Fly = yes) → BirdsR2: (Give Birth = no) ∧ (Live in Water = yes) → FishesR3: (Give Birth = yes) ∧ (Blood Type = warm) → MammalsR4: (Give Birth = no) ∧ (Can Fly = no) → ReptilesR5: (Live in Water = sometimes) → Amphibians
Name Blood Type Give Birth Can Fly Live in Water Classhuman warm yes no no mammalspython cold no no no reptilessalmon cold no no yes fisheswhale warm yes no yes mammalsfrog cold no no sometimes amphibianskomodo cold no no no reptilesbat warm yes yes no mammalspigeon warm no yes no birdscat warm yes no no mammalsleopard shark cold yes no yes fishesturtle cold no no sometimes reptilespenguin warm no no sometimes birdsporcupine warm yes no no mammalseel cold no no yes fishessalamander cold no no sometimes amphibiansgila monster cold no no no reptilesplatypus warm no no no mammalsowl warm no yes no birdsdolphin warm yes no yes mammalseagle warm no yes no birds
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������������6����������B�!���
� Uma regra r cobre uma instância x se os atributos da instância satisfazem a condição da regraR1: (Give Birth = no) ∧ (Can Fly = yes) → BirdsR2: (Give Birth = no) ∧ (Live in Water = yes) → FishesR3: (Give Birth = yes) ∧ (Blood Type = warm) → MammalsR4: (Give Birth = no) ∧ (Can Fly = no) → ReptilesR5: (Live in Water = sometimes) → Amphibians
A regra R1 cobre hawk => BirdA regra R3 cobre grizzly bear => Mammal
Name Blood Type Give Birth Can Fly Live in Water Classhawk warm no yes no ?grizzly bear warm yes no no ?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�$���������8�������������B�!��
� Cobertura de uma regra:– Fração de registros
que satisfazem o antecedente da regra
� Precisão de uma regra:– Fração dos registros
que satisfazem tanto o antecedente quanto o conseqüente da regra
Tid Refund Marital Status
Taxable Income Class
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
(Status=Single) →→→→ No
Cobertura = 40%, Precisão = 50%
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������������$���������B�!����:������#
R1: (Give Birth = no) ∧ (Can Fly = yes) → BirdsR2: (Give Birth = no) ∧ (Live in Water = yes) → FishesR3: (Give Birth = yes) ∧ (Blood Type = warm) → MammalsR4: (Give Birth = no) ∧ (Can Fly = no) → ReptilesR5: (Live in Water = sometimes) → Amphibians
Um lemur dispara R3, então é classificado como mammalUma turtle dispara tanto R4 quanto R5Um dogfish shark não dispara nenhuma das regras
Name Blood Type Give Birth Can Fly Live in Water Classlemur warm yes no no ?turtle cold no no sometimes ?dogfish shark cold yes no yes ?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������&�������������������������6����������B�!���
� Regras mutuamente exclusivas– Classificador contém regras mutuamente exclusivas
se as regras são independentes entre si– Cada registro é coberto por no máximo uma regra
� Regras exaustivas– Classificador tem cobertura exaustiva se ele leva em
conta toda possível combinação dos valores dos atributos
– Cada registro é coberto por pelo menos uma regra
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������ ����������B�!���
YESYESNONO
NONO
NONO
Yes No
{Married}{Single,
Divorced}
< 80K > 80K
Taxable Income
Marital Status
Refund
Classification Rules
(Refund=Yes) ==> No
(Refund=No, Marital Status={Single,Divorced},Taxable Income<80K) ==> No
(Refund=No, Marital Status={Single,Divorced},Taxable Income>80K) ==> Yes
(Refund=No, Marital Status={Married}) ==> No
Regras são mutuamente exclusivas e exaustivas
Conjunto de regras contém tanta informação quanto a árvore
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B�!����8��������=������������
YESYESNONO
NONO
NONO
Yes No
{Married}{Single,
Divorced}
< 80K > 80K
Taxable Income
Marital Status
Refund
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
Regra Inicial: (Refund=No) ∧ (Status=Married) →→→→ No
Regra Simplificada: (Status=Married) →→→→ No
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������=��������������B�!���
� Regras deixam de ser mutuamente exclusivas– Um registro pode disparar mais de uma regra– Solução?
� Conjunto de regras ordenadas� Conjunto não ordenado de regras – usar esquema de votação
� Regras deixam de ser exaustivas– Um registro pode não disparar nenhuma regra– Solução?
� Usar uma classe default
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��?�������B�!�������������
� Regras são ordenadas de acordo com sua prioridade, chamada lista de decisão
� Quando um registro de teste é apresentado– Ele é assinalado ao rótulo de classe da regra de mais alta ordem
que tenha sido disparada– Se nenhuma das regras dispara, é assinalado à classe default
R1: (Give Birth = no) ∧ (Can Fly = yes) → BirdsR2: (Give Birth = no) ∧ (Live in Water = yes) → FishesR3: (Give Birth = yes) ∧ (Blood Type = warm) → MammalsR4: (Give Birth = no) ∧ (Can Fly = no) → ReptilesR5: (Live in Water = sometimes) → Amphibians
Name Blood Type Give Birth Can Fly Live in Water Classturtle cold no no sometimes ?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��K��������������������B�!���
� Ordenação baseada em Regras– Regras individuais são ordenadas baseado em sua qualidade
� Ordenação baseada na Classe– Regras que pertencem à mesma classe aparecem juntas
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������B�!������������������
� Método Direto:� Extrair regras diretamente dos dados� e.g.: RIPPER, CN2, 1R de Holte
� Método Indireto:� Extrair regras de outros modelos de classificação (e.g. árvores de decisão, redes neurais etc.)� e.g: C4.5rules
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� �������$�������=�KM������
1. Iniciar com uma regra vazia2. Aumentar a regra usando a função Aprender-
Uma-Regra3. Remover registros de treinamento cobertos
pela regra4. Repetir passos (2) e (3) até atingir critério de
parada
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������$�������=�KM������
(ii) Step 1
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������$�������=�KM�������E
(iii) Step 2
R1
(iv) Step 3
R1
R2
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������$�������=�KM������
� Crescimento das Regras
� Eliminação de Instâncias
� Avaliação das Regras
� Critério de Parada
� Poda das Regras
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������B�!���
� Duas estratégias comuns
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������B�!����@�������A
� Algoritmo CN2:– Iniciar com um conjunto vazio: {}– Adicionar conjunções que minimizam medida de entropia: {A}, {A,B}, …– Determinar o conseqüente da regra usando classe majoritária das
instâncias cobertas pela regra
� Algoritmo RIPPER:– Iniciar com uma regra vazia: {} => classe– Adicionar conjunções que maximizam medida de ganho de informação
FOIL’s:� R0: {} => classe (regra inicial)� R1: {A} => classe (regra após adicionar conjunção)� Ganho(R0, R1) = t [ log (p1/(p1+n1)) – log (p0/(p0 + n0)) ]� em que t: número de instâncias positivas cobertas tanto por R0 quanto R1
p0: número de instâncias positivas cobertas por R0n0: número de instâncias negativas cobertas por R0p1: número de instâncias positivas cobertas por R1n1: número de instâncias negativas cobertas por R1
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����������������H�����
� Por quê se precisa eliminar instâncias?
– Senão, a próxima regra éidêntica à prévia
� Por quê se removem instâncias positivas?
– Assegura que a próxima regra é diferente
� Por quê se removem instâncias negativas?
– Evita que se subestime a precisão da regra
– Comparar regras R2 e R3 no diagrama
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������B�!���
� Métricas:– Precisão
– Laplace
– Estimativa M
knnc
++= 1
knkpnc
++=
nc : Número de instâncias cobertas pela regra
n : Número total de instâncias
k : Número de classes
p : Probabilidade a priori
nnc=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8��������8������B�!���
� Critério de Parada– Cálculo do ganho– Se o ganho não é significante, descartar a nova regra
� Poda de Regras– Similar à pós-poda de árvores de decisão– Reduced Error Pruning:
� Remover uma das conjunções da regra� Comparar a taxa de erro no conjunto de validação antes e após a poda� Se o erro aumenta, podar o conjunto
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=��5���������� ����
� Crescer uma única regra
� Remover Instâncias da regra
� Podar a regra (se necessário)
� Adicionar regra ao conjunto atual de regras
� Repetir
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� ������B�88�B
� Para um problema de 2 classes, escolher uma delas como positiva e a outra como classe negativa– Aprender regras para a classe positiva– Classe negativa será a classe default
� Para problema de várias classes– Ordenar as classes de acordo com a prevalência
crescente da classe (fração de instâncias que pertencem a uma classe particular)
– Aprender o conjunto de regras para a menor classe primeiro, tratar o restante como classe negativa
– Repetir com a menor classe seguinte como classe positiva
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� ������B�88�B
� Crescendo uma regra:– Iniciar com a regra vazia– Adicionar conjunções enquanto elas melhorarem o
ganho de informação FOIL– Parar quando regra não cobrir mais exemplos
negativos– Podar a regra imediatamente usando reduced error
pruning incremental– Medida para poda: v = (p-n)/(p+n)
� p: número de exemplos positivos cobertos pela regra no conjunto de validação� n: número de exemplos negativos cobertos pela regra no conjunto de validação
– Método de Poda: retirar qualquer seqüência final de condições que maximiza v
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� ������B�88�B
� Construindo um conjunto de regras:– Usar o algoritmo de cobertura seqüencial
� Encontrar a melhor regra que cobre o conjunto atual de exemplos positivos� Eliminar tanto os exemplos positivos quanto negativos cobertos pela regra
– Cada vez que uma regra é colocada no conjunto de regras, calcular o novo comprimento da descrição� Parar de adicionar novas regras quando o novo comprimento da descrição for d bits maior que o menor comprimento de descrição encontrado atéentão
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
����� ������B�88�B
� Otimizar o conjunto de regras:– Para cada regra r no conjunto de regras R
� Considerar 2 regras alternativas:– Regra de substituição (r*): crescer nova regra a partir do zero– Regra de revisão (r’): adicionar conjunções para estender r
� Comparar o conjunto de regras para r com o conjunto de regras para r* e r’� Escolher conjunto de regras que minimiza o princípio MDL
– Repetir geração e otimização de regras para o restante dos exemplos positivos
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������.12�����
� Extrair regras de uma árvore de decisão não-podada
� Para cada regra, r: A →→→→ y,– Considerar uma regra alternativa r’: A’ →→→→ y
em que A’ é obtida removendo uma das conjunção em A
– Comparar a taxa de erro pessimista para r com todos os r’s
– Podar se um dos r’s tem taxa de erro pessimista inferior
– Repetir até que não se possa melhorar o erro de generalização
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������.12�����
� Em lugar de ordenar as regras, ordenar subconjuntos de regras (ordenação de classes)– Cada subconjunto é uma coleção de regras
com o mesmo conseqüente (classe)– Calcular comprimento da descrição de cada
subconjunto� Comprimento da descrição = L(erro) + g L(modelo)� g é um parâmetro que leva em conta a presença de atributos redundantes em um conjunto de regras (valor default = 0.5)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������
Name Give Birth Lay Eggs Can Fly Live in Water Have Legs Classhuman yes no no no yes mammalspython no yes no no no reptilessalmon no yes no yes no fisheswhale yes no no yes no mammalsfrog no yes no sometimes yes amphibianskomodo no yes no no yes reptilesbat yes no yes no yes mammalspigeon no yes yes no yes birdscat yes no no no yes mammalsleopard shark yes no no yes no fishesturtle no yes no sometimes yes reptilespenguin no yes no sometimes yes birdsporcupine yes no no no yes mammalseel no yes no yes no fishessalamander no yes no sometimes yes amphibiansgila monster no yes no no yes reptilesplatypus no yes no no yes mammalsowl no yes yes no yes birdsdolphin yes no no yes no mammalseagle no yes yes no yes birds
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�.12���������.12�������������B�88�B
C4.5rules:
(Give Birth=No, Can Fly=Yes) → Birds
(Give Birth=No, Live in Water=Yes) → Fishes
(Give Birth=Yes) → Mammals
(Give Birth=No, Can Fly=No, Live in Water=No) → Reptiles
( ) → Amphibians
GiveBirth?
Live InWater?
CanFly?
Mammals
Fishes Amphibians
Birds Reptiles
Yes No
Yes
Sometimes
No
Yes No
RIPPER:
(Live in Water=Yes) → Fishes
(Have Legs=No) → Reptiles
(Give Birth=No, Can Fly=No, Live In Water=No) → Reptiles
(Can Fly=Yes,Give Birth=No) → Birds
() → Mammals
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�.12���������.12�������������B�88�B
Amphibians Fishes Reptiles Birds MammalsAmphibians 0 0 0 0 2Fishes 0 3 0 0 0Reptiles 0 0 3 0 1Birds 0 0 1 2 1Mammals 0 2 1 0 4
CLASSE PREVISTA
CLASSE REAL
Amphibians Fishes Reptiles Birds MammalsAmphibians 2 0 0 0 0Fishes 0 2 0 0 1Reptiles 1 0 3 0 0Birds 1 0 0 3 0Mammals 0 0 1 0 6
CLASSE REAL
CLASSE PREVISTA
C4.5 e C4.5rules:
RIPPER:
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
F����!����������������������$����������B�!���
� Tão expressivos quanto as árvores de decisão
� Fáceis de interpretar
� Fáceis de gerar
� Podem classificar rapidamente novas instâncias
� Desempenho comparável às árvores de decisão
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������$��������������H����
Atr1 ……... AtrN ClassA
B
B
C
A
C
B
Set of Stored Cases
Atr1 ……... AtrN
Unseen Case
• Armazena os registros de treinamento
• Usa registros de treinamento para prever o rótulo da classe para casos não-vistos
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������$��������������H����
� Exemplos:– Rote-learner
� Memoriza todos os dados de treinamento e realiza classificação somente se atributos do registro correspondem exatamente a um dos exemplos de treinamento
– Vizinho mais próximo� Usa k pontos “mais próximos” (vizinhos mais próximos) para realizar classificação
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������F�(��'������8�)���
� Idéia Básica:– Se ele anda como um pato, grasna como um
pato, então é provavelmente um pato
Registros de treinamento
Registro de teste
Calcular distância
Escolher k dos registros “mais
próximos”
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������������F�(��'������8�)���
� Requer três coisas
– Conjunto de registros armazenados
– Métrica de distância para calcular distância entre registros
– Valor de k, o número de vizinhos mais próximos a recuperar
� Para classificar registro desconhecido:
– Calcular distância para outros registros de treinamento
– Identificar k vizinhos mais próximos
– Usar rótulos da classe dos vizinhos mais próximos para determinar o rótulo da classe do registro desconhecido (e.g., pelo voto da maioria)
������������
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������F�(��'������8�)���
X X X
(a) 1-nearest neighbor (b) 2-nearest neighbor (c) 3-nearest neighbor
K-vizinhos mais próximos de um registro x são pontos de dados que tem a k-ésima menor distância para x
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
F�(��'������8�)����@*>%%A
Diagrama de Voronoi
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������F�(��'������8�)���
� Calcular distância entre dois pontos:– Distância Euclidiana
� Determinar a classe a partir da lista dos vizinhos mais próximos– Usar voto da maioria dos rótulos de classe
entre os k-vizinhos mais próximos– Ponderar o voto de acordo com a distância
� fator de ponderação, w = 1/d2
� −=i ii
qpqpd 2)(),(
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������F�(��'������8�)����E
� Escolhendo o valor de k:– Se k é muito pequeno, há sensibilidade ao ruído– Se k é muito grande, a vizinhança pode incluir pontos
de outras classes
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������F�(��'������8�)����E
� Questões de escalamento– Atributos podem ter de ser escalados para
evitar medidas de distâncias serem dominadas por um dos atributos
– Exemplo:� altura de uma pessoa pode variar de 1.5m a 1.8m� peso de uma pessoa pode variar de 45kg a 150kg� renda de uma pessoa pode variar de $1k a $100k
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������F�(��'������8�)����E
� Problema com medida Euclidiana:– Dados de alta dimensionalidade
� Maldição da dimensionalidade
– Pode produzir resultados contra-intuitivos
1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1vs
d = 1.4142 d = 1.4142
� Solução: Normalizar vetores para tamanho unitário
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������������F�(��'������8�)����E
� Classificador k-NN é lazy learner (“aprendizagem preguiçosa”)– Não constrói explicitamente modelos– Diferente da “aprendizagem ávida” (“eager
learner”) como árvore de decisão e sistemas baseados em regras
– Classificação de registros desconhecidos érelativamente cara computacionalmente
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6�N�����
� Quadro probabilístico para resolução de problemas de classificação
� Probabilidade Condicional:
� Teorema de Bayes:
)()()|(
)|(AP
CPCAPACP =
)(),(
)|(
)(),(
)|(
CPCAP
CAP
APCAP
ACP
=
=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��������������������6�N��
� Dados:– Um médico sabe que meningite causa enrijecimento do
pescoço em 50% dos casos– Probabilidade a priori de paciente ter meningite é 1/50,000– Probabilidade a priori de paciente ter pescoço rijo é 1/20
� Se um paciente tem pescoço rijo, qual é a probabilidade de ter meningite?
0002.020/150000/15.0
)()()|(
)|( =×==SP
MPMSPSMP
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6�N�����
� Considera cada atributo e rótulo de classe como variável aleatória
� Dado um registro com atributos (A1, A2, … ,An)– Objetivo é prever a classe C– Especificamente, deseja-se encontrar o valor de
C que maximiza P(C | A1, A2, … , An)
� Pode-se estimar P(C | A1, A2, … , An) diretamente a partir dos dados?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6�N�����
� Abordagem:– Calcular probabilidade a posteriori P(C | A1, A2, …, An)
para todos valores de C usando teorema de Bayes
– Escolher valor de C que maximiza P(C | A1, A2, … , An)
– Equivalente a escolher valor de C que maximizaP(C | A1, A2, … , An) P(C)
� Como estimar P(C | A1, A2, … , An)?
)()()|(
)|(21
21
21
n
n
n AAAPCPCAAAP
AAACP�
�
� =
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������%�O�� 6�N��
� Assume independência entre atributos Ai quando a classe é dada:– P(A1, A2, … , An | C) = P(A1 | Cj) P(A2 | Cj) … P(An | Cj)
– Pode estimar P(Ai | Cj) para todo Ai e Cj.
– Novo ponto é classificado como Cj se P(Cj) Π P(Ai | Cj) é máximo.
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8�$�$��������������������� ���#
� Classe: P(C) = Nc/N– e.g., P(No) = 7/10,
P(Yes) = 3/10
� Para atributos discretos:P(Ai | Ck) = |Aik| / Nc
– em que |Aik| é número de instâncias com atributo Aie que pertence à classe Ck
– Exemplos:
P(Status=Married|No) = 4/7P(Refund=Yes|Yes)=0
k
Tid Refund Marital Status
Taxable Income Evade
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
categorical
categorical
continuous
class
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8�$�$��������������������� ���#
� Para atributos contínuos:– Discretizar a faixa em regiões
� um atributo ordinal por região� viola o princípio da independência
– Two-way split: (A < v) ou (A > v)� escolher só uma das divisões como novo atributo
– Estimação da densidade de probabilidade:� Assume que atributo segue distribuição normal� Usa dados para estimar parâmetros da distribuição
(e.g., média e desvio padrão)� Sendo conhecida distribuição de probabilidades, pode-se usá-la para estimar a probabilidade condicional P(Ai|c)
k
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������8�$�$��������������������� ���#
� Distribuição Normal:
– Um para cada par (Ai,ci)
� Para (Income, Class=No):– Se Class=No
� média da amostra = 110� variância da amostra = 2975
Tid Refund Marital Status
Taxable Income Evade
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
categorical
categorical
continuous
class
2
2
2
)(
221
)|( ij
ijiA
ij
jiecAP σ
µ
πσ
−−
=
0072.0)54.54(2
1)|120( )2975(2
)110120( 2
===−−
eNoIncomePπ
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������������%�O�� 6�N��
P(Refund=Yes|No) = 3/7P(Refund=No|No) = 4/7P(Refund=Yes|Yes) = 0P(Refund=No|Yes) = 1P(Marital Status=Single|No) = 2/7P(Marital Status=Divorced|No)=1/7P(Marital Status=Married|No) = 4/7P(Marital Status=Single|Yes) = 2/7P(Marital Status=Divorced|Yes)=1/7P(Marital Status=Married|Yes) = 0
For taxable income:If class=No: sample mean=110
sample variance=2975If class=Yes: sample mean=90
sample variance=25
naive Bayes Classifier:
120K)IncomeMarried,No,Refund( ===X
� P(X|Class=No) = P(Refund=No|Class=No)× P(Married| Class=No)× P(Income=120K| Class=No)
= 4/7 × 4/7 × 0.0072 = 0.0024
� P(X|Class=Yes) = P(Refund=No| Class=Yes)× P(Married| Class=Yes)× P(Income=120K| Class=Yes)
= 1 × 0 × 1.2 × 10-9 = 0
Como P(X|No)P(No) > P(X|Yes)P(Yes)Então P(No|X) > P(Yes|X)
=> Class = No
Dado um registro de teste:
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������%�O�� 6�N��
� Se uma probabilidade condicional é zero, então a expressão inteira torna-se zero
� Estimação de probabilidade:
mNmpN
CAP
cNN
CAP
NN
CAP
c
ici
c
ici
c
ici
++=
++=
=
)|(:M Estimativa
1)|(:Laplace
)|( :Originalc: número de classes
p: probabilidade a priori
m: parâmetro
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������������������%�O�� 6�N��
Name Give Birth Can Fly Live in Water Have Legs Classhuman yes no no yes mammalspython no no no no non-mammalssalmon no no yes no non-mammalswhale yes no yes no mammalsfrog no no sometimes yes non-mammalskomodo no no no yes non-mammalsbat yes yes no yes mammalspigeon no yes no yes non-mammalscat yes no no yes mammalsleopard shark yes no yes no non-mammalsturtle no no sometimes yes non-mammalspenguin no no sometimes yes non-mammalsporcupine yes no no yes mammalseel no no yes no non-mammalssalamander no no sometimes yes non-mammalsgila monster no no no yes non-mammalsplatypus no no no yes mammalsowl no yes no yes non-mammalsdolphin yes no yes no mammalseagle no yes no yes non-mammals
Give Birth Can Fly Live in Water Have Legs Classyes no yes no ?
0027.02013
004.0)()|(
021.0207
06.0)()|(
0042.0134
133
1310
131
)|(
06.072
72
76
76
)|(
=×=
=×=
=×××=
=×××=
NPNAP
MPMAP
NAP
MAP
A: atributos
M: mammals
N: non-mammals
P(A|M)P(M) > P(A|N)P(N)
=> Mammals
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
%�O�� 6�N���@=��5��A
� Robusto a pontos isolados de ruído
� Suporta valores faltantes ignorando a instância durante cálculos da estimativa de probabilidade
� Robusto a atributos irrelevantes
� Pressuposição de Independência pode não se sustentar para alguns atributos– Usar outros técnicas tais como Bayesian
Belief Networks (BBN)
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B�����%�������������������@B%�A
Saída Y é 1 se pelo menos 2 das 3 entradas forem iguais a 1.
X1 X2 X3 Y1 0 0 01 0 1 11 1 0 11 1 1 10 0 1 00 1 0 00 1 1 10 0 0 0
ΣΣΣΣ
X1
X2
X3
Y
Caixa Preta
0.3
0.3
0.3 t=0.4
Nó deSaída
Nós deEntrada
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B�����%�������������������@B%�A
�
=
>−++=
contrário caso em0o verdadeiré se1
)( que em
)04.03.03.03.0( 321
zzI
XXXIY
X1 X2 X3 Y1 0 0 01 0 1 11 1 0 11 1 1 10 0 1 00 1 0 00 1 1 10 0 0 0
ΣΣΣΣ
X1
X2
X3
Y
Caixa Preta
0.3
0.3
0.3 t=0.4
Nó deSaída
Nós deEntrada
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
B�����%�������������������@B%�A
� Modelo é um conjunto de nós interconectados e ligações com pesos
� Nó de saída soma cada valor de entrada de acordo com o peso de sua ligação
� Compara nó de saída com algum limiar t
)( tXwIYi
ii −= �
Modelo do Perceptron
)( tXwsignYi
ii −= �
or
ΣΣΣΣ
X1
X2
X3
Y
Caixa Preta
0.3
0.3
0.3 t=0.4
Nó deSaída
Nós deEntrada
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
���������� ������������B%�
Treinar uma RNA significa aprender os pesos dos
neurônios
Camadade
Entrada
CamadaEscondida
Camadade
Saída
x1 x2 x3 x4 x5
y
Função deativação
g(Si )Si Oi
I1
I2
I3
wi1
wi2
wi3
Oi
Neurônio iEntrada Saída
limiar, t
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��!���������������(�!������B%�
� Inicializar os pesos (w0, w1, … , wk)
� Ajustar os pesos de tal forma que a saída da RNA seja consistente com os rótulos das classes dos exemplos de treinamento– Função Objetivo:
– Encontrar os pesos wi que minimizam a função objetivo anterior� e.g., algoritmo backpropagation
[ ]2),(� −=
iiii XwfYE
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Encontrar um hiperplano linear (superfície de decisão) que irá separar os dados
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Uma possível solução
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Outra solução possível
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Outras soluções possíveis
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Qual é melhor? B1 ou B2?� Como se define melhor?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Achar hiperplano que maximiza a margem => B1 é melhor que B2
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
0=+• bxw��
1−=+• bxw�� 1+=+• bxw
��
�
−≤+•−≥+•
=1bxw se1
1bxw se1)(
��
��
�
xf 2||||2
Margemw�
=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� Deseja-se maximizar:
– Isto é equivalente a minimizar:
– Porém sujeito às seguintes restrições:
� Este é um problema de otimização com restrições– Abordagens numéricas para solução (e.g., programação
quadrática)
2||||2
Margemw�
=
�
−≤+•−≥+•
=1bxw se1
1bxw se1)(
i
i��
��
�
ixf
2||||
)(2w
wL�
=
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� E se o problema não for linearmente separável?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
=������F��������'����
� E se o problema não for linearmente separável?– Introduzir variáveis de folga
� Deve-se minimizar:
� Sujeito a:
�
+−≤+•−≥+•
=ii
ii
1bxw se1-1bxw se1
)(ξ
�
��
�
ixf
��
���
�+= �=
N
i
kiC
wwL
1
2
2||||
)( ξ�
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
%>�������=������F��������'����
� E se a superfície de decisão não for linear?
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
%>������=������F��������'����
� Transformar dados para espaço de maior dimensão
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
��$����������������������
� Construir um conjunto de classificadores a partir dos dados de treinamento
� Prever o rótulo da classe de registros previamente desconhecidos através da agregação de previsões feitas por múltiplos classificadores
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
������ ����
Dados deTreinamento
Originais
....D1 D2 Dt-1 Dt
D
Passo 1:Criar Múltiplos
ConjuntosDe Dados
C1 C2 Ct -1 Ct
Passo 2:ConstruirMúltiplos
Classificadores
C*Passo 3:Combinar
Classificadores
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
8��K�P������������#
� Suponha haver 25 classificadores de base– Cada classificador tem taxa de erro ε = 0.35– Assuma que os classificadores são
independentes– Probabilidade que a combinação de
classificadores faça uma previsão incorreta:
�=
− =−���
����
�25
13
25 06.0)1(25
i
ii
iεε
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������$����������������������
� Como gerar uma combinação de classificadores?
– Bagging
– Boosting
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
6�!!��!
� Amostragem com reposição
� Construir classificador sobre cada amostra bootstrap
� Cada amostra tem probabilidade (1 – 1/n)n de ser selecionada
Original Data 1 2 3 4 5 6 7 8 9 10Bagging (Round 1) 7 8 10 8 2 5 10 10 5 9Bagging (Round 2) 1 4 9 1 2 3 2 7 3 2Bagging (Round 3) 1 8 5 10 5 5 9 6 3 7
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
6����!
� Procedimento iterativo para alterar de maneira adaptativa a distribuição dos dados de treinamento centrando mais em registros previamente classificados incorretamente– Inicialmente, a todos os N registros
assinalam-se pesos iguais– Ao contrário de bagging, pesos podem mudar
no final da rodada de boosting
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
6����!
� Registros que são classificados incorretamente terão seus pesos aumentados
� Registros que são classificados corretamente terão seus pesos diminuídos
Original Data 1 2 3 4 5 6 7 8 9 10Boosting (Round 1) 7 3 2 8 7 9 4 10 6 3Boosting (Round 2) 5 4 9 4 2 5 1 7 4 2Boosting (Round 3) 4 4 8 10 4 5 4 6 3 4
• Exemplo 4 é difícil de classificar
• Seu peso é aumentado; desta forma ele mais provavelmente será escolhido novamente em rodadas subseqüentes
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������6��
� Classificadores de Base: C1, C2, …, CT
� Taxa de Erro:
� Importância de um classificador:
( )�=
≠=N
jjjiji yxCw
N 1
)(1 δε
���
����
� −=i
ii ε
εα 1ln
21
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�����������6��
� Atualização de pesos:
� Se qualquer rodada intermediária produz taxa de erro maior que 50%, os pesos retornam para 1/ne o procedimento de re-amostragem é repetido
� Classificação:
ãonormalizaç defator o é que em
)( seexp
)( seexp)()1(
j
iij
iij
j
jij
i
Z
yxC
yxCZ
ww
j
j
��
�
≠=
=−
+α
α
( )�=
==T
jjj
yyxCxC
1
)(maxarg)(* δα
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6��
Pontos de Dados para Treinamento
Pesos iniciais para cada ponto de dados
DadosOriginais + + + -- - - - + +
0.1 0.1 0.1
BoostingRodada 1 + + + -- - - - - -
0.0094 0.0094 0.4623B1
α = 1.9459
Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR
�������������6��
BoostingRodada 1 + + + -- - - - - -
BoostingRodada 2 - - - -- - - - + +
BoostingRodada 3 + + + ++ + + + + +
Geral + + + -- - - - + +
0.0094 0.0094 0.4623
0.3037 0.0009 0.0422
0.0276 0.1819 0.0038
B1
B2
B3
α = 1.9459
α = 2.9323
α = 3.8744