prof. júlio cesar nievola data mining ppgia -...

186
Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPR

Upload: others

Post on 16-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

�����������

Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPR

Page 2: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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.

Page 3: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 4: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 5: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 6: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 7: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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!

Page 8: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 9: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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.

Page 10: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 11: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 12: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 13: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 14: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 15: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 16: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

������������������ ����

� Muitos Algoritmos:

– Algoritmo de Hunt (um dos primeiros)

– CART

– ID3, C4.5

– SLIQ, SPRINT

Page 17: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

?

Page 18: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 19: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 20: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 21: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 22: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 23: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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}

Page 24: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 25: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�����$��������������$�������&���

Page 26: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 27: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 28: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 29: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�����������������(��������%)

� Índice Gini

� Entropia

� Erro de Classificação

Page 30: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 31: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 32: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 33: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

)(

Page 34: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 35: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 36: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 37: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 38: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)|()(

Page 39: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 40: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

)()(

Page 41: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 42: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

−=

Page 43: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

−=

Page 44: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�������������������������� ����

Para um problema de duas classes:

Page 45: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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 !!

Page 46: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 47: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 48: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 49: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 50: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

;����<���8�5��������������������

� Sub- e sobre-ajuste (Underfitting e Overfitting)

� Valores Faltantes

� Custos de Classificação

Page 51: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 52: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 53: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=$��>�?�������������B�&�

Fronteira decisória é distorcida pelo ponto de ruído

Page 54: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 55: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 56: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 57: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 58: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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 ?

Page 59: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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).

Page 60: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 61: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 62: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 63: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 64: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 65: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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%� -��

Page 66: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 67: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�������;����<��

� Fragmentação de Dados

� Estratégia de Busca

� Expressividade

� Replicação de Árvore

Page 68: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 69: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 70: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 71: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 72: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 73: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 74: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 75: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 76: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 77: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 78: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 79: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 80: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 81: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 82: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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+++

+=

Page 83: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 84: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 85: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 86: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 87: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 88: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 89: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 90: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 91: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 92: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 93: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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:

Page 94: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 95: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)?

Page 96: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

+××−××+±+××

=

Page 97: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 98: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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(

ˆ−=σ

Page 99: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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/±=

Page 100: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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ˆ =−+−=

128.0100.00043.096.1100.0 ±=×±=t

d

Page 101: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

−−

=

±=−−

=�

Page 102: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

����� ���� �����������������

Page 103: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 104: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 105: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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 ?

Page 106: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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%

Page 107: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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 ?

Page 108: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 109: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 110: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 111: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 112: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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 ?

Page 113: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 114: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 115: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 116: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�����������$�������=�KM������

(ii) Step 1

Page 117: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�����������$�������=�KM�������E

(iii) Step 2

R1

(iv) Step 3

R1

R2

Page 118: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 119: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

���������������B�!���

� Duas estratégias comuns

Page 120: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 121: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 122: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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=

Page 123: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 124: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 125: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 126: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 127: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 128: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 129: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

��������������

Page 130: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 131: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 132: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 133: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 134: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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:

Page 135: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 136: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 137: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 138: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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”

Page 139: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

������������

Page 140: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 141: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

F�(��'������8�)����@*>%%A

Diagrama de Voronoi

Page 142: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)(),(

Page 143: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 144: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 145: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 146: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 147: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

=

=

Page 148: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 149: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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?

Page 150: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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�

� =

Page 151: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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.

Page 152: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 153: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 154: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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π

Page 155: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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:

Page 156: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 157: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 158: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)

Page 159: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 160: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 161: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 162: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 163: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 164: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Encontrar um hiperplano linear (superfície de decisão) que irá separar os dados

Page 165: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Uma possível solução

Page 166: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Outra solução possível

Page 167: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Outras soluções possíveis

Page 168: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Qual é melhor? B1 ou B2?� Como se define melhor?

Page 169: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� Achar hiperplano que maximiza a margem => B1 é melhor que B2

Page 170: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

0=+• bxw��

1−=+• bxw�� 1+=+• bxw

��

−≤+•−≥+•

=1bxw se1

1bxw se1)(

��

��

xf 2||||2

Margemw�

=

Page 171: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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�

=

Page 172: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

=������F��������'����

� E se o problema não for linearmente separável?

Page 173: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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||||

)( ξ�

Page 174: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

%>�������=������F��������'����

� E se a superfície de decisão não for linear?

Page 175: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

%>������=������F��������'����

� Transformar dados para espaço de maior dimensão

Page 176: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 177: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 178: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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εε

Page 179: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR

�������������$����������������������

� Como gerar uma combinação de classificadores?

– Bagging

– Boosting

Page 180: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 181: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 182: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 183: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 184: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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)(* δα

Page 185: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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

Page 186: Prof. Júlio Cesar Nievola Data Mining PPGIa - PUCPRfabricio/ftp/Aulas/Mestrado/IA/Nievola/MD/M… · Prof. Júlio Cesar Nievola Data Mining PPGIa – PUCPR Dada uma coleção de

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