You are on page 1of 49

Mtodos de Amostragem

e Avaliao de Algoritmos
AM uma ferramenta poderosa, mas no
existe um nico algoritmo que apresente o
melhor desempenho para todos os
problemas
Assim, importante compreender o poder
e a limitao dos diferentes algoritmos
utilizando alguma metodologia de
avaliao que permita comparar algoritmos
Veremos uma metodologia de avaliao,
freqentemente utilizada pela comunidade
de AM, para comparar dois algoritmos, a
qual se baseia na idia de amostragem
(resampling)
Jos Augusto Baranauskas
Departamento de Fsica e Matemtica FFCLRP-USP
Sala 228 Bloco P2 Fone (16) 3602-4439

E-mail: augusto@fmrp.usp.br
URL: http://www.fmrp.usp.br/augusto

Mtodos de Amostragem
O classificador por si s no fornece uma boa estimativa
de sua capacidade de previso (ele possui boa
capacidade de descrever os dados, no de predizer)
Uma vez que o classificador conhece todos os dados
inevitvel que super-estime sua capacidade de previso
Por exemplo, a taxa de erro ser super-otimista (abaixo da taxa
de erro verdadeira) e no raro obter 100% de preciso no
conjunto de treinamento

Assim, dados um conjunto de exemplos de tamanho finito


e um indutor, importante estimar o desempenho futuro
do classificador induzido utilizando o conjunto de
exemplos
Todos os mtodos no paramtricos descritos a seguir,
exceto pelo mtodo de resubstituio, esto baseados na
idia de amostragem
2

Mtodos de Amostragem
Amostra 1

Mundo Real
Distribuio D

Conjunto de Exemplos
Distribuio D

Amostra 2

Amostra 3

Amostra L

Mtodos de Amostragem
O mundo real apresenta uma distribuio de exemplos D
em um dado domnio, a qual desconhecida
Ao extrair exemplos do mundo real, formando assim um
conjunto de exemplos, obtm-se uma distribuio de
exemplos D', a qual , supostamente, similar
distribuio D
De modo a estimar uma medida, geralmente a preciso
ou o erro, de indutores treinados com base na distribuio
D', extraem-se amostras a partir de D', treina-se um
indutor com essas amostras e testa-se seu desempenho
em exemplos de D' (normalmente com exemplos fora da
amostra utilizada para treinamento)
Desta forma, simula-se o processo de amostragem que
ocorre no mundo real, assumindo que D' representa o
mundo real
4

Mtodos de Amostragem
importante, ao estimar uma medida verdadeira
(por exemplo, o erro verdadeiro), que a amostra
seja aleatria, isto , os exemplos no devem
ser pr-selecionados
Para problemas reais, normalmente tomada
uma amostra de tamanho n e o objetivo consiste
em estimar uma medida para aquela populao
em particular (no para todas as populaes)
Alguns mtodos para estimar medidas so
descritos a seguir
5

Mtodos de Amostragem
(Resubstituio)

Classificadores

Amostras

Conjunto de
Exemplos

Teste

Avaliao Final

Treinamento

Indutor

Resubstituio
Este mtodo consiste em construir o classificador e testar seu desempenho
no mesmo conjunto de exemplos, ou seja, o conjunto de teste idntico ao
conjunto de treinamento
Este estimador fornece uma medida aparente, possuindo uma estimativa
altamente otimista da preciso, devido ao fato de que o processo de
classificao tenta maximiz-la
Para muitos algoritmos de induo que classificam corretamente todos os
exemplos, tais como 1-Nearest Neighbors ou rvores de deciso sem poda,
esta estimativa muito otimista: se no houver exemplos conflitantes, a
estimativa de preciso atinge 100%
Assim sendo, o desempenho calculado com este mtodo possui um bias
otimista, ou seja, o bom desempenho no conjunto de treinamento em geral
no se estende a conjuntos independentes de teste
Quando o bias do estimador de resubstituio foi descoberto, diversos
mtodos de cross-validation (validao cruzada) foram propostos, os quais
so descritos a seguir
Todos eles esto baseados no mesmo princpio: no deve haver exemplos
em comum entre o conjunto de treinamento (ou aprendizado) e o conjunto de
teste

