mineração de dados – uce sistemas de suporte à decisão (2010) 1 modelos de previsão paulo j...
TRANSCRIPT
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)1
Modelos de Previsão
Paulo J Azevedo
DI - Universidade do Minho2005-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)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.
YXXX j ),...,,( 21
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)3
Modelos
Dataset Algoritmo Modelo Novocaso
Decisão
Pré processamento
Por vezes éImportante visualizaro modelo.
Dois tipos de previsão:
Categórica: Classificação Numérica: Regressão
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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 ?
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)5
ExemploInsecInsect IDt ID
AbdomeAbdomen n
LengthLength
AntennaAntennae e
LengthLength
Insect Insect ClassClass
1 2.7 5.5 GafanhotoGafanhoto
2 8.0 9.1 GriloGrilo
3 0.9 4.7 GafanhotoGafanhoto
4 1.1 3.1 GafanhotoGafanhoto
5 5.4 8.5 GriloGrilo
6 2.9 1.9 GafanhotoGafanhoto
7 6.1 6.6 GriloGrilo
8 0.5 1.0 GafanhotoGafanhoto
9 8.3 6.6 GriloGrilo
10 8.1 4.7 GriloGrilo
11 5.1 7.0 ??????????????
Dataset Insectos
Conjunto de treino com doisatributos e um atributo objectivo(classe)
Novo caso não observado
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)6
An
tenn
a L
engt
hA
nte
nna
Len
gth
10
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
Gafanhotos Grilos
Abdomen LengthAbdomen Length
Exemplo de um elemento daClasse Grilos
Exemplo de um elementoda classe Gafanhotos
Interpretação Geométrica
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)7
Interpretação geométricaDiscriminante Linear
11 5.1 7.0 ??????????????
An
tenn
a L
engt
hA
nte
nna
Len
gth
10
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
Abdomen LengthAbdomen Length
Novo caso
• Podemos projectar os casos novosPodemos projectar os casos novosno mesmo espaço da base de dadosno mesmo espaço da base de dadosdos casos de treino.dos casos de treino.
• Torna-se assim “mais fácil” de Torna-se assim “mais fácil” de falar em pontos no espaço, em vezfalar em pontos no espaço, em vezde casos.de casos.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)8
Interpretação geométricaDiscriminante Linear
11 5.1 7.0 ??????????????Novo caso
• Podemos projectar os casos novosno mesmo espaço da base de dadosdos casos de treino.
• Torna-se assim “mais fácil” de falar em pontos no espaço, em vezde casos.
10
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
An
tenn
a L
engt
hA
nte
nna
Len
gth
Abdomen LengthAbdomen Length
If novo casonovo caso esta acima da linhathen classe é Griloelse classe é Gafanhoto
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)9
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 podemossempre generalizar para N classes.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)10
SetosaVersicolor
Virginica
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.
If petal width > 3.272 – (0.325 * petal length) then classe = VirginicaElseif petal width…
Pet
al W
idth
Petal Length
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)11
Primeiros Algoritmos
• Discriminantes Lineares (R.Fisher)
• Naive Bayes
• Árvores de decisão
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)12
An
tenn
a L
engt
hA
nte
nna
Len
gth
10
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
GrilosGafanhotos
Voltando ao dataset de insectos mas agora com mais insectos. Notar os histogramas de classes por atributo
Abdomen LengthAbdomen Length
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)14
p(cj | d) = probabilidade da classe cj, dado que observamos d
3
Antennae length é 3
• 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…
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)15
10
2
P(Gafanhoto | 3 ) = 10 / (10 + 2) = 0.833
P(Grilo | 3 ) = 2 / (10 + 2) = 0.166
3
Antennae length é 3
p(cj | d) = probabilidade da classe cj, dado que observamos d
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)16
9
3
P(Gafanhoto | 7 ) = 3 / (3 + 9) = 0.250
P(Grilo | 7 ) = 9 / (3 + 9) = 0.750
7
Antennae length é 7
p(cj | d) = probabilidade da classe cj, dado que observamos d
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)17
66
P(Gafanhoto | 5 ) = 6 / (6 + 6) = 0.500
P(Grilo | 5 ) = 6 / (6 + 6) = 0.500
5
Antennae length é 5
p(cj | d) = probabilidade da classe cj, dado que observamos d
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)19
• 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
Classificadores Bayesianos
)(
)( x )/()/(
dP
cPcdPdcP
jjj
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)20
• 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 ...
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)21
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 é:
)(
)( x )/()/(
EP
HPHEPEHP
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.
)(
)( x )/( x ... x )/( x )/()/( 21
EP
yesPyesEPyesEPyesEPEyesP n
Em resumo…
Pode ser ignorado porque
é sempre o mesmo valor para todas as
classes!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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) = 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)23
p(d1|cj) p(d2|cj) p(dn|cj)
cjClassificadores 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
…
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)24
Classificador Naïve Bayes
p(d1|cj) p(d2|cj) p(dn|cj)
p(d|cj)Questão!
Naïve Bayes assume independência dos atributos…
Sexo > 180 cms
Homem Yes 0.15
No 0.85
Mulher Yes 0.01
No 0.99
Sexo > 100 kgs
Homem Yes 0.11
No 0.89
Mulher Yes 0.05
No 0.95
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)25
p(d1|cj) p(d2|cj) p(dn|cj)
p(d|cj)Solução
Considerar a relação entre atributos (definir os arcos entre os nós)…
Sexo > 180 cms
Homem Yes 0.15
No 0.85
Mulher Yes 0.01
No 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 Yes and > 180 cms 0.01
Classificador Naïve Bayes
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)26
p(d1|cj) p(d2|cj) p(dn|cj)
p(d|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.
Solução
Considerar a relação entre atributos…
Classificador Naïve Bayes
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)28
Árvores de Decisão
OUTLOOK
HUMIDITY WINDYES
YESYES NONO
overcastsunny
rain
high
normal st
rong weak
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)29
Árvores de Decisão(interpretação geométrica)
An
tenn
a L
engt
hA
nte
nna
Len
gth
10
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
Abdomen LengthAbdomen Length
Abdomen LengthAbdomen Length > 7.1?
no yes
GriloAntenna LengthAntenna Length > 6.0?
no yes
GriloGafanhoto
11 5.1 7.0 ??????????????Novo caso
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
)(log)( 2 classeclasse
classe ppSEntropia
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
Entropia
32
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)33
Ganho InformativoCalculo do Ganho Informativo fornecido pelo atributo A:
)(
)(#
#)(),(
Avaloresvv
v SEntropiaS
SSEntropiaASGanho
Ganho é a redução esperada de entropia causada por ter conhecimentodo 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)34
Outras medidasHá 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).
classes
jjptGini
#
1
21)(
)()()(),( RRLL tGiniptGiniptGinits
Proporção de casos no lado esq/dir. No CART as árvores são sempre
binárias
Valor gini no subconjunto dir/esq
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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 0.811 + (6/14) x 1.00 = 0.4634 + 0.4285
Ganho(S,Wind) = 0.940 – 0.8919 = 0.0481
.
.
.
Ganho(S,Outlook) = 0.694
Maximizamos o Ganho!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)36
Selecção
Outlook
??
[9+,5-]
sunny rain
Yes
ove
rcast
[1,2,…,14]
[1,2,8,9,11] [2+,3-]
[4,5,6,10,14] [3+,2-]
Notar que Entropia(Sovercast) = 0. Dá origem a uma ramo folha com (Yes) visto que pyes = 4.
[3,7,12,13] [4+,0-]
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)40
Novo Ganho
),(
),(),(
ASSplitInfo
ASGanhoASNovoGanho
)#
#(log
#
#),( 2 S
S
S
SASSliptInfo valor
Avalor
valor
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)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)44
Fayyad & Irani
• Condição Minimum Description Length:
N = #S, k = #classes, ki = #classes em Si
• Processo pára se a condição é satisfeita.
0.0 2.3 12.4 19.3 24.418.92.3
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.
Informação necessária para especificar o ponto de split.
Correcção devida à
necessidade de transmitir que
classes correspondem
aos subintervalos inferiores e superiores.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
2
1 1
2)(2
i
k
jij
ijij
EA E
= 1 class1 class2 class3
dis
trib
uiç
ão c
lass
es
[1, 5[ [6, +oo[
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
A CLASS1 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,12Valores 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íamoster as expressões: A ≤ 6 e A > 6.
A
A =< 6
A > 6
[1,2,4,5,6] [9,12,15,16]
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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?
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Outlook Temp Class
sunny hot no
sunny ? no
? hot yes
rain Mild yes
Temp=hot, (substituir por valor mais frequentedentro da classe)
Outlook=sunny, (substituir por valor mais frequente)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)51
Nulos no C4.5Durante a construção do Modelo: entre os exemplos quecobrem 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 conhecidoo peso do subconjunto fica inalterado. Caso contrário o exemplo éassociado a cada subconjunto criado em que o peso é multiplicadopela 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)52
Nulos em C4.5Actualização dos pesos:
)(' iTprob
onde ω’ é o novo peso quando atribuímos esteexemplo a um novo subconjunto.prob() definido como:
i
ii
Texemplospeso
TconhecidosvaloresexemplospesosTprob
__
____)(
info(Ti) ( ou Ent(Ti) ) é assim calculado só comexemplos de valores conhecidos.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)53
Nulos e Ganho
))(info)(info(),(1
m
ii
i TT
TTFASGanho
Onde F é a proporção de exemplos com valores nulos para oatributo sobre o número total de exemplos.
Novo splitinfo() é:
)(log))(log()(splitinfo 221 T
T
T
T
T
T
T
TA uui
m
i
i
onde Tu é o subconjunto dos exemplos comvalores nulos para o atributo A. Assume-se m+1 divisões!!!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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-searitmeticamente a classificação. A classe com maior probabilidade é a escolhida.
OUTLOOK
HUMIDITY WINDYES
YESYES NONO
overcastsunny rain
high
normal st
rong weak
(2.0) (3.4/0.4) (2.4/0.4) (3.0)
No = 2.0/5.4 x 2.0/2.0 + 3.4/5.4 x 0.4/3.4 = 0.44Yes = 2.0/5.4 x 0 / 2.0 + 3.4/5.4 x 3/3.4 = 0.56
Novo Caso: Outlook=sunny,Temp=hot, Humidity=?, Wind=false
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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)57
Complexidade do modelo (# de nós n a árvore)
acc
ura
cy
dados de treino
dados de teste
Overfitting (curvas de erro)
Curva demonstrando ocorrência de sobre-ajustamento.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
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.
58
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
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)
59
Técnica conhecida por “reduced-error pruning”Técnica conhecida por “reduced-error pruning”
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
Subtree Replacement
60
• 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)
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??
61
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
Subtree Raising: Exemplo
62
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)
statutory-holidays subiu na árvore e substituiu “longterm-disability-assistance“
Substituição por folha “bad”
Sub-árvore removida pela operação de “raising”
Substituição por folha “bad”
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)64
Exemplo (subtree replacement)
Educat spend
Class=democrat Class=democrat Class=republican
=n=y
=u
(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 0.206 + 9 x 0.143 + 1 x 0.750 = 3.273
Se substituirmos esta sub-árvore pela folha (Class=democrat) temos como avaliaçãoN=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.
One-tail Binom test (H1:>=0.5),α=0.25
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
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).
65
kN
nNSE
1
)(
Estimação de erro de Laplace.Assume que a distribuição das probabilidades dos exemplos
pertencerem a classes diferentes é Uniforme.
Estimação de erro de Laplace.Assume que a distribuição das probabilidades dos exemplos
pertencerem a classes diferentes é Uniforme.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
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 (No i).
66
Serve também para decidir
sobre a poda ou não do nó No
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
Laplace (cont2)• Exemplo de um cálculo (com decisão de pruning
ou não do nó intermédio)
67
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.
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):
68
com Laplace:
inst#, actual, predicted, prob. distribution 1 2:good 2:good 0.206 *0.794 2 2:good 2:good 0.206 *0.794 3 1:bad 1:bad *0.815 0.185 4 2:good 2:good 0.206 *0.794 5 2:good 2:good 0.088 *0.912
sem Laplace:
inst#, actual, predicted, prob. distribution 1 2:good 2:good 0.18 *0.82 2 2:good 2:good 0.18 *0.82 3 1:bad 1:bad *0.876 0.124 4 2:good 2:good 0.18 *0.82 5 2:good 2:good 0.048 *0.952
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)70
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.
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})
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)72
Exemplo
C p n
p 4 0
n 2 1Accuracy (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!)
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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)73
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).
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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)76
ROCs
• TP rate = TP / (TP+FN)
• FP rate = FP / (FP+TN)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
NºNº PrePre scorescore
1 p .9
2 p .8
3 n .7
4 p .6
5 p .55
NºNº PrePre scorescore
11 p .4
12 n .39
13 p .38
14 n .37
15 n .36
NºNº PrePre scorescore
16 n .35
17 p .34
18 n .33
19 p .30
20 n .1
NºNº PrePre scorescore
6 p .54
7 n .53
8 n .52
9 p .51
10 n .505
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
AUC = (Gini_coeff + 1) / 2
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.
Convex Hull: Mostra os classificadores com mais alta accuracy para uma determinada distribuição de classes.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)79
ROC para comparação de classificadores
Na esquerda, classificador B tem maior área, consequentementemelhor desempenho. Na direita temos um classificador binário Ae 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)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.
FpTp
Tp
Precision
FnTp
Tp
Recall
Precision Recall
Precision Recall 21
F
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!
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)82
Selecção de Regras CAR
• Noção de cobertura do conjunto de treino1) Ordenar regras por ordem descendente de confiança
2) Para cada exemplo e ∈ Treino, e.count=0;
3) Enquanto conjunto Treino ≠ Ø e Regras ≠ Ø fazer1) Para cada r ∈ Regras
1) Encontrar todos os e que cobrem r 2) Se r classifica bem pelo menos um e 3) Então fazer e.count++ para todos e4) 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)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)84
Previsão Numérica
Aproximações numéricas a um atributo objectivo contínuo.
Y = aX + b
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
kn
SMkSPVnSPV
i
ii
)()(
)(
• 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)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)91
Exemplo de uma Model Treecom 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)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 ovalor (de PRICE) de cada regra, prever a média dos valores calculados.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)
Medidas de Avaliação(previsão numérica)
93
n
apapmse nn
2211 )(...)(
n
apapmae nn
...11
1
)()(
))((.
22
n
aapp
aappcoefcorr
ii
ii
ii
i
a1, a2, ...,an vector de valores reais.p1, p2,...,pn vector de valores previstos.
correl = cov(p,a) /var(a) x var(p). Insensivel à escala de valores usada na classe!
Erro médio quadrado
Erro médio absoluto
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)95
• 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)
Início em Outubro de 2006
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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…
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)97
Rookies: “Thanks to Paul Harrison's collaboration, a simple mix of our solutions improved our result from 6.31 to 6.75”
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”
Gravity:
When Gravity and Dinosaurs Unite: “Our common team blends the result of team Gravity and team Dinosaur Planet.” (podia-se ter adivinhado pelo nome…)
BellKor: “Our final solution (RMSE=0.8705) consists of blending 107 individual results.“
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.”
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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”).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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 modelosindividuais 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)102
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)103
Bagging
D
S1
S2
Sn
M1
M2
Mn
pred1
pred2
predn
finalprediction
sampling voting
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)104
Bagging
D
S1
S2
Sn
M1
M2
Mn
pred1
pred2
predn
finalpredictionD
M1
M2
Mn
pred1
pred2
predn
finalpredictionR
Post Bagging
sampling voting
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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 classificadossã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)107
Boosting (2)
• Weak learner que gera um hiper-plano paralelo a um dos eixos
+
--+
+
-
+
Treino
Treino
+
--+
-+
Decisão
Decisão
1ºIteração
2ºIteração
++
+
+
++
+
++
-
-
+
--+
++
Composição dosDois modelos
No limite, boosting consegue “cobrir” todos os casos, i.e. accuracy de treino → 1.0
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)108
AdaBoost.M1Algoritmo standard que implementa o princípio de Adaptative Boosting.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)109
Exemplo (AdaBoost.M1)
Dataset de treino inicial que dá origem ao 1º modelo
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)110
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)111
Exemplo (AdaBoost.M1)Segunda iteração originando 3º conjunto de treino
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)112
Exemplo (AdaBoost.M1)Terceiro e último modelo
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)113
Exemplo (AdaBoost.M1)
Hipótese Final
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)114
AdaBoost.M1
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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).
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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!)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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)
Novo caso
Caso vizinho dentro dos k exemplos de treino
Valor do objectivo em y
Aplicação do modelos de regras em x
Aplicação do modelo de
regras em y
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)121
Decomposição Bias-VarianceO 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)122
Bias-Variance (reformulação)Objectivo do processo de aprendizagem é obter uma aproximação à função f,
Dado o conjunto de treino,
Componente independente da função h
A distância para f Variância das predições
encontrar a função h entre um conjunto fixo de subclasses de funções para as quais o erro E(h) é mínimo,
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.
y
HFx xyYPxyYPbias 22 )]|()|([2
1
y
Hx xyYPVar 2))|(1(2
1
y
F xyYP 22x ))|(1(
2
1
Tipicamente ignorado na nossa avaliação
Para cada classe
Todos os modelos
Cada caso de teste
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)127
Bias-variance (Cálculo) 2Na 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).
mmCsetsmsDsmD 2# , 2
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)128
• 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.
Bias-variance (Exemplo)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)129
Exemplo com Bagging & Boosting
Bias
Variance
(figura incompleta!)
== C4.5 (implementação MLC++)
Mineração de Dados – UCE Sistemas de Suporte à Decisão (2010)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.