A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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

2 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 em que X1,X2,…,Xj são atributos dos dados e Y é o atributo objectivo.

3 Modelos Dois tipos de previsão: Dataset Algoritmo Modelo
Por vezes é Importante visualizar o modelo. Dataset Algoritmo Modelo Novo caso Pré processamento Decisão Dois tipos de previsão: Categórica: Classificação Numérica: Regressão

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

5 Exemplo Conjunto de treino com dois atributos e um atributo objectivo
Dataset Insectos Insect ID Abdomen Length Antennae Insect Class 1 2.7 5.5 Gafanhoto 2 8.0 9.1 Grilo 3 0.9 4.7 4 1.1 3.1 5 5.4 8.5 6 2.9 1.9 7 6.1 6.6 8 0.5 1.0 9 8.3 10 8.1 Conjunto de treino com dois atributos e um atributo objectivo (classe) Novo caso não observado 11 5.1 7.0 ???????

6 Interpretação Geométrica
Gafanhotos Grilos 10 1 2 3 4 5 6 7 8 9 Exemplo de um elemento da Classe Grilos Antenna Length Exemplo de um elemento da classe Gafanhotos Abdomen Length

7 Interpretação geométrica Discriminante Linear
Novo caso 11 5.1 7.0 ??????? 10 1 2 3 4 5 6 7 8 9 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. Antenna Length Abdomen Length

8 Interpretação geométrica Discriminante Linear
Novo caso 11 5.1 7.0 ??????? 10 1 2 3 4 5 6 7 8 9 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. Antenna Length If novo caso esta acima da linha then classe é Grilo else classe é Gafanhoto Abdomen Length

9 Notar que o problema só tem
duas classes, mas podemos sempre generalizar para N classes. Casos em que o problema envolve mais do que dois atributos (plano com mais do que 2 dimensões)

10 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. Setosa Versicolor Virginica Petal Width Petal Length If petal width > – (0.325 * petal length) then classe = Virginica Elseif petal width…

11 Primeiros Algoritmos Discriminantes Lineares (R.Fisher) Naive Bayes
Árvores de decisão

12 Voltando ao dataset de insectos mas agora com mais insectos
Voltando ao dataset de insectos mas agora com mais insectos. Notar os histogramas de classes por atributo 10 1 2 3 4 5 6 7 8 9 Antenna Length Abdomen Length Grilos Gafanhotos

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

14 p(cj | d) = probabilidade da classe cj, dado que observamos d
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

15 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

16 p(cj | d) = probabilidade da classe cj, dado que observamos d
P(Gafanhoto | 7 ) = 3 / (3 + 9) = 0.250 P(Grilo | 7 ) = 9 / (3 + 9) = 0.750 9 3 7 Antennae length é 7

17 p(cj | d) = probabilidade da classe cj, dado que observamos d
P(Gafanhoto | 5 ) = 6 / (6 + 6) = 0.500 P(Grilo | 5 ) = 6 / (6 + 6) = 0.500 6 6 5 Antennae length é 5

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

19 Classificadores Bayesianos
Classificadores Bayesianos usam o Teorema de Bayes, que dizer que: 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

20 p(d|cj) = p(d1|cj) x p(d2|cj) x ….x p(dn|cj)
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, multiplicado por… A probabilidade da classe cj gerar o valor observado para o atributo 2, multiplicado por ...

21 Pode ser ignorado porque é sempre o mesmo valor para todas as classes!
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 é: 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.

22 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) = Class=no (3/5 x 1/5 x 4/5 x 3/5 x 5/14) =

23 cj … p(d1|cj) p(d2|cj) p(dn|cj)
Classificadores Bayesianos são normalmente representados por grafos 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) p(dn|cj)

24 Classificador Naïve Bayes
Questão! Naïve Bayes assume independência dos atributos… p(d|cj) Classificador Naïve Bayes p(d1|cj) p(d2|cj) p(dn|cj) Sexo > 180 cms Homem Yes 0.15 No 0.85 Mulher 0.01 0.99 Sexo > 100 kgs Homem Yes 0.11 No 0.89 Mulher 0.05 0.95