Mtodos de Amostragem
(Exceto Resubstituio)
Conjunto de
Exemplos
Amostras

Teste

Classificadores

Avaliao Final

Treinamento

Indutor

Holdout
Este estimador divide os exemplos em uma
porcentagem fixa de exemplos p para
treinamento e (1-p) para teste, considerando
normalmente p > 1/2
Valores tpicos so p = 2/3 e (1-p) = 1/3, embora
no existam fundamentos tericos sobre estes
valores
Nmero Total de Exemplos

Treinamento

Teste
9

Holdout
Uma vez que uma hiptese construda
utilizando todos os exemplos, em mdia,
apresenta desempenho melhor que uma
hiptese construda utilizando apenas uma
parte dos exemplos, este mtodo tem a
tendncia de super estimar o erro
verdadeiro
Para pequenos conjuntos, nem sempre
possvel separar uma parte dos exemplos
10

Holdout
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then
insert it again.

De forma a tornar o resultado menos dependente da


forma de diviso dos exemplos, pode-se calcular a mdia
de vrios resultados de holdout atravs da construo de
vrias parties obtendo-se, assim, uma estimativa mdia
do holdout
Nmero Total de Exemplos
Exemplo de Teste

Exemplos de
Treinamento

11

Amostragem Aleatria
Na amostragem aleatria, L hipteses, L<<n, so
induzidas a partir de cada um dos L conjuntos de
treinamento
O erro final calculando como sendo a mdia
dos erros de todas as hipteses induzidas e
calculados em conjuntos de teste independentes
e extrados aleatoriamente
Amostragem aleatria pode produzir melhores
estimativas de erro que o estimador holdout

12

Cross-Validation
Este estimador um meio termo entre os
estimadores holdout e leave-one-out
Em r-fold cross-validation (CV) os exemplos so
aleatoriamente divididos em r parties
mutuamente exclusivas (folds) de tamanho
aproximadamente igual a n/r exemplos
Os exemplos nos (r-1) folds so usados para
treinamento e a hiptese induzida testada no
fold remanescente
Este processo repetido r vezes, cada vez
considerando um fold diferente para teste
O erro na cross-validation a mdia dos erros
calculados em cada um dos r folds
13

Cross-Validation
Nmero Total de Exemplos

Fold 1

Fold 2

Fold 3

...

Fold r

Exemplos de
Treinamento

Exemplos de Teste

14

Cross-Validation
Este procedimento de rotao reduz tanto o bias inerente
ao mtodo de holdout quanto o custo computacional do
mtodo leave-one-out
Entretanto, deve-se observar, por exemplo, que em 10fold cross-validation, cada par de conjuntos de
treinamento compartilha 80% de exemplos
fcil generalizar que a porcentagem de exemplos
compartilhados na r-fold cross-validation dada por (1 2/r) para r >= 2 folds (figura seguinte)
medida que o nmero de folds aumenta, esta
sobreposio pode evitar que os testes estatsticos
obtenham uma boa estimativa da quantidade de variao
que seria observada se cada conjunto de treinamento
fosse independente dos demais
15

Cross-Validation

16

Stratified Cross-Validation
O estimador stratified cross-validation similar
cross-validation, mas ao gerar os folds
mutuamente exclusivos, a distribuio de classe
(proporo de exemplos em cada uma das
classes) considerada durante a amostragem
Isto significa, por exemplo, que se o conjunto
original de exemplos possui duas classes com
distribuio de 20% e 80%, ento cada fold
tambm ter esta proporo de classes

17

Leave-one-out
O estimador leave-one-out um caso especial de
cross-validation
computacionalmente dispendioso e
freqentemente usado em amostras pequenas
Para uma amostra de tamanho n uma hiptese
induzida utilizando (n-1) exemplos; a hiptese
ento testada no nico exemplo remanescente
Este processo repetido n vezes, cada vez
induzindo uma hiptese deixando de considerar
um nico exemplo
O erro a soma dos erros em cada teste dividido
por n
18

Leave-one-out
Nmero Total de Exemplos
Exemplos de
Treinamento

...

