Renato Francês e Aldebaro Klautau Universidade Federal do Pará

58
1 Renato Francês e Aldebaro Klautau Universidade Federal do Pará Fundamentos matemáticos da mineração de dados

description

Fundamentos matem áticos da mineração de dados. Renato Francês e Aldebaro Klautau Universidade Federal do Pará. Exemplo de situações. Quais os produtos que são comprados juntos pelos clientes?  regras de associação - PowerPoint PPT Presentation

Transcript of Renato Francês e Aldebaro Klautau Universidade Federal do Pará

Page 1: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

1

Renato Francês e Aldebaro Klautau Universidade Federal do Pará

Fundamentos matemáticos da mineração de dados

Page 2: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

2

Exemplo de situações

Quais os produtos que são comprados juntos pelos clientes? regras de associação

Mala direta: enviar ou não um catálogo de produtos a um eventual comprador? classificação

Diagnóstico de câncer: quais os fatores mais importantes? seleção de fatores (parâmetros)

Mercado de ações: como prever uma grandeza (número real) com base em outras? regressão

Eleitores: como podem ser agrupados? agrupamento (“clustering”)

Page 3: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

3

Sumário

Definições e etapas do “data mining”Pré-processamento e o pacote WekaMinerando regras de associaçãoClassificação

Ênfase: árvores de decisão, redes neurais eSVM (“support vector machine”)

Seleção de parâmetros ou redução da dimensionalidade

Predição ou regressãoAnálise de grupamentos

“Cluster analysis”Conclusões

Page 4: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

4

Data mining

Extração (ou “mineração”) de conhecimento a partir de grandes quantidades de dados

“Knowledge discovery in databases” (KDD) Etapas do KDD:

Data cleaning Data integration Data selection Data transformation

Data mining Pattern evaluation Knowledge presentation

Page 5: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

5

Agrega profissionais de várias áreas

Reconhecimento de padrões

Tecnologia de banco de dados

Outros...

Mineração de dados

Page 6: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

6

Aspecto prático: Weka

Pacote “open-source”

Escrito em Java

Integra vários algoritmos

Fácil de usar

Não é o mais rápido

Page 7: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

7

Dados ou informação “bruta”

Assumimos estarem organizados em arquivos simples

Nome Telefone Peso País

Bush 1 43 228859 67 EUA

Lula 55 23 591927 78 Brasil

Fidel 34 95 499402 82 Cuba

... ... ... ...

registros, exemplos ou “instances”

campo ou atributo

Page 8: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

8

Atributos no Weka

Exemplo, atributos: Nome, Brasileiro, Partido, Peso, Idade Exemplo, registros (“instance”): Lula, Sim, PT, 80.7, 58 Campo (ou atributo) pode ser: A) Nominal ou Discreto, K possíveis valores (K é um

inteiro) Binários, K=2 - brasileiro? sim ou não Multi-classe, K>2 - partido? PDT, PT, PFL,..., PMDB

B) Contínuos Números reais – peso? 80.7, 23.2, 56.4, ... Inteiros – idade? 1, 2, 3, ...

C) Strings Exemplo: nome? Bush, Saddam, Lula, ...

D) Outros: data, etc.

Page 9: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

9

Formato ARFF do Weka

@relation car

@attribute buying {vhigh, high, med, low}@attribute maint {vhigh, high, med, low}@attribute doors {2, 3, 4, 5more}@attribute persons {2, 4, more}@attribute lug_boot {small, med, big}@attribute safety {low, med, high}@attribute class {unacc, acc, good,

vgood}

@data

vhigh,vhigh,2,2,small,low,unaccvhigh,vhigh,2,2,small,med,unacc...

Obs: CSV + cabeçalho (header)

Page 10: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

10

Pré-processamento (limpeza dos dados)

Discretizar atributos

QUANTIZADORUNIFORME

ENTRADA

SAÍDA

1 2 3 4 -4 -3 -2 -1

4

3

2

1

-1

-2

-3

-4

011

010

001

000

100

101

110

111

Page 11: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

11

Histograma