25 Classificador Naïve Bayes
Solução Considerar a relação entre atributos (definir os arcos entre os nós)… p(d|cj) Classificador Naïve Bayes p(d1|cj) p(d2|cj) p(dn|cj) Sexo > 180 cms Homem Yes 0.15 No 0.85 Mulher 0.01 0.99 Sexo > 100 kgs Homem Yes and > 180 cms 0.11 No and > 180 cms 0.49 Yes and NOT > 180 cms 0.05 No and NOT > 180 cms 0.35 Mulher 0.01

26 Classificador Naïve Bayes
p(d|cj) Classificador Naïve Bayes Solução Considerar a relação entre atributos… p(d1|cj) 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.

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

28 Árvores de Decisão YES NO YES NO YES
OUTLOOK rain sunny overcast HUMIDITY WIND YES normal strong weak high NO YES NO YES Podemos derivar regras a partir dos vários ramos. Exemplo: class=yes  Humidity=normal & Outlook=sunny

29 (interpretação geométrica)
Árvores de Decisão (interpretação geométrica) Novo caso 11 5.1 7.0 ??????? 10 1 2 3 4 5 6 7 8 9 Abdomen Length > 7.1? Antenna Length no yes Antenna Length > 6.0? Grilo no yes Gafanhoto Grilo Abdomen Length

30 Algoritmo ID3 para a construção de árvores de decisão
Sendo S o conjunto de treino: 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. Como decidir sobre “qual é o melhor atributo para a raiz???” Objectivo: Obter subconjuntos o mais homogéneos possíveis (em termos de classe)!

31 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. pclasse = proporção entre elementos da classe e elementos de S

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

33 Ganho Informativo Calculo do Ganho Informativo fornecido pelo atributo 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!?

34 Valor gini no subconjunto dir/esq
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. Índice Gini (no nó t): Gini splitting criteria (para um split s no nó t): 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). Proporção de casos no lado esq/dir. No CART as árvores são sempre binárias Valor gini no subconjunto dir/esq

35 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 (6/14) x 1.00 = Ganho(S,Wind) = – = . Ganho(S,Outlook) = 0.694 Maximizamos o Ganho!

36 Selecção Notar que Entropia(Sovercast) = 0.
[1,2,…,14] [9+,5-] Outlook rain sunny overcast ? ? [1,2,8,9,11] [2+,3-] Yes [4,5,6,10,14] [3+,2-] [3,7,12,13] [4+,0-] Notar que Entropia(Sovercast) = 0. Dá origem a uma ramo folha com (Yes) visto que pyes = 4.

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

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

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

40 Novo Ganho 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.806

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

42 Tipos de Discretização
Supervisionada versus Não Supervisionada Os dados contêm um atributo objectivo que pode ser considerado para “guiar” o processo de discretização, ou não? Paramétrica versus Não Paramétrica O processo necessita de parâmetros e.g. número de intervalos, ou não? Hierárquica versus Não Hierárquica 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 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 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 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 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)

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

44 Informação necessária para especificar o ponto de split.
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: N = #S, k = #classes, ki = #classes em Si Processo pára se a condição é satisfeita. Correcção devida à necessidade de transmitir que classes correspondem aos subintervalos inferiores e superiores. Informação necessária para especificar o ponto de split. 0.0 2.3 2.3 12.4 18.9 24.4 19.3

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