nico Exemplo
de Teste

19

Bootstrap
No estimador bootstrap, a idia bsica
consiste em repetir o processo de
classificao um grande nmero de vezes
Estima-se ento valores, tais como o erro
ou bias, a partir dos experimentos
replicados, cada experimento sendo
conduzido com base em um novo conjunto
de treinamento obtido por amostragem
com reposio do conjunto original de
exemplos
20

Bootstrap e0
H muitos estimadores bootstrap, sendo o mais
comum denominado bootstrap e0
Um conjunto de treinamento bootstrap consiste
de n exemplos (mesmo tamanho do conjunto
original de exemplos) amostrados com
reposio a partir do conjunto original de
exemplos
Isto significa que alguns exemplos Ei podem no
aparecer no conjunto de treinamento bootstrap e
alguns Ei podem aparecer mais de uma vez
Os exemplos remanescentes (aqueles que no
aparecem no conjunto de treinamento bootstrap)
so usados como conjunto de teste
21

Bootstrap e0
Conjunto Completo
de Exemplos

E3

E4

E5

E3

E1

E3

E3

E5

E2

E5

E5

E3

E1

E2

E4

E5

E1

E5

E2

E1

E3

E4

E4

E1

E4

E3

E4

E4

E4

...

E2

...

E1

Conjuntos de Treinamento

E3

E5

Conjuntos de Teste
22

Bootstrap e0
Para uma dada amostra bootstrap, um exemplo de
treinamento tem probabilidade 1-(1-1/n)^n de ser
selecionado pelo menos uma vez em cada uma das n
vezes nas quais os exemplos so aleatoriamente
selecionados a partir do conjunto original de exemplos
Para n grande, isto aproximadamente 1-1/e = 0.632
Portanto, para esta tcnica, a frao mdia de exemplos
no repetidos 63.2% no conjunto de treinamento e
36.8% no conjunto de teste
Geralmente, o processo de bootstrap repetido um
nmero de vezes, sendo o erro estimado como a mdia
dos erros sobre o nmero de iteraes

23

Ajuste de Parmetros
Em algumas situaes torna-se necessrio
realizar um ajuste de parmetros de um indutor
fator de confiana (poda), nmero mnimo de exemplos
em cada folha, etc (DT)
nmero de condies por regra, suporte, etc (Induo
de Regras)
nmero de neurnios, tipo de funo de ativao,
nmero de camadas, etc (RNA)

Nesses casos, necessrio reservar uma parte


dos exemplos para ajustar os parmetros e outra
parte para teste
24

Ajuste de Parmetros
Variao Holdout 1
100% Exemplos

80% Treinamento

90% Ajuste

20% Teste

10% Validao

Ajuste de parmetros
utilizando holdout
25

Ajuste de Parmetros
Variao Holdout 2
100% Exemplos

80% Treinamento

20% Teste

1
2
r-fold Cross-validation
3

Ajuste de Parmetros
usando cross-validation
26

Parmetros Tpicos de Estimadores

Alguns parmetros tpicos de estimadores, onde

n representa o nmero de exemplos;


r o nmero de folds (parties);
p um nmero tal que 0 < p < 1;
t um nmero tal que 0 < t < n e
L o nmero de hipteses induzidas
27

Desempenho de Algoritmos
Veremos uma metodologia para a
avaliao de algoritmos que comumente
utilizada em AM
Veremos dois testes estatsticos para
estimar os limites para o desempenho de um
algoritmo
estimar se desempenho entre quaisquer dois
algoritmos significativa ou no

Existem muitos outros testes estatsticos


alm dos descritos aqui
28

Estimando o Desempenho de um
Algoritmo
Suponha que um classificador possua erro
verdadeiro (avaliado no conjunto de teste) de
25%
Lembrando que o aprendizado efetuado em
uma amostra (pequena) de uma populao
(grande), espera-se que o erro em toda
populao seja prximo de 25%
A proximidade ser maior dependendo do
tamanho do conjunto de teste
Naturalmente tem-se uma maior confiana no
valor de 25% se ele foi obtido a partir de um
conjunto de teste com 10000 do que com 10
exemplos
29