Base IDH (índice de desenvolvimento humano) 29 exemplos ou “instances”

Analfabe. Mortalid. Exp. Vida Renda IDH

4 8 78 25880 primeira

5 6 78 19510 primeira

10 35 71 4180 segunda

55 86 57 230 Terceira

... ... ... ... ...

Page 12: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

12

Histogramas (uniformes) do atributo “renda”

Com 10 “bins”

0 0.5 1 1.5 2 2.5 3

x 104

0

5

10

15

0.4505 1.3055 2.1605

x 104

0

5

10

15

20

25

30

Com 3 “bins”

Page 13: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

13

Histograma não-uniforme

Exemplo: 5 bins: 4 uniformes e 1 mais largo

0 0.250.50.75 1 3

x 104

0

2

4

6

8

10

12

14

Page 14: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

14

Regras de associação

Tabela

Regras:Idade=Jovem E Renda=Alta ==> Classe=AIdade=Jovem E Renda=Baixa ==> Classe=BIdade=Idoso ==> Classe=C

Idade Renda Classe Núme.

Jovem Alta A 1402

Jovem Baixa B 1038

Idoso Alta C 786

Idoso Baixa C 1374

Page 15: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

15

Definições úteis

Regra A ==> B

Confidência = P (A e B ocorrerem juntos) / P(A)

= P (B | A)

Suporte = P (A e B ocorrerem juntos)

Page 16: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

16

Regras de associação – venda de carro

Exemplo (algoritmo apriori) para dataset “car”: 1. safety=low 576 ==> class=unacc 576 conf:(1) 2. persons=2 576 ==> class=unacc 576 conf:(1) 3. maint=vhigh 432 ==> class=unacc 360 conf:(0.83) 4. buying=vhigh 432 ==> class=unacc 360 conf:(0.83) 5. lug_boot=small 576 ==> class=unacc 450 conf:(0.78) 6. doors=2 432 ==> class=unacc 326 conf:(0.75) 7. buying=high 432 ==> class=unacc 324 conf:(0.75) 8. maint=high 432 ==> class=unacc 314 conf:(0.73) 9. doors=3 432 ==> class=unacc 300 conf:(0.69)10. lug_boot=med 576 ==> class=unacc 392 conf:(0.68)

Page 17: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

17

Dataset “futebol”

@relation futebol

@attribute outlook {sunny, overcast, rainy}@attribute temperature real@attribute humidity real@attribute outofstate {TRUE, FALSE} joga fora?@attribute wins {yes, no}

@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yes...

Page 18: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

18

Regras para “futebol”

Best rules found:

1. outlook=overcast 4 ==> wins=yes 4 conf:(1) 2. outlook=rainy outofstate=FALSE 3 ==> wins=yes 3 conf:(1) 3. outlook=rainy wins=yes 3 ==> outofstate=FALSE 3 conf:(1) 4. humidity='(89.8-92.9]' 3 ==> outofstate=TRUE 3 conf:(1) 5. humidity='(77.4-80.5]' 2 ==> outlook=rainy outofstate=FALSE

wins=yes 2 conf:(1) 6. outlook=rainy humidity='(77.4-80.5]' 2 ==> outofstate=FALSE

wins=yes 2 conf:(1) 7. humidity='(77.4-80.5]' outofstate=FALSE 2 ==> outlook=rainy

wins=yes 2 conf:(1) 8. humidity='(77.4-80.5]' wins=yes 2 ==> outlook=rainy

outofstate=FALSE 2 conf:(1) 9. outlook=rainy humidity='(77.4-80.5]' outofstate=FALSE 2 ==>

wins=yes 2 conf:(1)10. outlook=rainy humidity='(77.4-80.5]' wins=yes 2 ==>

outofstate=FALSE 2 conf:(1)

Page 19: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

19

Problema: Dado um vetor x com parâmetros, ache sua

classe y

Exemplo:

Avaliação: taxa de erro

Compr. Peso Classe y

12 3.2

10 0.5

14 2.8

Classificação

ou ?

Conjuntode treino

Fase de “teste”:x = (13, 4.2)

y = ?

classificadorx y

