1 / 58

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fundamentos matemáticos da mineração de dados 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”)

  3. Sumário • Definições e etapas do “data mining” • Pré-processamento e o pacote Weka • Minerando regras de associação • Classificaçã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ão • Análise de grupamentos • “Cluster analysis” • Conclusões

  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

  5. Agrega profissionais de várias áreas Mineração de dados Reconhecimento de padrões Tecnologia de banco de dados Outros...

  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

  7. Dados ou informação “bruta” campo ou atributo registros, exemplos ou “instances” • Assumimos estarem organizados em arquivos simples

  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.

  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,unacc vhigh,vhigh,2,2,small,med,unacc ... Obs: CSV + cabeçalho (header)

  10. Pré-processamento (limpeza dos dados) SAÍDA 011 010 001 000 4 3 2 1 -4 -3 -2 -1 1 2 3 4 ENTRADA 100 101 110 111 -1 -2 -3 -4 • Discretizar atributos QUANTIZADORUNIFORME

  11. Histograma • Base IDH (índice de desenvolvimento humano) • 29 exemplos ou “instances”

  12. Histogramas (uniformes) do atributo “renda” • Com 10 “bins” • Com 3 “bins”

  13. Histograma não-uniforme • Exemplo: 5 bins: 4 uniformes e 1 mais largo

  14. Regras de associação • Tabela • Regras: Idade=Jovem E Renda=Alta ==> Classe=A Idade=Jovem E Renda=Baixa ==> Classe=B Idade=Idoso ==> Classe=C

  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)

  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)

  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} @data sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes ...

  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)

  19. Classificação ? ou x y classificador • Problema: • Dado um vetor x com parâmetros, ache sua classe y • Exemplo: • Avaliação: taxa de erro Fase de “teste”: x = (13, 4.2) y = ? Conjuntode treino 

  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 osN-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”)

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

  22. Como projetar classificadores?

  23. Piranha or Pirarucu? • Pirarucu • Piranha

  24. Use “histogramas” obtidosdo conjunto de treinamento Histograma do comprimento

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

  26. P&B vowel dataset  back “which part of the tongue is raised” front   close “how far the tongue is raised” open 

  27. Exemplo de regiões de decisão

  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

  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: 5 Tamanho 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) ...

  30. Weka: Algoritmos para treinamento de classificadores • backpropagation neural network • decision tree J4.8 (equivalente ao C4.5) • support vector machine (SVM) • AdaBoost • naïve Bayes • etc.

  31. Redes neurais artificiais • Tenta imitar cérebro: unidades são “neurônios”

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

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

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

  35. 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áximamargem • “Truque do kernel” para obtenção de classificadores não-lineares

  36. 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 Exemplo: d=2, x=(x1, x2)

  37. Classificadores lineares (cont.) +1 1 • f(x)=sgn(<x, w> + b), com w=(2, 4), b=6 w hiperplanof(x)=0

  38. Perceptron versus SVM Classes “linearmente separáveis” perceptron SVM (hiperplano com máxima margem)

  39. 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”

  40. “Truque do kernel”  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” • w é uma combinação de vetores de treinamento • Representação “dual” do classificador • Usando-se mapeamento Φ não linear • Exemplo: EXOR

  41. “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

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

  43. Classificador “support vector machine” pesos kernel “compara” x e xi vetores de suporte: x1, x2, x3 e x4 entrada x

  44. SVM (cont.) B classificadores binários SVM Combina decisões f1(x),...,fB(x) via matriz ECOC entrada x

  45. Classificadores: ANN versus SVM • Rede neural • SVMs

  46. Problema do Weka/SVM: tempo de treinamento • Usamos 4 pacotes SVM “open source” • Weka (Java) • SVMTorch (C++) • SVMLight (C) • SvmFu (C++) maior conjunto de treino

  47. Redução da dimensionalidade • Métodos “filters” • Ganho de informação • AdaBoost • Métodos “wrappers” • Depende dos classificadores • Problema: complexidade computacional

  48. “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.

  49. Atributos selecionados • Método 1 Selected attributes: 3,4,5,6,9 : 5 tumor-size inv-nodes node-caps deg-malig irradiat • Método 2 Selected 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

  50. Exemplo de experimento prático • 3 x 253 + 1 = 760 “features” • SVMs com kernel linear (perceptron) • Algoritmo de seleção: • AdaBoost vs. ganho de informação (“info gain”)

More Related