46 ChiMerge Cálculo do Χ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. 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. class1 class2 class3 distribuição classes [1, 5[ [6, +oo[ = 1

47 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. 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) A CLASS 1 yes 2 4 no 5 6 9 12 15 16 Se o ponto escolhido fosse o 6 então podíamos ter as expressões: A ≤ 6 e A > 6. A A > 6 A =< 6 [1,2,4,5,6] [9,12,15,16]

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

49 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. Temp=hot, (substituir por valor mais frequente dentro da classe) Outlook Temp Class sunny hot no ? yes rain Mild Outlook=sunny, (substituir por valor mais frequente)

50 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 acontece em procedimentos mais simplistas).

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

52 Nulos em C4.5 Actualização dos pesos:
onde ω’ é o novo peso quando atribuímos este exemplo a um novo subconjunto. prob() definido como: info(Ti) ( ou Ent(Ti) ) é assim calculado só com exemplos de valores conhecidos.

53 Nulos e Ganho onde Tu é o subconjunto dos exemplos com
Onde F é a proporção de exemplos com valores nulos para o atributo sobre o número total de exemplos. Novo splitinfo() é: onde Tu é o subconjunto dos exemplos com valores nulos para o atributo A. Assume-se m+1 divisões!!!

54 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 rain sunny overcast WIND HUMIDITY YES high normal strong weak NO YES NO YES (2.4/0.4) (3.0) (2.0) (3.4/0.4) Contabilizar nos ramos a soma da distribuição de probabilidade da classe No. Σi∈{high,normal}, (#ramo_i / #HUMIDITY) x (#No_ramo_i / #ramo_i) No = 2.0/5.4 x 2.0/ /5.4 x 0.4/3.4 = Yes = 2.0/5.4 x 0 / /5.4 x 3/ =

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

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

57 Overfitting (curvas de erro)
Curva demonstrando ocorrência de sobre-ajustamento. dados de treino accuracy dados de teste Complexidade do modelo (# de nós n a árvore)

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

59 Técnica conhecida por “reduced-error pruning”
Pós-pruning Primeiro expandir a árvore totalmente e depois aplicar 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) Técnica conhecida por “reduced-error pruning”

60 Subtree Replacement Processamento bottom-up,
Substituição de uma árvore após processar todas as suas sub-árvores

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

62 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) Substituição por folha “bad” 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“

63 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

64 Exemplo (subtree replacement)
Educat spend =n =u =y One-tail Binom test (H1:>=0.5),α=0.25 Class=democrat Class=democrat Class=republican (6) (9) (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 x x = 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 = Assim, o C4.5 substitui a sub-árvore em questão pela nova folha.

65 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? S é conjunto de exemplos que chegam à folha, N = #S k classes n exemplos em N pertencem à classe C (mais frequente). Estimação de erro de Laplace. Assume que a distribuição das probabilidades dos exemplos pertencerem a classes diferentes é Uniforme.

66 Serve também para decidir sobre a poda ou não do nó No
Laplace (cont) Para um nó intermédio No, calculamos o erro esperado (chamado backed-up-error) BackedUpError(No) = ∑i Pi x E(Noi). 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 (Noi). Serve também para decidir sobre a poda ou não do nó No

67 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+2) = 0.429 Folha à direita de b tem E(S) = 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 (1/6) x = 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

68 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: inst#, actual, predicted, prob. distribution :good 2:good *0.794 :good 2:good *0.794 :bad :bad * :good 2:good *0.794 :good 2:good *0.912 sem Laplace: inst#, actual, predicted, prob. distribution :good 2:good *0.82 :good 2:good *0.82 :bad :bad * :good 2:good *0.82 :good 2:good *0.952

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

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

71 Matriz da Confusão Também chamada matriz de erros/acertos.
Colunas com classes previstas, linhas com classes verdadeiras. Podemos facilmente identificar os falsos positivos, falsos negativos, acertos e erros. Cpp  exemplos da classe p classificados como p Cpn  exemplos da classe p classificados como n. previsão Erro?l

72 Exemplo C p n 4 2 1 Accuracy (rácio de acerto) = 1 – error_rate.
True Positive = hit (Cpp) True Negative = rejeição correcta (Cnn) False Positive = falso alarme (erro Tipo I) (Cpn) False Negative = miss (erro Tipo II) (Cnp) C p n 4 2 1 Accuracy (rácio de acerto) = 1 – error_rate. 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!)

73 Curvas ROC Receiver Operating Characteristics
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. Curvas ROC 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).

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

