Modelos de Previsão - DI @ UMinho

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