Estimando o Desempenho de um
Algoritmo
Em Estatstica, uma sucesso de N eventos
independentes que tm sucesso (ocorrncia) ou
falham (no ocorrncia) chamado de processo
de Bernoulli
Pr(sucesso) = p
Pr(falha) = 1-p

Assumindo sucesso como o evento de estudo,


em um processo de Bernoulli
mdia = p
varincia = p * (1-p) / N

Para N grande, essa distribuio aproxima-se da


distribuio normal
30

Estimando o Desempenho de um
Algoritmo
Suponha que de N tentativas, S so
sucessos
Assim, a taxa de sucesso observada f=S/
N
A questo determinar taxa de sucesso p
na populao a partir de f
A soluo usualmente expressa como um
intervalo de confiana, ou seja, o valor de p
encontra-se dentro de um intervalo com um
grau de confiana c
31

Estimando o Desempenho de um
Algoritmo
Na distribuio normal, a probabilidade que
varivel aleatria X com mdia 0 esteja dentro de
um intervalo de confiana de tamanho 2*z
Pr(-z <= X <= z) = c

Os valores de c e os correspondentes valores de


z so obtidos atravs de tabelas existentes na
maioria dos livros de Estatstica
Os livros fornecem normalmente valores Pr(X <=
-z) ou Pr(X >= z)
Lembrando que, por simetria da distribuio
normal, Pr(X <= -z) = Pr(X >= z)
Por exemplo, Pr(-1.65 <= X <= 1.65) = 90%
32

Distribuio Normal

-z

z
3.00
2.00
1.65

Pr(X <= z)
99.87%
97.73%
95.05%

Pr(X >= z)
0.13%
2.27%
4.95%

Pr(-z <= X <= z)


99.74%
95.46%
90.10%

1.29
1.00

90.15%
84.13%

9.85%
15.87%

80.30%
68.26%
33

Estimando o Desempenho de um
Algoritmo
Basta reduzir a varivel aleatria f=S/N para mdia 0 e
desvio padro unitrio, subtraindo a mdia p e dividindo
pelo desvio padro

O passo final consiste em escrever a desigualdade como


igualdade, resolvendo-a para encontrar o valor de p

34

Estimando o Desempenho de um
Algoritmo
Assuma c=95% ou seja, z=2
Exemplo 1:
Se S=250 sucessos dentre N=1000
tentativas, a taxa de sucesso
observada f=25%
Com c=95% de confiana o valor
de p fica no intervalo entre 23.29%
e 26.79%

Exemplo 2
Se S=25 sucessos observados
dentre N=100 tentativas, f tambm
igual a 25%
Com c=95% de confiana o valor
de p fica no intervalo entre 19.89%
e 30.92%
Observe que embora f=25% e
c=95% nas duas situaes, o

intervalo do segundo exemplo


maior pois o experimento menor
Note que podemos considerar f
como sendo a taxa de erro

35

Estimando o Desempenho de um
Algoritmo
O valor superior de p (calculado usando a parte
+ da equao para taxa de erro) comumente
conhecido como erro pessimista (perr)(utilizado no C4.5)
Assim, ele tambm pode ser empregado para a
poda de rvores ou regras
No caso de rvores, para cada sub-rvore a ser
podada, calcula-se o valor de perr (sub-rvore sem
poda) e o valor de perr (sub-rvore podada)
se perr < perr ento realiza-se a poda

O mesmo vlido para regras


36

Comparando Dois Algoritmos


Antes de comparar dois algoritmos, algumas
definies adicionais so necessrias
Para tanto, assume-se o emprego de crossvalidation, uma vez que um mtodo comumente
utilizado pela comunidade de AM
Entretanto, qualquer outro mtodo de
amostragem (exceto resubstituio) pode ser
utilizado no lugar de cross-validation para calcular
a mdia e desvio padro de um algoritmo

37

Calculando Mdia e Desvio Padro


Utilizando Amostragem
Dado um algoritmo A e um conjunto de exemplos T,
assume-se que T seja dividido em r parties
Para cada partio i, induzida a hiptese hi e o erro
denotado por err(hi), i = 1,2,...,r, calculado
A seguir, a mdia (mean), varincia (var) e desvio
padro (sd) para todas as parties so calculados
utilizando-se:

38

Calculando Mdia e Desvio Padro


Utilizando Amostragem
possvel denotar mean(A) como mean(A,T),
quando a inteno tornar evidente o fato que o
erro mdio do algoritmo A foi calculado sobre o
conjunto de exemplos T
Alternativamente, mean(A) pode ser denotado
por mean(T), quando deseja-se evidenciar o fato
que o erro mdio foi calculado utilizando o
conjunto particular de exemplos T, assumindo o
algoritmo A fixo para um dado experimento
Analogamente, essa notao se estende para var
(A), sd(A) ou outros valores que possam ser
derivados a partir destes
39

Exemplo
Para exemplificar o clculo da mdia e desvio padro de
um algoritmo A utilizando um conjunto de exemplos T,
considere 10-fold cross-validation, isto , r=10, para um
algoritmo A com os seguintes erros em cada fold
(5.5, 11.4, 12.7, 5.2, 5.9, 11.3, 10.9, 11.2, 4.9, 11.0)

Ento:

Em geral, o erro representado por sua mdia seguida


pelo smbolo e seu desvio padro
neste exemplo, o erro 9.00 1.00
40

Comparando Algoritmos
Ao tentar comparar dois algoritmos observando
apenas valores, por exemplo, a taxa de erro em
problemas de classificao ou o erro em
problemas de regresso, no fcil perceber se
um algoritmo melhor do que o outro
Em vrias situaes, para comparar o erro (mdia
e desvio padro) obtido, r-fold stratified crossvalidation usualmente utilizada (para manter a
distribuio de classes)
De fato, a maioria dos trabalhos na rea reportam
erros utilizando 10-fold cross-validation ou
stratified cross-validation
41

Comparando Algoritmos
Ao comparar dois indutores no mesmo domnio T,
o desvio padro pode ser visto como uma
imagem da robustez do algoritmo: se os erros,
calculados sobre diferentes conjuntos de teste,
provenientes de hipteses induzidas utilizando
diferentes conjuntos de treinamento, so muito
diferentes de um experimento para outro, ento o
indutor no robusto a mudanas no conjunto de
treinamento, proveniente de uma mesma
distribuio
42

Comparando Algoritmos
Suponha por exemplo, que deseja-se comparar
dois algoritmos com taxas de erro iguais a
9.00 1.00 e
7.50 0.80

Para decidir qual deles melhor que o outro (com


grau de confiana de 95%) basta assumir o caso
geral para determinar se a diferena entre dois
algoritmos (AS e AP) significante ou no,
assumindo uma distribuio normal
Em geral, a comparao feita de forma que AP
o algoritmo proposto e AS o algoritmo padro
43

Comparando Algoritmos
Para isso, a mdia e desvio padro combinados
so calculados de acordo com as seguintes
equaes:

A diferena absoluta (ad) dada em desvios


padres
44

Comparando Algoritmos
Se ad(AS - AP) > 0 ento AP supera AS
se ad(AS - AP) >= 2 desvios padres ento AP
supera AS com grau de confiana de 95%

Se ad(AS - AP) <= 0 ento AS supera AP


se ad(AS - AP) <= -2 ento AS supera AP com
grau de confiana de 95%

45

Exemplo
Retornando ao exemplo descrito anteriormente, assuma
AS=9.00 1.00 (algoritmo padro)
AP=7.50 0.80 (algoritmo proposto)

Apenas observando os valores, h uma tendncia em se achar que


AP melhor que AS
Entretanto

Conseqentemente, como ad(AS - AP) > 0, AP supera AS, porm como


ad(AS - AP) = 1.65 < 2 AP no supera AS significativamente (com
grau de confiana de 95%)
Normalmente, quando se avalia muitos conjuntos de exemplos e/ou
algoritmos, til a utilizao de grficos, indicando o valor absoluto
em desvios padres

46

Exemplo

47

Exemplo

48

100% Exemplos

80% Treinamento

Mtodo de
Seleo de
Atributos

20% Teste

1
2
3

10
10-fold Cross-validation
49