75 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). 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. Associa-se a cada previsão um score!

76 ROCs TP rate = TP / (TP+FN) FP rate = FP / (FP+TN)

77 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. Pre score 1 p .9 2 .8 3 n .7 4 .6 5 .55 Pre score 6 p .54 7 n .53 8 .52 9 .51 10 .505 Pre score 11 p .4 12 n .39 13 .38 14 .37 15 .36 Pre score 16 n .35 17 p .34 18 .33 19 .30 20 .1

78 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

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

80 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: (mede qualidade de cada previsão individual) (proporção de respostas correctas) (varia entre 0 e 1 e valores mais altos sugerem melhores previsões) Area Under Curve – entre 0 e 1. Mede a capacidade de identificar os casos que não são desta classe. Valores altos indica poucos erros do tipo I. É o dual de precision!

81 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

82 Selecção de Regras CAR Noção de cobertura do conjunto de treino
Ordenar regras por ordem descendente de confiança Para cada exemplo e ∈ Treino, e.count=0; Enquanto conjunto Treino ≠ Ø e Regras ≠ Ø fazer Para cada r ∈ Regras 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 > δ.

83 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

84 Previsão Numérica Y = aX + b Aproximações numéricas a um atributo objectivo contínuo.

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

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

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

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

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

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

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

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

93 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. Erro médio absoluto correl = cov(p,a) /var(a) x var(p). Insensivel à escala de valores usada na classe!

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

95 Tarefa: Motivação prática usando o Netflix Prize:
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 = )

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

97 BellKor: “Our final solution (RMSE=0
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”

98 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

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

100 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

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

102 Algoritmo Bagging For 1 to k,
Take a bootstrap sample (sampling with replacement) of the training examples Build a model using sample Add model to ensemble Para fazer uma previsão, correr cada modelo no ensemble, e usar a classe mais votada (previsão maioritária). 102

103 Bagging D S1 S2 Sn M1 M2 Mn pred1 pred2 predn final prediction
sampling voting

104 Bagging Post Bagging D M1 M2 Mn pred1 pred2 predn final prediction R D
Sn M1 M2 Mn pred1 pred2 predn final prediction sampling voting

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

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

107 Boosting (2) No limite, boosting consegue “cobrir” todos os casos,
Weak learner que gera um hiper-plano paralelo a um dos eixos 1ºIteração + + + + + + - + - + - - + + Treino Decisão + + - + + - 2ºIteração + + + + Composição dos Dois modelos - + + - - - Treino Decisão No limite, boosting consegue “cobrir” todos os casos, i.e. accuracy de treino → 1.0

108 AdaBoost.M1 Algoritmo standard que implementa o princípio de Adaptative Boosting.

109 Exemplo (AdaBoost.M1) Dataset de treino inicial que dá origem ao 1º modelo

110 Exemplo (AdaBoost.M1) Primeiro avaliação dando origem ao 2º conjunto de treino. (notar valores de erro e ponderação)

111 Exemplo (AdaBoost.M1) Segunda iteração originando 3º conjunto de treino

112 Exemplo (AdaBoost.M1) Terceiro e último modelo

113 Exemplo (AdaBoost.M1) Hipótese Final

114 AdaBoost.M1

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

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

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

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

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

120 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 regras de regressão: Predy(x) = T(y) + M(x) - M(y) Valor do objectivo em y Aplicação do modelo de regras em y Novo caso Aplicação do modelos de regras em x Caso vizinho dentro dos k exemplos de treino

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

122 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

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

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

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

126 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 Cada caso de teste Todos os modelos Para cada classe

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

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

129 Exemplo com Bagging & Boosting
Variance Bias == C4.5 (implementação MLC++) (figura incompleta!)

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google