Page 20: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

20

Métodos de avaliação

Testar (obter taxa de erro) usando o próprio conjunto de treino

Testar com conjunto de “teste”, disjunto do de treino

Validação cruzada (“cross-validation”): Repartir o conjunto de treino em N subconjuntos (“folds”) Considerar cada um o conjunto de teste e treinar com os

N-1 restantes

Deixe um de fora (“leave-one-out”) Caso extremo de cross-validation: apenas 1 exemplo

compõe o conjunto de teste e todo o resto é usado para treinar

Matriz de confusões (“confusion-matrix”)

Page 21: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

21

“Over-fitting” e seleção dos parâmetros

Page 22: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

22

Como projetar classificadores?

Page 23: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

23

PirarucuPiranha

Piranha or Pirarucu?

Page 24: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

24

Use “histogramas” obtidosdo conjunto de treinamento

Histograma do comprimento

Page 25: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

25

Regiões de decisão

No caso anterior: um único parâmetro (comprimento do peixe) regiões de decisão eram segmentos de uma reta

Caso mais geral: regiões no espaço k-dimensional Exemplo bidimensional: vogais de Peterson & Barney 2 atributos contínuos F1 e F2 e 1 atributo (classe)

nominal:ER, UW, UH, AO, AA, AH, AE, EH, IH, IY

Exemplos: 1000, 3500, AH 832, 2500, EH ...

Page 26: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

26

P&B vowel dataset

close “how far the tongue is raised” open

bac

k “

whi

ch p

art

of t

he t

ongu

e is

rai

sed”

fr

on

t

Page 27: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

27

Exemplo de regiões de decisão

Page 28: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

28

Árvore de decisão C4.5 (J4.8)

F2 <= 1600| F1 <= 586| | F2 <= 990: UW (92.0/47.0)| | F2 > 990| | | F2 <= 1200: UH (50.0/17.0)| | | F2 > 1200: ER (63.0/23.0)| F1 > 586| | F2 <= 1250: AA (59.0/33.0)| | F2 > 1250: AH (56.0/24.0)F2 > 1600| F1 <= 490| | F1 <= 350: IY (68.0/5.0)| | F1 > 350: IH (61.0/21.0)| F1 > 490| | F1 <= 652: EH (71.0/34.0)| | F1 > 652: AE (79.0/19.0)

Tamanho: 17 nós e 9 folhas

Page 29: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

29

Dataset IDH (índice de des. humano)

Árvore de decisão (algoritmo C4.5 / J4.8)

Analfabetismo <= 10| Mortalidade <= 8: primeira (7.0/1.0)| Mortalidade > 8: segunda (11.0)Analfabetismo > 10| Analfabetismo <= 17| | ExpectVida <= 66: terceira (2.0)| | ExpectVida > 66: segunda (2.0)| Analfabetismo > 17: terceira (7.0)

Número de folhas: 5Tamanho da árvore: 9

Regras (algoritmo Apriori / requer discretização) 1. IDH=terceira 9 ==> Renda='(-inf-2795]' 9 conf:(1) 2. Mortalidade='(12.2-20.4]' 7 ==> IDH=segunda 7 conf:(1) 3. IDH=primeira 6 ==> Analfabetismo='(-inf-7.3]' Mortalidade='(-inf-12.2]' 6

conf:(1)...

Page 30: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

31

backpropagation neural network

decision tree J4.8 (equivalente ao C4.5)

support vector machine (SVM)

AdaBoost

naïve Bayesetc.

Weka: Algoritmos para treinamento de classificadores

Page 31: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

33

Redes neurais artificiais

Tenta imitar cérebro: unidades são “neurônios”

Page 32: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

34

Perceptron

Precursor das redes neurais atuais Não há “camada escondida”: y = W x

Page 33: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

35

Regiões de decisão para P&B: rede neural

Page 34: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

36

Exemplo de regiões de decisão: árvore

Page 35: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

37

Classificador moderno: SVM

Desenvolvida por Vladimir Vapnik e colaboradores Início: década de 60 Concepção atual: [Cortes & Vapnik, 1995]

