Modelos de Previsão Paulo J Azevedo DI - Universidade do Minho 2005-2008,2009,2010 Estudo de métodos para a geração de modelos de previsão a partir de dados históricos. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 1 Introdução • Estudar métodos (algoritmos) que a partir de um conjunto de dados (treino) e da definição de uma propriedade (atributo) objectivo, derivam estruturas abstractas (modelos) que resumem as características essenciais para chegar aos valores do atributo objectivo. • Quando expostos a novos casos, os modelos são capazes de gerar uma previsão para o valor do atributo objectivo do novo exemplo. • Em geral, os algoritmos procuram a definição de uma função ( X 1 , X 2 ,..., X j ) Y em que X1,X2,…,Xj são atributos dos dados e Y é o atributo objectivo. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 2 Por vezes é Importante visualizar o modelo. Modelos Algoritmo Dataset Modelo Novo caso Pré processamento Decisão Dois tipos de previsão: Categórica: Classificação Numérica: Regressão Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 3 Classificação • Processo mecânico de aprendizagem que considera um conjunto de dados classificados (treino) para aprender a classificar novos casos (dar valor de classe a novos indivíduos) • Classe = atributo objectivo • Exemplo clássico: Instituição Bancária com experiência no crédito à habitação pretende implementar atribuição automática de crédito com base em pedidos anteriores. • Questões: que características dos casos anteriores devem ser consideradas? Considerar todos os pedidos anteriores? Como avaliar o classificador ? Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 4 Exemplo Dataset Insectos Insec Abdome t ID n Length Conjunto de treino com dois atributos e um atributo objectivo (classe) Novo caso não observado Antenna Insect e Class Length 1 2.7 5.5 Gafanhoto 2 8.0 9.1 Grilo 3 0.9 4.7 Gafanhoto 4 1.1 3.1 Gafanhoto 5 5.4 8.5 Grilo 6 2.9 1.9 Gafanhoto 7 6.1 6.6 Grilo 8 0.5 1.0 Gafanhoto 9 8.3 6.6 Grilo 10 8.1 4.7 Grilo 11 5.1 7.0 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) ??????? 5 Interpretação Geométrica Gafanhotos Grilos 10 9 8 7 6 5 4 3 2 1 Antenna Length Exemplo de um elemento da Classe Grilos Exemplo de um elemento da classe Gafanhotos 1 2 3 4 5 6 7 8 9 10 Abdomen Length Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 6 Interpretação geométrica Discriminante Linear Novo caso 10 9 8 7 6 5 4 3 2 1 11 5.1 7.0 ??????? • Podemos projectar os casos novos Antenna Length no mesmo espaço da base de dados dos casos de treino. • Torna-se assim “mais fácil” de falar em pontos no espaço, em vez de casos. 1 2 3 4 5 6 7 8 9 10 Abdomen Length Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 7 Interpretação geométrica Discriminante Linear Antenna Length Novo caso 10 9 8 7 6 5 4 3 2 1 11 5.1 7.0 ??????? • Podemos projectar os casos novos no mesmo espaço da base de dados dos casos de treino. • Torna-se assim “mais fácil” de falar em pontos no espaço, em vez de casos. If novo caso esta acima da linha then classe é Grilo else classe é Gafanhoto 1 2 3 4 5 6 7 8 9 10 Abdomen Length Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 8 Casos em que o problema envolve mais do que dois atributos (plano com mais do que 2 dimensões) Notar que o problema só tem duas classes, mas podemos sempre generalizar para N classes. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 9 Generalização do discriminante linear para N classes, definindo N-1 linhas. Usando o famoso Iris dataset (R.Fisher) com 150 casos e 3 classes. Primeiro definimos uma linha para discriminar entre as classe Setosa e as classes Virginica/Versicolor. Finalmente discriminamos (aproximandamente) entre as classes Virginica e Versicolor. Petal Width Virginica Setosa Versicolor Petal Length If petal width > 3.272 – (0.325 * petal length) then classe = Virginica 10 Elseif petal width… Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) Primeiros Algoritmos • Discriminantes Lineares (R.Fisher) • Naive Bayes • Árvores de decisão Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 11 Voltando ao dataset de insectos mas agora com mais insectos. Notar os histogramas de classes por atributo Antenna Length 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 Abdomen Length Grilos Gafanhotos Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 12 Podemos ver os histogramas sumarizados em duas distribuições Gausianas (Normais). Vamos usar estas duas distribuições para facilitar a visualização (mas só do atributo antennae length). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 13 • Queremos classificar um novo insecto com antena = 3. Como classifica-lo? • Considerando as distribuições observadas para antennae length, é mais provável que o nosso insecto seja da classe Gafanhoto ou Grilo. • Existe uma definição formal de mais provável classificação… p(cj | d) = probabilidade da classe cj, dado que observamos d 3 Antennae length é 3 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 14 p(cj | d) = probabilidade da classe cj, dado que observamos d P(Gafanhoto | 3 ) = 10 / (10 + 2) = 0.833 P(Grilo | 3 ) = 2 / (10 + 2) = 0.166 10 2 3 Antennae length é 3 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 15 p(cj | d) = probabilidade da classe cj, dado que observamos d P(Gafanhoto | 7 ) = 3 / (3 + 9) = 0.250 P(Grilo | 7 ) = 0.750 = 9 / (3 + 9) 9 3 7 Antennae length é 7 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 16 p(cj | d) = probabilidade da classe cj, dado que observamos d P(Gafanhoto | 5 ) = 6 / (6 + 6) = 0.500 P(Grilo | 5 ) = 0.500 = 6 / (6 + 6) 66 5 Antennae length é 5 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 17 Classificadores Bayesianos Isto são exemplos de intuição visual para o caso simples de um classificador Bayesiano: Vamos agora formalizar a ideia com mais exemplos. A ideia base preserva-se Calcular a probabilidade do novo caso pertencer a cada classe, depois simplesmente escolher a classe com mais alta probabilidade. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 18 Classificadores Bayesianos • Classificadores Bayesianos usam o Teorema de Bayes, que dizer que: • P(d / cj ) x P(cj ) P(cj / d ) P( d ) • p(cj | d) = probabilidade do caso d ser da classe cj, O que estamos a tentar calcular • p(d | cj) = probabilidade de gerar a instância d dada a classe cj, Podemos imaginar que pertencendo à classe cj, implica ter a caracteristica (atributo) d com alguma probabilidade • p(cj) = probabilidade da ocorrência da classe cj, Isto é apenas a frequencia da classe cj, no nosso conjunto de treino p(d) = probabilidade da instância d ocorrer Isto pode ser ignorado pois é o mesmo valor para todas as classe Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 19 • Até agora assumimos que o nosso conjunto de treino tinha uma só atributo. Como usar todos os atributos? • Para simplificar, os classificadores naïve Bayesian assumem que os atributos tem distribuições independentes, e consequentemente estimam a probabilidade conjunto como: p(d|cj) = p(d1|cj) x p(d2|cj) x ….x p(dn|cj) A probabilidade da classe cj gerar a instância d, é igual….A probabilidade da classe cj gerar o valor observado para o atributo 1, A probabilidade da classe multiplicado por… cj gerar o valor observado para o atributo 2, multiplicado por ... Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 20 Em resumo… Naive Bayes Naive: assume independência entre atributos. Bayes: Usa o Teorema de Bayes – A probabilidade condicional de uma hipótese H dado um evento E é: P( E / H ) x P( H ) P( H / E ) P( E ) Pode ser ignorado porque é sempre o mesmo valor para todas as classes! No nosso caso a hipótese é um valor possível de classe e o evento uma determinada combinação de valores para os outros atributos. P( E1 / yes) x P( E2 / yes) x ... x P( En / yes) x P( yes) P( yes / E ) P( E ) 21 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) Exemplo • Usando os dados de treino (play_tennis.xls) • Novo caso (Outlook=sunny, Temp=cool, Humidity=high, Wind=true) • Aplicar Teorema de Bayes e prever a classe com mais alto valor probabilístico. Class=yes (2/9 x 3/9 x 3/9 x 3/9 x 9/14) = 0.0053 Class=no (3/5 x 1/5 x 4/5 x 3/5 x 5/14) = 0.0206 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 22 Classificadores Bayesianos são normalmente representados por grafos cj Notar a direcção da seta, que indica que cada classe causa certos valores de atributos com uma certa probabilidade p(d1|cj) p(d2|cj) … Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) p(dn|cj) 23 Questão! p(d|cj) Naïve Bayes assume independência dos atributos… p(d1|cj) Sexo > 180 cms Homem Yes 0.15 No 0.85 Yes 0.01 No 0.99 Mulher Classificador Naïve Bayes p(d2|cj) p(dn|cj) Sexo > 100 kgs Homem Yes 0.11 No 0.89 Yes 0.05 No 0.95 Mulher Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 24 Solução p(d|cj) Considerar a relação entre atributos (definir os arcos entre os nós)… p(d1|cj) p(d2|cj) p(dn|cj) Sexo > 100 kgs Homem Yes and > 180 cms 0.11 0.85 No and > 180 cms 0.49 Yes 0.01 Yes and NOT > 180 cms 0.05 No 0.99 No and NOT > 180 cms 0.35 Yes and > 180 cms 0.01 Sexo > 180 cms Homem Yes 0.15 No Mulher Classificador Naïve Bayes Mulher Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 25 p(d|cj) Solução Considerar a relação entre atributos… p(d1|cj) Classificador Naïve Bayes p(d2|cj) p(dn|cj) Mas como encontrar o conjunto de arcos que ligam os nós?? Ou seja como estabelecer uma relação de ordem entre atributos? Proposta: Redes Bayesianas. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 26 Árvores de Decisão • Ramificações em árvore onde os nós intermédios são testes sobre valores de atributos, os ramos os possíveis valores e as folhas as decisões sobre a previsão (valor de classe). • Função a ser aprendida (função de valores discretos) é representada pela árvore de decisão. • Em geral representam uma disjunção de conjunções. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 27 Árvores de Decisão OUTLOOK overcast HUMIDITY NO WIND YES YES NO YES Podemos derivar regras a partir dos vários ramos. Exemplo: class=yes Humidity=normal & Outlook=sunny Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 28 Árvores de Decisão (interpretação geométrica) Novo caso 11 5.1 7.0 ??????? Antenna Length 10 9 8 7 6 5 4 3 2 1 Abdomen Length > 7.1? yes no Antenna Length > 6.0? 1 2 3 4 5 6 7 8 9 10 Grilo no yes Gafanhoto Grilo AbdomenMineração Lengthde Dados – UCE Sistemas de Suporte à Decisão (2010) 29 Algoritmo ID3 para a construção de árvores de decisão • Sendo S o conjunto de treino: Como decidir sobre “qual é o melhor atributo para a raiz???” – Iniciar com uma árvore vazia. – Escolher o melhor atributo A para a raiz. – Dividir S em subconjuntos segundo os valores de A. – Para cada subconjunto de S construir uma sub árvore de decisão. – Parar quando o subconjunto tiver elementos de uma só classe. Objectivo: Obter subconjuntos o mais homogéneos possíveis (em termos de classe)! Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 30 Medidas de Ganho Informativo • Como medir a homogeneidade de um conjunto? • Entropia: mede a impureza de um conjunto. O melhor atributo é aquele que mais conseguir baixar a entropia geral do conjunto. Entropia( S ) p classe log 2 ( pclasse) classe • pclasse = proporção entre elementos da classe e elementos de S Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 31 Entropia Entropia(S) = número esperado de bits necessários para codificar a classe de um elemento de S escolhido aleatoriamente com distribuição uniforme (código óptimo i.e. código de comprimento mínimo) Motivação: Da Teoria da Informação: um código de comprimento óptimo atribui -log2(p) bits a uma mensagem que tenha probabilidade p. Assim, o número esperado de bits para codificar a classe (e.g. classes “a” e “b”) de elementos seleccionados aleatoriamente de S é: pa(-log2(pa)) + pb(-log2(pb)) Ou seja, Entropia(S) = -pa log2(pa)- pb log2(pb) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 32 Ganho Informativo Calculo do Ganho Informativo fornecido pelo atributo A: Ganho( S , A) Entropia( S ) # Sv Entropia( S v ) #S vvalores( A) Ganho é a redução esperada de entropia causada por ter conhecimento do valor do atributo A. Seleccionamos a “divisão de S” que optimiza o ganho informativo i.e. o atributo que origina subconjuntos mais “puros” de S. Seleccionar atributos usando este método permite obter árvores mais simples. Não é tratável gerar todas as árvores possíveis e depois seleccionar a mais simples!? Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 33 Outras medidas Há diferentes opções para implementar escolhe de atributos. Por exemplo, o sistema CART usa a métrica gini para seleccionar o melhor atributo. #classes Índice Gini (no nó t): Gini (t ) 1 2 pj j 1 Proporção de casos no lado esq/dir. No CART as árvores são sempre binárias Gini splitting criteria (para um split s no nó t): (s, t ) Gini(t ) pL Gini(t L ) pR Gini(t R ) Valor gini no subconjunto dir/esq O sistema CHAID usa uma medida de correlação entre atributos e classe. Mede Χ2 entre um atributo e o atributo classe. Escolhe o atributo com maior estatística (correlação). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 34 Exemplo • Usando outra vez o problema do play_tennis.xls • Entropia(S) = - 9/14 x log2(9/14) – 5/14 x log2(5/14) = 0.940 • Entropia(Wind) = (8/14) x Entropia(Sno) +(6/14) x Entropia(Syes) = = (8/14) x (-2/8 x log2(2/8)- 6/8 x log2(6/8)) + (6/14) x (-3/6) x log2(3/6) – 3/6 x log2(3/6)) = = (8/14) x 0.811 + (6/14) x 1.00 = 0.4634 + 0.4285 Ganho(S,Wind) = 0.940 – 0.8919 = 0.0481 . Maximizamos o Ganho! . . Ganho(S,Outlook) = 0.694 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 35 Selecção [1,2,…,14] [9+,5-] Outlook [1,2,8,9,11] [2+,3-] overcast ? Yes [3,7,12,13] [4+,0-] ? [4,5,6,10,14] [3+,2-] Notar que Entropia(Sovercast) = 0. Dá origem a uma ramo folha com (Yes) visto que pyes = 4. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 36 Características dos algoritmos para Árvores de Decisão • Pesquisa tipo hill-climbing em que função de progressão é o ganho informativo, • Espaço de pesquisa completo, • Preserva uma só hipótese durante o processo de pesquisa, • Não há backtracking! • Aplica Occam Razor (hipótese mais simples em detrimento das mais complexas), • Podemos lidar com noise = ruido nos dados, se se permitir conjuntos impuros de exemplos nas folhas. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 37 Questões? • Atributos com muitos valores (por ex: contínuos) são beneficiados em termos de ganho informativo! • Que consequências dão origem as árvores complexas (muitos nós)? • Como obter árvores mais simples? • Como tratar atributos numéricos ? • Como tratar valores nulos ? • Como lidar com ruído (noise) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 38 Ganho Informativo sobre Atributos com muitos valores • Ver atributo Temp como numérico com âmbito [-50,50]. • Consegue isolar quase qualquer exemplo (mínimo entropia máximo ganho) • Temp seria atributo raiz com muitos ramos! • Boa árvore com exemplos de treino mas menos boa com novos casos (overfitting!) • Aliviar este fenómeno reajustando o cálculo do ganho, por forma a que os atributos com muitos valores sejam penalizados. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 39 Novo Ganho Ganho(S , A) NovoGanho(S , A) SplitInfo(S , A) # Svalor # Svalor SliptInfo( S , A) log 2 ( ) #S #S valorA Esta medida é entropia de S em relação aos valores de A (e não em relação aos valores da classe!) SplitInfo(S,Wind)= -6/14 x log2(6/14) - 8/14 x log2(8/14) = 0.345 + 0.461 = 0.806 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 40 Tratamento de valores contínuos em Árvores de Decisão • Em Pré processamento: – Discretização em intervalos de valores. Ex: criar intervalos onde é preservado o valor de classe. – Binarização; cada atributo é convertido em dois valores. Há a selecção de um valor de corte. • Durante o processamento: – Binarização: Seleccionar um valor de corte entre os valores do conjunto associado à sub-árvore. O valor escolhido é aquele que maximiza ganho! (e é sempre um que está na transição entre valores de classe). – Aplicação recursiva deste princípio. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 41 Tipos de Discretização • Supervisionada versus Não Supervisionada – • Paramétrica versus Não Paramétrica – • – A discretização é feita a priori e é única, sendo usada durante todo o processo de aprendizagem. Alternativamente, várias discretizações são usadas para um atributo, dependendo do seu uso e.g. nós numa árvore de decisão. Eager versus Lazy – • A discretização admite apenas intervalos não sobreposto ou há a possibilidade de gerar intervalos com intersecção não vazia. Global versus Local – • Discretização trata um atributo contínuo de cada vez ou considera a possível relação entre contínuos, atacando-os em bloco. Intervalos disjuntos versus não disjuntos – • Há a derivação de uma hierarquia de intervalos, que se forma por 1) partir o intervalo inicial (split) ou por 2) junção dos vários intervalos unitários (merge). A alternativa é ter a formação de intervalos a não envolver uma hierarquia. Univariada versus Multivariada – • O processo necessita de parâmetros e.g. número de intervalos, ou não? Hierárquica versus Não Hierárquica – • Os dados contêm um atributo objectivo que pode ser considerado para “guiar” o processo de discretização, ou não? Eager= discretização antes do processo de aprendizagem, Lazy=discretização é gerada sempre que necessária. Ordinal versus Nominal – – Mapeamento derivado da discretização é do tipo: quantitativo ordinal (preserva ordem), Ou quantitativo nominal (não preserva ordem) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 42 Discretização Fayyad & Irani (método supervisionado, não paramétrico, univariado, disjunto, global, eager e ordinal) • Ordenar os valores do atributo a discretizar, • Definir os cut points – ponto onde há alternância de classe, • Calcular Ganho Informativo para cada ponto: • Escolher ponto com maior valor de Ganho, • Verificar se condição MDL é satisfeita Se sim o processo pára, Senão aplicar recursivamente o processo à esquerda e à direita do ponto escolhido. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 43 Seguindo este princípio, queremos minimizar o tamanho da “teoria” mais a quantidade de informação necessária para especificar as excepções relativas à teoria. Tem relações com a complexidade de Kolmogorov. No nosso caso a teoria é o ponto de split. Fayyad & Irani • Condição Minimum Description Length: Correcção devida à necessidade de transmitir que classes correspondem aos subintervalos inferiores e superiores. Informação necessária para especificar o ponto de split. N = #S, k = #classes, ki = #classes em Si • Processo pára se a condição é satisfeita. 0.0 2.3 2.3 12.4 18.9 19.3 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 24.4 44 Discretização ChiMerge • Juntar intervalos adjacentes que demonstram independência sobre o atributo classe. • Medir independência através de um teste de Χ2. Escolher o par com menor valor da estatística. • Parar quando, para o par escolhido, Χ2 > δ, sendo δ dado pelo utilizador. • Inicialmente ordena-se os valores do atributo a discretizar. Cada valor dá origem a um intervalo unitário. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 45 ChiMerge • Cálculo do Χ2 ( Aij Eij ) i 1 j 1 Eij 2 2 k 2 • Sendo: – k é número de classes, N o tamanho do dataset – Aij é número de exemplos no intervalo i da classe j – Eij = #(intervalo i) x #(classe j) / N, ou seja frequência esperada. [6, +oo[ distribuição classes [1, 5[ =1 class1 class2 class3 • Graus de liberdade = (#intervalos -1) x (#classes -1) • Se o teste indica dependência então a diferença na distribuição de classes entre os intervalos é estatisticamente significativa. Ou seja, os intervalos devem permanecer separados. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 46 Tratamento de Contínuos no C4.5 Ordena-se os valores do atributo em questão. Usar como corte os valores onde há transição de classe. A CLASS 1 yes 2 yes 4 no 5 no 6 yes 9 no 12 yes 15 yes 16 yes Exemplo: 2,4 5,6 6,9 9,12 Valores de corte a avaliar: (4+2)/2=3 não existe! Então escolhemos o mais próximo (2) Se o ponto escolhido fosse o 6 então podíamos ter as expressões: A ≤ 6 e A > 6. A [1,2,4,5,6] [9,12,15,16] Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 47 Valores Nulos • Datasets não “limpos”. Há valores desconhecidos em alguns atributos. • Pode indicar valores não disponíveis que são intencionalmente indicados como tal. • Ruído (noise) nos dados! • Estimar valores… • Como tratar nulos? Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 48 Tratamento de Nulos • Podemos pré processar os nulos fazendo substituição apriori. Por exemplo fazendo classificação sobre os exemplos e atributos com nulos! • Substituir nulos por valor mais frequente (valor médio no caso dos contínuos) – Caren usa esta simples estratégia. • Substituir nulos por valor mais frequente dentro da classe. Outlook Temp Class sunny hot no sunny ? no ? hot yes rain Mild yes Temp=hot, (substituir por valor mais frequente dentro da classe) Outlook=sunny, (substituir por valor mais frequente) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 49 Tratamento de Nulos no C4.5 • Estimar os valores nulos (desconhecidos) • Três situações distintas de nulos: – Na previsão de novos casos com nulos, – Na selecção do atributo teste, podemos ter de comparar testes de atributos com diferentes números de valores nulos! – Depois de escolhido o atributo teste, como atribuir um caso com valor nulo às várias subdivisões do conjunto de treino derivadas do atributo teste? O C4.5 usa um procedimento de atribuição probabilística aos possíveis valores nulos do atributo (em vez de valores mais comum como 50 acontece em procedimentos mais simplistas). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) Nulos no C4.5 Durante a construção do Modelo: entre os exemplos que cobrem o nó a ser processado, atribui-se valores de probabilidade de acordo com o observado Cada exemplo tem associado um peso ω (representa a probabilidade de pertencer ao subconjunto onde se encontra)! Inicialmente o peso é 1. Durante a divisão, se o valor do atributo em estudo for conhecido o peso do subconjunto fica inalterado. Caso contrário o exemplo é associado a cada subconjunto criado em que o peso é multiplicado pela probabilidade de pertencer a esse subconjunto Cálculo do Ganho considera soma de pesos e não o número de exemplos! Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 51 Nulos em C4.5 Actualização dos pesos: ' prob (Ti ) onde ω’ é o novo peso quando atribuímos este exemplo a um novo subconjunto. prob() definido como: pesos_ exemplos_ valores_ conhecidos_ T prob(T ) peso_ exemplos_ T i i i info(Ti) ( ou Ent(Ti) ) é assim calculado só com exemplos de valores conhecidos. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 52 Nulos e Ganho Ganho(S , A) F (info (T ) m Ti T info (Ti )) i 1 Onde F é a proporção de exemplos com valores nulos para o atributo sobre o número total de exemplos. Novo splitinfo() é: splitinfo ( A) ( m Ti T i 1 log 2 ( Ti T )) Tu T onde Tu é o subconjunto dos exemplos com valores nulos para o atributo A. Assume-se m+1 divisões!!! Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) log 2 ( Tu T ) 53 Classificar Exemplos com Valores Nulos Enquanto os valores do novo caso foram conhecidos tudo se passa como no procedimento normal. Quando o nó da árvore tiver um teste sobre um atributo em que o novo caso tem valor nulo então faz-se o cálculo da distribuição de probabilidades. Ou seja, percorre-se cada ramo e combina-se aritmeticamente a classificação. A classe com maior probabilidade é a escolhida. OUTLOOK Novo Caso: Outlook=sunny,Temp=hot, Humidity=?, Wind=false overcast WIND YES HUMIDITY NO YES NO (2.0) (3.4/0.4) (2.4/0.4) YES (3.0) Contabilizar nos ramos a soma da No = 2.0/5.4 x 2.0/2.0 + 3.4/5.4 x 0.4/3.4 distribuição de probabilidade da classe No. Yes = 2.0/5.4 x 0 / 2.0 + 3.4/5.4 x 3/3.4 Σi∈{high,normal}, (#ramo_i / #HUMIDITY) x (#No_ramo_i / #ramo_i) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) = 0.44 = 0.56 54 Overfitting • Sobre-ajustamento das hipótese no processo de aprendizagem. • Queremos uma hipótese (modelo) o mais consistente com os dados de treino, mas: – Ruído nos dados, – Poucos exemplos ou pouco representativos, – Hipótese demasiado complexa. Ou seja, podemos obter uma hipótese pouco preditiva! Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 55 Overfitting • Dado um espaço de hipóteses H, diz-se que a hipótese h ∈ H se sobre ajusta (overfits) aos dados de treino se existir uma hipótese h’ ∈ H tal que h tem erro mais baixo do que h’ nos dados de treino, mas h’ erra menos do que h na distribuição total dos exemplos. • Overfitting (inevitável): quanto mais profundos são os nós folha menos exemplos têm a cobri-los - Pouca significância estatística. • Como lidar com overfitting: – Pruning: Simplificação das árvores por forma a evitar árvores cobertas por poucos casos. – Pre-pruning (parar crescimento antes de erro nulo no treino), – Post pruning (deixar crescer a árvore normalmente). Pruning a posterior. – Calcular tamanho correcto da árvore: usar um conjunto separado de exemplos para avaliar sub-árvores (cortar/parar). Alternativa: só permitir refinamentos/cortes que melhorem o desempenho geral da árvore (usar teste de hipóteses). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 56 Overfitting (curvas de erro) Curva demonstrando ocorrência de sobre-ajustamento. accuracy dados de treino dados de teste Complexidade do modelo (# de nós n a árvore) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 57 Pruning • Simplificação do modelo de previsão por forma a combater o sobre-ajustamento. • Duas possíveis estratégias: – Pré-pruning: parar de expandir um ramo quando a informação se torna pouco fiável (sem significância). Pode parar o processo demasiado cedo e derivar underfitting. – Pós-pruning: deixar crescer a árvore até ao fim. Depois podar sub-árvores pouco fiáveis. É mais fácil implementar esta estratégia e é a que melhores resultados origina na prática. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 58 Pós-pruning • Primeiro expandir a árvore totalmente e depois aplicar pruning. Técnica conhecida por “reduced-error pruning” • Várias técnicas de Pruning: – Estimação de erro • Usando um holdout data (conj. de validação) • Usando o conj. de treino – Testes de significância – Aplicação do princípio MDL. • Duas operações de pruning: – Troca de sub-árvores por folhas (subtree replacement) – Ascensão de sub-árvores (subtree raising) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 59 Subtree Replacement • Processamento bottom-up, • Substituição de uma árvore após processar todas as suas sub-árvores Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 60 Subtree Raising • • • • • Eliminação de um nó intermédio da árvore, Implica uma redistribuição das instâncias de treino (reclassificação dos exemplos), Subir o ramo com mais exemplos (de B para C), Processo mais lento que a operação anterior, Valerá a pena?? Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 61 Subtree Raising: Exemplo wage-increase-first-year <= 2.5 | education-allowance = yes | | wage-increase-first-year <= 2.1 | | | pension = none: bad (2.43/0.43) | | | pension = ret_allw: bad (0.0) | | | pension = empl_contr: good (3.16/1.5) | | wage-increase-first-year > 2.1: bad (2.04/0.04) | education-allowance = no | | contribution-to-health-plan = none: bad (3.39) | | contribution-to-health-plan = half: good (0.18/0.05) | | contribution-to-health-plan = full: bad (4.06) wage-increase-first-year > 2.5 | longterm-disability-assistance = yes | | statutory-holidays <= 10 | | | wage-increase-first-year <= 3: bad (2.0) | | | wage-increase-first-year > 3: good (3.99) | | statutory-holidays > 10: good (25.67) | longterm-disability-assistance = no | | contribution-to-health-plan = none: bad (4.07/1.07) | | contribution-to-health-plan = half: bad (3.37/1.37) | | contribution-to-health-plan = full: good (2.62) wage-increase-first-year <= 2.5: bad (15.27/2.27) wage-increase-first-year > 2.5 | statutory-holidays <= 10: bad (10.77/4.77) | statutory-holidays > 10: good (30.96/1.0) Substituição por folha “bad” Sub-árvore removida pela operação de “raising” statutory-holidays subiu na árvore e substituiu “longterm-disability-assistance“ Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 62 Pruning no C4.5 • Post-pruning com Simplificação Pessimista • Avaliação só com o conjunto de treino, • Usar erro amostral Erro = E / N para inferir erro real via intervalos de confiança (simplificação pessimista pois escolhemos limite superior do intervalo) • Podar se simplificação estima melhor resultados que árvore original • Erro calculado pelo limite superior do intervalo de confiança dado pela distribuição Binomial (UCF(N,E)), • Erro numa folha cobrindo N novos casos é N x UCF(N,E). • Erro da sub-árvore = ∑ erros nos ramos Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 63 Exemplo (subtree replacement) Educat spend =y Class=democrat Class=democrat (6) Class=republican (9) One-tail Binom test (H1:>=0.5),α=0.25 (1) Não há erros associados à sub-árvore. Para o primeiro ramo N=6 e E=0, U25%(6,0) =0.206. Erro da sub-árvore = 6 x 0.206 + 9 x 0.143 + 1 x 0.750 = 3.273 Se substituirmos esta sub-árvore pela folha (Class=democrat) temos como avaliação N=16, E=1. Erro=16 x U25%(16,1) = 16 x 0.157 = 2.512. Assim, o C4.5 substitui a sub-árvore em questão pela nova folha. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 64 Uso de Laplace para estimação (estática) do erro nas folhas • Quando um nó é podado este é substituído por uma folha (e.g. com Classe=democrat) • Qual será o erro de previsão esperado para esta nova folha? Estimação de erro de Laplace. N n 1 E (S ) N k • • • • Assume que a distribuição das probabilidades dos exemplos pertencerem a classes diferentes é Uniforme. S é conjunto de exemplos que chegam à folha, N = #S k classes n exemplos em N pertencem à classe C (mais frequente). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 65 Laplace (cont) • Para um nó intermédio No, calculamos o erro esperado (chamado backed-up-error) – BackedUpError(No) = ∑i P x E(No ). Serve também i i para decidir sobre a poda ou não do nó No – Error(No)= min(E(No),BackedUpError(No)). • Os valores de P (probabilidades) podem ser estimadas pelas frequências dos valores do atributo nos exemplos dos nós filhos (No ). i Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 66 Laplace (cont2) • Exemplo de um cálculo (com decisão de pruning ou não do nó intermédio) Folha à esquerda de b com frequências nas classes [3,2] O valor de Laplace é: E(S) = (N-n+k-1) / (N+k) = (5-3+2-1) / (5+2) = 0.429 Folha à direita de b tem E(S) = 0.333. Aplicando Laplace ao nó b obtém-se E(S) = 0.375, com N=6, n=4, k=2. Backed-up error: BackedUpError(b) = (5/6) x 0.429 + (1/6) x 0.333 = 0.413 (6 exemplos em b, 5 no lado esquerdo e 1 no lado direito…) Como o backedup error é maior que o erro estático para b (obtido por Laplace) podamos a sub-árvore de b e usamos o erro estático de 0.375. 67 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) Laplace no J48 O uso de laplace no J48 vai influenciar o score de previsão (distribuição de probabilidades por classes) e consequentemente medidas de desempenho de modelos por classe como a AUC (a ver aquando das curvas ROC). Exemplo (dataset labor): com Laplace: sem Laplace: inst#, 1 2 3 4 5 inst#, 1 2 3 4 5 actual, predicted, prob. distribution 2:good 2:good 0.206 *0.794 2:good 2:good 0.206 *0.794 1:bad 1:bad *0.815 0.185 2:good 2:good 0.206 *0.794 2:good 2:good 0.088 *0.912 actual, predicted, prob. distribution 2:good 2:good 0.18 *0.82 2:good 2:good 0.18 *0.82 1:bad 1:bad *0.876 0.124 2:good 2:good 0.18 *0.82 2:good 2:good 0.048 *0.952 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 68 Avaliação de Modelos • Necessidade de avaliar capacidade preditiva do modelo. (tipicamente estimamos este valor pela proporção de erros obtido no conjunto de treino), • Esta avaliação é baseada em poucos exemplos, enviesada e pouco fiável! • Testar em conjuntos não usados em treino. • Usar metodologias de avaliação exaustiva (com mais datasets para além do de treino). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 69 Validação Cruzada • Estimativa do erro que o modelo (modelos gerados pelo algoritmo) terá quando exposto a novos casos. • Avaliação com um só conjunto. Definir n folders. Um é usado como teste, os outros n-1 são treino. Repetir n vezes cruzando papeis. Acabamos por ter n avaliações. Accuray final é a média das n avaliações. Tipicamente n = 10. • Na presença de datasets com classes raras podemos ter problemas de representatividade – usa-se estratificação. • Outras metodologias: Leave one out – Uma instância é deixada de fora como teste (é como um n cross validation, sendo n = #{treino}) Amostragem com substituição (reposição). Pode ajudar nos problemas de previsão com classes raras! Notar: Procedimento determinístico. Nâo há escolha aleatória de amostras e consequentemente não há necessidade de repetições. Vantagem de ter conjuntos de treino maiores. Erro = 1-(r/n), onde r é a soma dos n testes. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 70 Matriz da Confusão • Também chamada matriz de erros/acertos. • Colunas com classes previstas, linhas com previsão classes verdadeiras. Podemos facilmente identificar os falsos positivos, falsos negativos, Erro?l acertos e erros. • Cpp exemplos da classe p classificados como p • Cpn exemplos da classe p classificados como n. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 71 Exemplo True Positive = hit True Negative = rejeição correcta False Positive = falso alarme (erro Tipo I) False Negative = miss (erro Tipo II) - (Cpp) (Cnn) (Cpn) (Cnp) Accuracy (rácio de acerto) = 1 – error_rate. C p p 4 n 2 n 0 1 Error rate = número de erros / número de casos = (Cpn + Cnp) / (Cpp + Cnn + Cpn + Cnp) = 2 / 7. Podemos facilmente identificar o tipo de erro, as classes mais problemáticas, etc! Através das curvas ROC podemos estudar comportamentos de modelos em relação a classes (ou custos!) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 72 Curvas ROC Originária da teoria de processamento de sinal. Problema: Como fixar o “ponto de operação” por forma a distinguir presença/ausência de sinal? Depende de: potência do sinal; variância no ruído; esperado hit rate e false alarm rate. • Receiver Operating Characteristics – É sempre uma boa ideia distinguir desempenho (em termos de accuracy) entre diferentes classes, – A análise de curvas ROC investiga a relação entre as proporção de positivos e negativos correctamente classificados, – Relação entre especificidade e sensibilidade de um classificador binário. – Um classificador gera um score de crença para cada previsão. Um threshold sobre o score decide se a previsão é para um caso positivo na classe. – A variação do valor de threshold entre mínimo e máximo forma uma curva entre os pontos (0,0) e (1,1) de coordenadas num eixo (Tp_rate,Fp_rate). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 73 Curvas ROC • Caracteristicas: – Pode ser usada para: • Determinar valor do threshold que minimiza o erro de classificação (ou custo) para uma determinada classe, • Identificar regiões da curva onde um classificador tem melhor desempenho que outro, • Identifica regiões onde um classificador é pior que um classificador aleatório. – Análise de ROC debruça-se mais sobre “skew sensitivity” do classificador (sensibilidade à assimetria das classes) do que sobre “cost sensitivity”, – A noção de “ranking” (ordenação) é mais fundamental do que a noção de classificação. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 74 Ranking versus Classificação • Problema de Classificação: – Aos casos de treino são atribuídos um valor de classe. – Modelo é construído sobre esses casos. – Modelo faz uma previsão de uma classe para cada caso de teste. – Avaliação com uma loss function do tipo 0-1 (acerto/erro), ou seja avalia-se o erro exacto. • Problema de Ranking: – Aos casos de treino são atribuídos um rank de valores da classe (uma ordem sobre os possíveis valores da classe). Associa-se a cada previsão um score! – Modelo é construído sobre esses casos – Modelo faz uma previsão de um rank para cada caso de teste. – Avaliação com uma loss function quadrática, ou seja uma medida de distância entre rank de previsão e rank do caso real. • Pode-se transformar um problema de classificação num de ranking à custa de um score. O inverso também acontece com a introdução de um threshold. 75 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) ROCs • TP rate = TP / (TP+FN) • FP rate = FP / (FP+TN) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 76 Construção de ROCs • Ordenar os exemplos classificados por ordem decrescente do valor do score. • Começar em (0,0). Ligar último ponto a (1,1) se necessário. • Se o próximo exemplo é positivo mover 1/Pos posições para cima. • Se o exemplo é negativo mover 1/Neg para o lado direito. • Em caso de empate mover na diagonal. Nº Pre 1 p 2 score Nº Pre score Nº Pre score Nº Pre .9 6 p .54 11 p .8 7 n .53 3 n .7 8 n 4 p .6 9 5 p .55 10 p .4 16 n .35 12 n .39 17 p .34 .52 13 p .38 18 n .33 p .51 14 n .37 19 p .30 n .505 15 n .36 20 n .1 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) score 77 ROCs • Convexidade da curva boa separação entre classes. • AUC (Area Under Curve) representa a probabilidade de um classificador colocar um exemplo positivo, escolhido aleatoriamente, mais alto na ordenação (ranking) do que um exemplo negativo. • declive indica dist.classes nesse segmento. Convex Hull: Mostra os classificadores com mais alta accuracy para uma determinada distribuição de classes. Convex Hull: conjunto de segmentos que ligam pontos óptimos em termos de uma determinada distribuição de classes. Representa também uma discretização dos scores que dão origem a AUCs mais altas. AUC = (Gini_coeff + 1) / 2 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 78 ROC para comparação de classificadores Na esquerda, classificador B tem maior área, consequentemente melhor desempenho. Na direita temos um classificador binário A e um classificador de “scores” B. A é B mas com um threshold fixo. Na esquerda, para FP > 0.5, A é melhor que B. No entanto, globalmente, AUC(B) > AUC(A). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 79 Medidas de Avaliação • Tipicamente, o desempenho de um modelo avalia-se recorrendo ao valor de accuracy (1 – error rate). • Mas há outras medidas, nomeadamente aquelas que permitem avaliar a contribuição para o erro global feito por cada classe: Precision Tp Mede a capacidade de identificar os casos que Tp Fp (mede qualidade de cada previsão individual) não são desta classe. Valores altos indica poucos erros do tipo I. É o dual de precision! Tp Recall Tp Fn (proporção de respostas correctas) 2 Recall Precision (varia entre 0 e 1 e valores mais altos F1 sugerem melhores previsões) Recall Precision Area Under Curve – entre 0 e 1. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 80 Classificação com Regras de Associação • Os modelos são um conjunto seleccionado de regras de associação. • Regras com um só consequente = classe (CAR rules). • Várias propostas: CMAR, CBA, Apriori-C. • Vários métodos: BestRule, Votação, Distribuição de classes, • Uso de diferentes métricas. • Implementação no CAREN Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 81 Selecção de Regras CAR • Noção de cobertura do conjunto de treino 1) 2) 3) Ordenar regras por ordem descendente de confiança Para cada exemplo e ∈ Treino, e.count=0; Enquanto conjunto Treino ≠ Ø e Regras ≠ Ø fazer 1) Para cada r ∈ Regras 1) 2) 3) 4) • Encontrar todos os e que cobrem r Se r classifica bem pelo menos um e Então fazer e.count++ para todos e Seleccionar r e retirar de Regras Vários propostas: CBA os exemplos de treino são retirados assim que usados. CMAR tem a noção de cobertura δ. Os exemplos são retirados quando e.count > δ. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 82 Selecção de regras • São seleccionadas as primeiras N regras que cobrem o conjunto de treino (e com mais alta confiança) • CBA usa pessimistic error rate based pruning • CMAR aplica voting (selecção de várias regras que cobrem o exemplo): Divide regras por grupos de classes que estas representam. Faz votação por Χ2 pesado (de cada grupo). • Apriori-C usa subset feature selection – remoção de items, e N best rules in each class – escolha por classe. • CBA faz BestRule - Escolhe regra do topo da ordem. Ordena regras por: – R1 > R2 sse conf(R1) > conf(R2) – Ou conf(R1) == conf(R2) && sup(R1) > sup(R2) – Ou conf(R1) == conf(R2) && sup(R1) == sup(R2) mas R1 gerada primeiro que R2 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 83 Previsão Numérica Aproximações numéricas a um atributo objectivo contínuo. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 84 Previsão Numérica • Passar da previsão de classes (enumerados) para previsão em atributos contínuos, • Passamos para um problema de Regressão, • Modelos podem ser Árvores de Regressão – folhas com valores médios. • Formas mais gerais: Model Trees. Neste caso as folhas contêm um modelo linear de regressão. • Podemos também ter modelos feitos de regras de regressão (Cubist, RBA e Caren). • Algoritmos de construção de árvores para regressão análogos aos de classificação. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 85 Regressão • Modelos podem ser árvores em que as folhas contêm os valores médios da classe dos exemplos que os “atingem” – Árvores de Regressão. • Modelos mais sofisticados – Árvores contêm folhas com modelos lineares de regressão (Model Trees). • Algoritmos idênticos aos de construção de árvores de decisão – escolhe do atributo de “splitting” recorre à minimização da variação do valor numérico de classe dos subconjuntos em causa. • Diferentes medidas de avaliação (loss functions quadráticas) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 86 Algoritmo M5 (Cubist) • • • • • Modelos são árvores em que cada folha contem uma combinação linear dos atributos presentes nos nós do ramo que conduz a essa folha. Previsão é feita analogamente às árvores de decisão –nas folhas é calculada a combinação linear com os valores do novo exemplo. Pode haver problemas de descontinuidade entre folhas adjacentes! (mais acentuado se conjunto treino for pequeno). Smoothing da previsão – tratar descontinuidade entre os modelos de folhas adjacentes através da adição de modelos linear aos nós intermédios. Pruning análogo ao usado no C4.5 – simplificação das árvores nas folhas e nos nós intermédios por remoção de termos dos modelos lineares. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 87 Smoothing (descontinuidade entre folhas adjacentes) • Em vez de derivar directamente a previsão por aplicação do modelo linear na folha, fazemos smoothing da folha até à raiz sobre o valor obtido da previsão. • Assim, obtemos um aligeiramento (smoothing) do valor de previsão da classe. O processo decorre “bottom-up”, ao longo do ramo que liga a folha à raiz. O valor final é obtido por combinação do valor de classe previsto com os vários modelos dos nós intermédios. ni PV ( Si ) k M ( S ) PV ( S ) ni k • PV(S) = valor previsto a passar ao nó acima, • ni = número de casos que chegam ao nó abaixo • PV(Si) = valor previsto passado para este nó, • M(S) = valor obtido pelo modelo nesse ramo (folha), •k = constante de aligeiramento e.g. 15. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 88 Smoothing (consequências) • A precisão da árvore de modelos aumenta consideravelmente com este processo de smoothing. • Isto acontece sobretudo quando: – O conjunto de treino é pequeno, – Os modelos lineares ao longo de um ramo prevêem muitos valores diferentes. • Podemos obter o mesmo efeito, fazendo incluir os modelos intermédios nos nós folha. Assim, durante o processo de previsão, só os nós folhas são usados. • Uma desvantagem reconhecida é que nesta alternativa os nós folhas são maiores, mais complexos e de mais difícil interpretação (coeficientes que eram zero passam a não zero aquando da incorporação dos modelos intermédios). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 89 Construção da Árvore de Regressão • Escolha do atributo raiz: critério pelo desvio padrão do atributo numérico classe do conjunto de treino. Escolhe-se o atributo que minimiza este valor (SDR). • Critério de paragem: quando o sdr do atributo escolhido no “splitting” é uma fracção do sdr do conjunto de treino inicial. • Os modelos linear em cada nó são obtidos por regressão linear nos exemplos que atingem esse nó ( e.g. mínimos quadrados) • Os atributos categóricos são convertidos (em pré processamento) em binários (k valores do atributo dão origem a k-1 novos atributos) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 90 Exemplo de uma Model Tree com os seus modelos lineares (servo dataset) Os 5 valores do atributo nominal motor dão origem a 4 atributos binários. Ex: ler o atributo binário motor=D como D versus E,C,B,A! Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 91 Regras do Cubist Casos cobertos Valor médio de PRICE dos casos cobertos Intervalos de valores gerados pela regra Erro estimado para a regra • As regras estão ordenados pelo valor médio de PRICE associado. Assim, a regra 9 é a que gera o preço mais caro de casas em Boston. • Dentro dos modelos lineares, os atributos que mais contribuem para o modelo surgem primeiro. Na regra 8, CRIM é o atributo que mais contribui (negativamente). • Classificação típica: verificar regras que cobrem o novo caso, calcular o valor (de PRICE) de cada regra, prever a média dos valores calculados. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 92 Medidas de Avaliação (previsão numérica) Erro médio quadrado a1, a2, ...,an vector de valores reais. p1, p2,...,pn vector de valores previstos. ( p1 a1 ) ... ( pn an ) mse n p1 a1 ... pn an mae n 2 2 Erro médio absoluto correl = cov(p,a) /var(a) x var(p). Insensivel à escala de valores usada na classe! ( p p)(a a) corr.coef ( p p) (a a) i i i 2 i 2 i i i n 1 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 93 Combinação de Modelos Ideia: Usar (gerando ou não) múltiplos modelos para obter múltiplas predições para o mesmo exemplo a classificar. Combinar predições para obter previsão final. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 94 Início em Outubro de 2006 • Motivação prática usando o Netflix Prize: • Tarefa: – O treino representa um conjunto de utilizadores e os ratings ( rate ∈ {1,2,3,4,5, stars}) que estes atribuíram a filmes por si alugados. – Construir um classificador que, dado um utilizador e um filme sem rate atribuído, classifica correctamente o filme com o rate certo (1, 2, 3, 4, 5 ou stars). • Prémio de $1 milhão de dólares se o classificador obtiver uma melhoria de desempenho de 10% sobre o movie recommender/classifier da Netflix (MSE netflix = 0.9514) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 95 Ranking com os 30 melhores classificadores, quando o líder tinha uma melhoria de 8.5% sobre o Netflix. Métodos que recorrem a ensembles de modelos (composição de modelos) têm o melhor desempenho! alguns exemplos… Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 96 BellKor: “Our final solution (RMSE=0.8705) consists of blending 107 individual results.“ When Gravity and Dinosaurs Unite: “Our common team blends the result of team Gravity and team Dinosaur Planet.” (podia-se ter adivinhado pelo nome…) Gravity: U. of Toronto: “When the predictions of multiple RBM models and multiple SVD models are linearly combined, we achieve an error rate that is well over 6% better than the score of Netflix’s own system.” Arek Paterek: “My approach is to combine the results of many methods (also two-way interactions between them) using linear regression on the test set. The best method in my ensemble is regularized SVD with biases, post processed with kernel ridge regression” Rookies: “Thanks to Paul Harrison's collaboration, a simple mix of our solutions improved our result from 6.31 to 6.75” Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 97 Composição de Modelos (1) • Motivação: Não existe um algoritmo que seja melhor em todos os problemas (“no free lunch theorem”) • i.e. para cada ganho em desempenho numa sub-classe do problema há outra que tem o mesmo ganho em valor negativo. • Exploração de diferentes linguagem de representação, espaços de procura e funções de avaliação. • Condição necessária para que ocorra melhoria de desempenho: um conjunto melhora sobre os classificadores individuais se estes discordam entre si Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 98 Composição de Modelos (2) • Erro correlacionado (métrica de diversidade entre as predições de dois classificadores): probabilidade de dois classificadores cometerem o mesmo erro dado que um deles comete um erro. • Ou seja, diferentes tipos de erros a ocorrer em diferentes regiões do espaço. • Outra condição necessária: todos os classificadores envolvidos no conjunto têm desempenho melhor do que a escolha aleatória (“random guess”). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 99 Composição de Modelos (3) • A escolha de um só modelo levanta problemas estatísticos (decisão sem suporte), computacionais (máximos locais) e de representação (a hipótese não está no espaço). • Uso de múltiplos modelos tende a minimizar todos estes problemas. • Combinação de predições: – Voting (ponderada) – Voting (uniforme) – Class distribuition (CAREN) • Geração de Modelos Homogéneos – Bagging – Boosting • Geração de Modelos Heterogéneos – Stacking Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 100 Bagging • Boostrapp AGGregation, • boostrapping dos vários conjuntos de treino, • Cada conjunto de treino (de tamanho igual ao dataset inicial) dá origem a um modelo, • (amostragem com substituição/reposição) • Previsão feita por votação uniforme. • Funciona porque reduz a variabilidade dos modelos individuais escolhendo o voto maioritário de muitos modelos. • Em árvores de decisão acontece: • na escolha do um atributo de teste para um nó • na escolha dos cut-points nos atributos numéricos. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 101 Algoritmo Bagging For 1 to k, 1. Take a bootstrap sample (sampling with replacement) of the training examples 2. Build a model using sample 3. Add model to ensemble Para fazer uma previsão, correr cada modelo no ensemble, e usar a classe mais votada (previsão maioritária). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 102 Bagging S1 D sampling M1 pred1 S2 M2 pred2 Sn Mn predn voting Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) final prediction 103 Bagging Post Bagging S1 D sampling M1 pred1 SR2 M2 pred2 Sn Mn predn voting Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) final prediction 104 Post-Bagging (CAREN) • • • • Jorge & Azevedo (Discovery Science 05) Amostragem de regras em vez de casos, Não há necessidade de “relearning”, Conjunto de variantes sobre tipo de votos, e possibilidade de “don’t knows”, • Implementado no CAREN. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 105 Boosting • Algoritmo iterativo • Associa um peso a cada exemplo • Inicializar os peso de uma forma uniforme • Iterativamente: • gera um modelo para a actual distribuição dos exemplos (distribuição dada pelos pesos) • os pesos dos exemplos mal classificados são incrementados para a próxima iteração. • Os modelos gerados são agregados por votação pesada. • Há redução do bias e da variância. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 106 Boosting (2) • Weak learner que gera um hiper-plano paralelo a um dos eixos 1ºIteração + + + + - + + + - Treino + + + + Decisão + 2ºIteração + Treino + + + - - + + + + - - Composição dos Dois modelos - Decisão No limite, boosting consegue “cobrir” todos os casos, i.e. accuracyMineração de treino → 1.0 de Dados – UCE Sistemas de Suporte à Decisão (2010) 107 AdaBoost.M1 Algoritmo standard que implementa o princípio de Adaptative Boosting. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 108 Exemplo (AdaBoost.M1) Dataset de treino inicial que dá origem ao 1º modelo Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 109 Exemplo (AdaBoost.M1) Primeiro avaliação dando origem ao 2º conjunto de treino. (notar valores de erro e ponderação) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 110 Exemplo (AdaBoost.M1) Segunda iteração originando 3º conjunto de treino Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 111 Exemplo (AdaBoost.M1) Terceiro e último modelo Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 112 Exemplo (AdaBoost.M1) Hipótese Final Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 113 AdaBoost.M1 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 114 AdaBoost & Overfitting Segunda curva representa erro no treino. Curva no topo é o erro em teste. Notar que mesmo depois da curva de treino atinger zero a curva de teste continua a progredir (i.e. o erro a baixar). Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 115 Instance Based Learning • Modelos de previsão podem responder a uma query de duas formas: – Eager • Modelo previamente construido, expor novos casos ao modelo e.g. árvores de decisão – Lazy • Previsão elaborado sobre o próprio conjunto de treino e.g. k-nearest neighbor. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 116 Instance Based Learning (2) • Define-se uma função de distância, para encontrar o exemplo no treino que mais se aproxima do caso a classificar. Previsão derivada coincide com valor objectivo do exemplo encontrado. • Função distância := tipicamente resume-se ao cálculo da distância Euclidiana. Normaliza-se valores para diluir questões de escala nos atributos. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 117 K-Nearest Neighbors • Variante da primeira, onde se procura os k vizinhos mais próximos. Previsão feita por votação uniforme, seguindo os valores objectivo dos k vizinhos. • Método lento quando o conjunto de treino é grande! Tem também dificuldades na presença de nulos. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 118 Combinação a la CUBIST • Oferece a possibilidade de derivar previsões por combinação de dois modelos (rule based model + instance based model), • O primeiro é um modelo de regras de regressão, • O segundo é um k-nearest neighbors em que a previsão é a média dos k vizinhos (estamos a fazer previsão numérica!) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 119 Combinação a la Quinlan • Procedimento: – Procurar os k elementos de treino mais similares ao caso a prever, – Substituir média das k previsões por média do ajustamento dos k valores à custa das Valor do regras de regressão: objectivo Aplicação do em y modelo de regras em y Novo caso Predy(x) = T(y) + M(x) - M(y) Caso vizinho dentro dos k exemplos de treino Aplicação do modelos de regras em x Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 120 Decomposição Bias-Variance O erro de um modelo pode ser decomposto em três componentes: – Bias (viez) – Variância – Ruído no objectivo (noise) Bias mede a capacidade da previsão média de um algoritmo de aprendizagem (sobre todos os possíveis conjuntos de treino) acertar no objectivo. É também conhecido como erro de persistência – erro de tendência central. Variância mede a variabilidade da previsão de um algoritmo para diferentes conjuntos de treino de um dado tamanho. Ou seja, mede o “bounce around” do algoritmo para todos os conjuntos de treino. Ruído é o limite mínimo de erro esperado para qualquer algoritmo de aprendizagem (classificador Bayes Óptimo). É também conhecido como erro irredutível. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 121 Bias-Variance (reformulação) Objectivo do processo de aprendizagem é obter uma aproximação à função f, Dado o conjunto de treino, encontrar a função h entre um conjunto fixo de subclasses de funções para as quais o erro E(h) é mínimo, Componente independente da função h A distância para f Variância das predições Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 122 Bias-Variance (2) Diferentes tipos de modelos originam diferentes erros no mesmo dataset de treino. • A componente bias é grande se: – Se o modelo escolhido não for adequado ao dataset – O tipo de classificador escolhido não permite modelar bem os dados – Espaço de modelos (hipóteses) fornecido pelo método de previsão não contém um número suficientes de hipóteses. – Naive Bayes tem tendência a ter bias alto. Por outro lado, árvores de decisão tem normalmente bias baixo. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 123 Bias-Variance (3) O mesmo tipo de classificador tem diferentes erros com diferentes conjuntos de treino. • A variância é grande se: – Existir um número significativo de escolhas aleatórias durante o processo de construção do modelo, como por exemplo: • Escolher um exemplo para semente (seed) • Escolha de um atributo decisor entre vários com igualdade de valores de avaliação. – O modelo contém múltiplos parâmetros que necessitam de ser definidos. – O espaço disponível de hipóteses (associado ao conjunto de treino) é demasiado grande, e o modelo (hipótese) escolhido pode não ser preciso com os casos de teste. • Bagging tem tendência a baixar a variância dos classificadores originais. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 124 Bias-Variance (4) • Bagging reduz essencialmente a componente de variância do erro do classificador original • Boosting reduz bias e variância. • Árvores de decisão: bias baixo, variância alta. • Naive Bayes e discriminantes: variância baixa, bias alto. • Se aumentarmos o número de graus de liberdade do modelo: – Bias diminui, – Variância aumenta. Para minimizar o erro esperado é necessário um compromisso entre estas duas componentes. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 125 Bias-variance (Cálculo) • Seguindo (Kohavi&Wolpert), para 1-0 loss functions • P(YH = y | x) - valor médio de y previsto pelo algoritmo para o caso x. • P(YF = y | x) - probabilidade de o objectivo ter o valor y para o caso x. Tipicamente ignorado na nossa avaliação x2 1 (1 2 biasx2 Varx 1 2 P(Y F y | x)) 2 y [ P(YF y | x) P(YH y | x)]2 y 1 (1 2 Cada caso de teste P(YH y | x)) 2 y Todos os modelos Para cada Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) classe 126 Bias-variance (Cálculo) 2 Na prática seguimos a seguinte metodologia: • Para cada dataset dividir em D e E, sendo D o treino e E o test (#D=2m, #E=n, E={x1,x2,…,xn}). • Gerar m conjuntos de treino a partir de D usando amostragem uniforme sem reposição. • Correr o algoritmo em cada um dos m conjuntos de treino. Estimar σ2, bias2 e Var usando os valores de erro obtidos da aplicação dos modelos derivados no conjunto E (simples contagem de frequências). D 2m s D, s m # sets Cm2 m Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 127 Bias-variance (Exemplo) • Comparação do erro decomposto para classificadores ID3 e composição de 50 árvores ID3 (versões treinadas com 0.7 e 0.9 do conj D) • Composição aumenta levemente o bias mas estabiliza o ID3, baixando a variância. Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 128 Exemplo com Bagging & Boosting Variance Bias == C4.5 (implementação MLC++) (figura incompleta!) Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010) 129 Conclusão • Estudo de modelos de previsão. Modelos podem ser visto como estimadores. • Diferentes tipos de previsão – categórica e numérica. • Algoritmos para gerar árvores de decisão para classificação (e também para previsão numérica) • Avaliação de Modelos. Várias medidas baseado na noção de erro estimado. • Avaliação orientada à classe. Medidas. • Composição de Modelos. • Decomposição Bias-Variance. Análise das componentes do erro. 130 Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)