Importantes ingredientes básicos: Classificadores lineares de máxima

margem “Truque do kernel” para obtenção de

classificadores não-lineares

Page 36: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

38

Classificadores lineares (problemas binários)

f(x)=sgn(<x, w> + b)

x,w є d, f(x) є {1, 1} e b є (“bias”)

é o produto interno

sgn retorna o sinal, com sgn (0) = 1

w é um vetor normalao hiperplano separador

d

nnnwx

1

θcos, wxwx

Exemplo: d=2, x=(x1, x2)

Page 37: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

39-6 -4 -2 0 2 4 6

-6

-4

-2

0

2

4

6

x1

x2

Classificadores lineares (cont.)

f(x)=sgn(<x, w> + b), com w=(2, 4), b=6

1

+1

hiperplanof(x)=0

w

Page 38: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

41

Classes “linearmente separáveis”

SVM (hiperplano com máxima

margem)

perceptron

Perceptron versus SVM

Page 39: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

42

Classificadores lineares são limitados

Exemplo clássico: EXOR (ou exclusivo)

Solução:mapeamento Φ(x) não-linear

Ex: x=(x1, x2)

“Maldição da dimensionalidade”

)2,,()( 2122

21 xxxx x

)5.02sgn()( 2122

21 xxxxf x

)2sgn()( 213222

211 bxxwxwxwf x

Page 40: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

43

“Truque do kernel”

w é uma combinação de vetores de treinamento

Representação “dual” do classificador

Usando-se mapeamento Φ não linear

Exemplo: EXOR

N

iii

1

xw

N

iii bbf

1

',sgn',sgn)'( xxxwx

N

iii bf

1

)'(),(sgn)'( xxx

22121

222

211 ',2)()()'(),( xxxx xxxxxxxx

)2,,()( 2122

21 xxxx x

Não é necessário calcular o mapeamento Φ explicitamente

Escapa-se da “maldição da dimensionalidade” (“statistical learning theory”)

Algoritmos baseados em produtos internos podem ser “kernelizados”

Page 41: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

44

“Truque do kernel” (cont.)

Kernel: produto interno no espaço imagem de Φ

Kernels mais usados: Polinomial

SVM linear, p=1 Gaussiano

Vetores de suporte: exemplos xi para os quais λi

≠ 0

)(),'(),'( iik xxxx

N

iii bkf

1

),'(sgn)'( xxx

piik xxxx ,'),'(

)/'exp(),'(2

ck ii xxxx

Page 42: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

45

SVM não-linear - exemplo

2 classes:“círculos” o - mistura de 2 Gaussianas“pontos” ● - mistura de 3 Gaussianas

SVM com kernel Gaussiano

Médias marcadas com “x”

5 vetores de suporte:marcados com círculo extra

Não “modela”, concentra-senas regiões de decisão

Page 43: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

46

Classificador “support vector machine”

pesos

entrada x

kernel “compara” x e xi

vetores de suporte: x1, x2, x3 e x4

Page 44: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

47

SVM (cont.)

entrada x

B classificadores binários SVM

)(

)(1

xf

xf

B

Combina decisões f1(x),...,fB(x) via matriz ECOC

Page 45: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

48

Classificadores: ANN versus SVM

Rede neural

SVMs

Page 46: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

49

Problema do Weka/SVM: tempo de treinamento

Usamos 4 pacotes SVM “open source” Weka (Java) SVMTorch (C++) SVMLight (C) SvmFu (C++)

“dataset” # treino dim.

isolet 6238 26

e-set 2160 9

letter 16000 26

satimage 4435 6

pendigits 7494 10

timitplp40

138839 39

Torchoutros

maior conjunto de treino

02468

101214161820

isolet

-a

isolet

-o

e-se

t-a

e-se

t-o

lette

r-a

lette

r-o

satim

age-

a

satim

age-

o

pend

igits-

a

pend

igits-

o

timitp

lp40-a

timitp

lp40-o

Weka*

SVMLight

SvmFu

Page 47: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

50

Redução da dimensionalidade

Métodos “filters” Ganho de informação AdaBoost

Métodos “wrappers” Depende dos classificadores Problema: complexidade computacional

Page 48: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

51

“Breast-cancer” dataset

Atributos 1. Class: no-recurrence-events, recurrence-events 2. age: 10-19, 20-29, 30-39, 40-49, 50-59, 60-69,

70-79, 80-89, 90-99. 3. menopause: lt40, ge40, premeno. 4. tumor-size: 0-4, 5-9, 10-14, 15-19, 20-24, 25-29,

30-34, 35-39, 40-44, 45-49, 50-54, 55-59. 5. inv-nodes: 0-2, 3-5, 6-8, 9-11, 12-14, 15-17, 18-

20, 21-23, 24-26, 27-29, 30-32, 33-35, 36-39. 6. node-caps: yes, no. 7. deg-malig: 1, 2, 3. 8. breast: left, right. 9. breast-quad: left-up, left-low, right-up, right-low,

central.10. irradiat: yes, no.

Page 49: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

52

Atributos selecionados Método 1Selected attributes: 3,4,5,6,9 : 5 tumor-size inv-nodes node-caps deg-malig irradiat Método 2Selected attributes: 6,4,3,5,9,1,8,7,2 : 9 0.07701 6 deg-malig 0.069 4 inv-nodes 0.05717 3 tumor-size 0.05126 5 node-caps 0.02582 9 irradiat 0.01061 1 age 0.00885 8 breast-quad 0.00249 7 breast 0.002 2 menopause

Page 50: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

53

Exemplo de experimento prático

05

1015202530354045

5 25 40 100 all 760 plp 118

info gain

boosting

others

3 x 253 + 1 = 760 “features”SVMs com kernel linear (perceptron)Algoritmo de seleção:

AdaBoost vs. ganho de informação (“info gain”)

Page 51: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

54

Histograma dos parâmetros selecionados

F0, voicing, 4 formants

PLP (39)

Seneff’s synchrony (40)

Seneff’s envelope (40)

MFCC (39)

RASTA (39)

Filter-bank (50)

Page 52: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

55

Predição (ou regressão)

Regressão linear

Regressão não-linear

Page 53: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

56

Regressão linear

Código MatlabN=100; a=3;t=rand(1,N);x=a*t+rand(1,N);plot(t,x,'o');

Linear Regression Model (Weka)

Y = 2.9974 * X + 0.4769

Correlation coefficient 0.9358Mean absolute error 0.2744

0 0.2 0.4 0.6 0.8 10

1

2

3

4

0 0.2 0.4 0.6 0.8 10

1

2

3

4

Page 54: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

57

Regressão não-linear

Código MatlabN=100;a=3;x=rand(1,N);y=a*cos(2*pi*x)+rand(1,N);plot(x,y,'o');

Problema: Linear não resolve

Solução: Redes neurais SVM

0 0.2 0.4 0.6 0.8 1-3

-2

-1

0

1

2

3

4

Page 55: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

58

Análise de grupamentos

Algoritmos: K-means EM (“expectation maximization”)

Page 56: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

59

Weka avançado

Usando Weka da linha de comando PATH

DOS: setLinux: bash (export), tcsh (setenv)

CLASSPATH

Modificando o código fonte do Weka Compilador JBuilder

Page 57: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

60

Conclusões

Mineração de dados é uma área multidisciplinar que se beneficia, dentre outras, de técnicas de “reconhecimento de padrões”

Discutimos: regras, classificação, regressão, agrupamentos

Reconhecimento de padrões exige alguma matemática para se entender os algoritmos

Weka é ideal para iniciantes, ou pessoas que desenvolvam algoritmos na área

A competência do profissional é fator essencial para “bamburrar” em conhecimento

Page 58: Renato Francês e  Aldebaro  Klautau  Universidade Federal do Pará

61

Para ler mais:

Data mining: Concepts and techniques. Jiawei Han e Micheline Kamber, Morgan Kaufmann, 2001

Data mining: Practical machine learning tools and techniques with Java implementations. Ian Witten e Eibe Frank, Morgan Kaufmann

http://www.laps.ufpa.br