SlideShare uma empresa Scribd logo
Inteligência Artificial – ACH2016
Aula23 – Classificadores: Avaliação de
Desempenho
Norton Trevisan Roman
(norton@usp.br)
11 de junho de 2019
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 1 / 43
Avaliação de Desempenho
Medindo desempenho
Já temos nosso modelo treinado, então está tudo
terminado, certo?
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
Avaliação de Desempenho
Medindo desempenho
Já temos nosso modelo treinado, então está tudo
terminado, certo?
Errado! Como podemos saber se ele é bom realmente?
Temos que testá-lo
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
Avaliação de Desempenho
Medindo desempenho
Já temos nosso modelo treinado, então está tudo
terminado, certo?
Errado! Como podemos saber se ele é bom realmente?
Temos que testá-lo
Para isso, contudo, precisamos de uma medida de
desempenho
Algo que nos diga quão bom nosso modelo é para a tarefa
Depende da tarefa em questão
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
Avaliação de Desempenho
Taxa de Erro
Para classificação, por exemplo, podemos usar a
taxa de erro
O classificador prediz a classe de cada instância
Se estiver correto, conta para o número de sucessos, senão,
conta para os erros
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
Avaliação de Desempenho
Taxa de Erro
Para classificação, por exemplo, podemos usar a
taxa de erro
O classificador prediz a classe de cada instância
Se estiver correto, conta para o número de sucessos, senão,
conta para os erros
A taxa é então a proporção de erros feita em todo o
conjunto de instâncias X
TE =
nE (X)
n(X)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
Avaliação de Desempenho
Taxa de Erro
Número de instâncias classi-
ficadas erroneamente em X
Para classificação, por exemplo, podemos usar a
taxa de erro
O classificador prediz a classe de cada instância
Se estiver correto, conta para o número de sucessos, senão,
conta para os erros
A taxa é então a proporção de erros feita em todo o
conjunto de instâncias X
TE =
nE (X)
n(X)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
Avaliação de Desempenho
Taxa de Erro
Número total de instâncias em X
Para classificação, por exemplo, podemos usar a
taxa de erro
O classificador prediz a classe de cada instância
Se estiver correto, conta para o número de sucessos, senão,
conta para os erros
A taxa é então a proporção de erros feita em todo o
conjunto de instâncias X
TE =
nE (X)
n(X)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
Avaliação de Desempenho
Conjuntos de treino
Temos agora uma medida de erro e o conjunto de
treino. Então podemos ver como o modelo treinado
se sai nesse conjunto
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
Avaliação de Desempenho
Conjuntos de treino
Temos agora uma medida de erro e o conjunto de
treino. Então podemos ver como o modelo treinado
se sai nesse conjunto
Fonte: https://twitter.com/soquenaoreal
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
Avaliação de Desempenho
Conjuntos de treino
Temos agora uma medida de erro e o conjunto de
treino. Então podemos ver como o modelo treinado
se sai nesse conjunto
Fonte: https://twitter.com/soquenaoreal
Qualquer estimativa de desempenho
com base nesse conjunto será otimista
Em tese, aprendemos como esse conjunto
funciona
Não temos ideia de como o modelo irá
se comportar com dados nunca vistos
Afinal, já sabemos os resultados no conjunto
de treino. Nos interessam os resultados em
dados novos
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
Avaliação de Desempenho
Conjunto de treino: Erro de resubstituição
Então não devemos medir a taxa de erro no
conjunto de treino?
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
Avaliação de Desempenho
Conjunto de treino: Erro de resubstituição
Então não devemos medir a taxa de erro no
conjunto de treino? Devemos sim
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
Avaliação de Desempenho
Conjunto de treino: Erro de resubstituição
Então não devemos medir a taxa de erro no
conjunto de treino? Devemos sim
A taxa de erro no conjunto de treino é chamada de
erro de resubstituição
Porque é calculada pela resubstituição das instâncias de
treino no classificador
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
Avaliação de Desempenho
Conjunto de treino: Erro de resubstituição
Então não devemos medir a taxa de erro no
conjunto de treino? Devemos sim
A taxa de erro no conjunto de treino é chamada de
erro de resubstituição
Porque é calculada pela resubstituição das instâncias de
treino no classificador
Útil para termos uma ideia da adequação do
classificador
Se ele não se dá bem onde treinou, é um forte indicativo de
que esse é o modelo errado
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
Avaliação de Desempenho
Conjunto de Teste
Devemos então testar nosso modelo em um
conjunto de teste (ou holdout)
Um conjunto independente, com
dados não vistos pelo modelo
Treinamos no conjunto de treino
e testamos no de teste
O erro nesse conjunto será nossa
estimativa do erro em exemplos
não vistos
Fonte: [10]
Assumindo que ambos os conjuntos são amostras
representativas do problema
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 6 / 43
Avaliação de Desempenho
Conjunto de Teste
E como construı́mos este conjunto?
Ou tiramos nova amostra
aleatória da população
Ou separamos aleatoriamente, de
forma independente, os dados
que já temos em mãos
Em geral, de 1
5 a 1
3 dos dados é
reservado para teste
Fonte: [10]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 7 / 43
Avaliação de Desempenho
Conjunto de Teste
E como construı́mos este conjunto?
Ou tiramos nova amostra
aleatória da população
Ou separamos aleatoriamente, de
forma independente, os dados
que já temos em mãos
Em geral, de 1
5 a 1
3 dos dados é
reservado para teste
Fonte: [10]
E medimos a taxa de erro nesse conjunto
Ou, alternativamente, a taxa de sucesso TS = 1 − TE
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 7 / 43
Avaliação de Desempenho
Curva de aprendizagem
A taxa de sucesso, contudo, dá um resultado final
Não nos diz como o algoritmo evoluiu ao longo do
treinamento
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 8 / 43
Avaliação de Desempenho
Curva de aprendizagem
A taxa de sucesso, contudo, dá um resultado final
Não nos diz como o algoritmo evoluiu ao longo do
treinamento
Para esse tipo de informação, temos a curva de
aprendizagem
Ainda treinamos no conjunto de
treino e testamos no de teste
Só que dessa vez aumentamos
gradativamente o conjunto de
treino
Fonte: AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 8 / 43
Avaliação de Desempenho
Curva de aprendizagem
Ex: suponha que temos 100 exemplos no total
Dividimos aleatoriamente entre treino e teste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 9 / 43
Avaliação de Desempenho
Curva de aprendizagem
Ex: suponha que temos 100 exemplos no total
Dividimos aleatoriamente entre treino e teste
Começamos com 1 exemplo no
conjunto de treino e 99 no de
teste
Aumentamos gradativamente o
conjunto de treino (reduzindo o
de teste), até chegar a 99
A cada passo, medimos seu
sucesso no conjunto de teste
Fonte: AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 9 / 43
Avaliação de Desempenho
Curva de aprendizagem
A curva mostra então a variação temporal do
desempenho em termos de experiência
O quanto aprendemos com a
experiência
Fonte: AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 10 / 43
Avaliação de Desempenho
Curva de aprendizagem
A curva mostra então a variação temporal do
desempenho em termos de experiência
O quanto aprendemos com a
experiência
Nesse exemplo, mostra a
média de 20 repetições
Para cada tamanho, em que
dividimos aleatoriamente entre
treino e teste Fonte: AIMA. R&N.
E podemos ver o algoritmo se estabilizando, na medida em
que cresce o conjunto de treino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 10 / 43
Avaliação de Desempenho
Curva de aprendizagem
E precisa o passo ser sempre
de 1 em 1 exemplo?
Fonte: Adaptado de AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
Avaliação de Desempenho
Curva de aprendizagem
E precisa o passo ser sempre
de 1 em 1 exemplo?
Não. Podemos fazer de n em n
Ex: Uma geração (algoritmos
genéticos), uma época (RNA)
etc
Fonte: Adaptado de AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
Avaliação de Desempenho
Curva de aprendizagem
E precisa o passo ser sempre
de 1 em 1 exemplo?
Não. Podemos fazer de n em n
Ex: Uma geração (algoritmos
genéticos), uma época (RNA)
etc
Alternativamente, podemos
mostrar a taxa de erro
TE = 1 − TS, em vez de
sucesso
Fonte: Adaptado de AIMA. R&N.
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
Avaliação de Desempenho
Curva de aprendizagem
Mas a grande utilidade da curva aparece quando
mostramos a taxa de erro (ou de sucesso) tanto no
conjunto de treino quanto no de teste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 12 / 43
Avaliação de Desempenho
Curva de aprendizagem
Mas a grande utilidade da curva aparece quando
mostramos a taxa de erro (ou de sucesso) tanto no
conjunto de treino quanto no de teste
Podemos então ver o quão bem
o modelo está aprendendo (no
conjunto de treino)
E o quão bem ele está
generalizando (no conjunto de
teste)
A habilidade de ter bom
desempenho em dados inéditos é
chamada de generalização
Fonte: [9]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 12 / 43
Avaliação de Desempenho
Curva de aprendizagem
Subajuste (underfitting)
O modelo não conseguiu ter
um erro suficientemente
pequeno no treino
Não conseguiu aprender com o
treino
Precisamos apenas da curva no
conjunto de treino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 13 / 43
Avaliação de Desempenho
Curva de aprendizagem
Subajuste (underfitting)
O modelo não conseguiu ter
um erro suficientemente
pequeno no treino
Não conseguiu aprender com o
treino
Precisamos apenas da curva no
conjunto de treino
Caracterizada por uma linha
plana ou com ruı́do
Fonte: Adaptada de [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 13 / 43
Avaliação de Desempenho
Curva de aprendizagem
Subajuste (underfitting)
Ou então por um erro
decrescente que não
estabiliza
Indicando que o modelo
ainda pode aprender mais,
mas foi interrompido
prematuramente Fonte: Adaptada de [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 14 / 43
Avaliação de Desempenho
Curva de aprendizagem
Superajuste (overfitting)
O modelo aprendeu os dados
bem demais
Inclusive seu ruı́do e flutuações
aleatórias
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
Avaliação de Desempenho
Curva de aprendizagem
Superajuste (overfitting)
O modelo aprendeu os dados
bem demais
Inclusive seu ruı́do e flutuações
aleatórias
Assim, sua capacidade de
generalização reduz
O espaço entre erro de treino e
teste é grande demais Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
Avaliação de Desempenho
Curva de aprendizagem
Superajuste (overfitting)
O modelo aprendeu os dados
bem demais
Inclusive seu ruı́do e flutuações
aleatórias
Assim, sua capacidade de
generalização reduz
O espaço entre erro de treino e
teste é grande demais
O ponto de inflexão na
validação pode indi-
car o ponto em que o
treinamento deveria parar
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
Avaliação de Desempenho
Curva de aprendizagem
Superajuste (overfitting)
O modelo aprendeu os dados
bem demais
Inclusive seu ruı́do e flutuações
aleatórias
Assim, sua capacidade de
generalização reduz
O espaço entre erro de treino e
teste é grande demais
Pois a partir desse
ponto parece ha-
ver um superajuste
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
Avaliação de Desempenho
Curva de aprendizagem
Bom ajuste (good fit)
Nosso objetivo – entre um
subajuste e um superajuste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 16 / 43
Avaliação de Desempenho
Curva de aprendizagem
Bom ajuste (good fit)
Nosso objetivo – entre um
subajuste e um superajuste
Identificado por curvas de
treino e teste que crescem
(ou decrescem, conforme a
métrica) até um ponto de
estabilidade Fonte: https://stats.stackexchange.com/questions/
220827/how-to-know-if-a-learning-curve-from-svm-
model-suffers-from-bias-or-variance
Com uma distância pequena entre seus valores finais
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 16 / 43
Avaliação de Desempenho
Curva de aprendizagem
Bom ajuste (good fit)
O erro no treino, contudo,
será quase sempre menor que
no teste
Devemos esperar alguma
distância entre as curvas → sua
distância de generalização
Fonte: https://stats.stackexchange.com/questions/
220827/how-to-know-if-a-learning-curve-from-svm-
model-suffers-from-bias-or-variance
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 17 / 43
Avaliação de Desempenho
Curva de aprendizagem
Bom ajuste (good fit)
O erro no treino, contudo,
será quase sempre menor que
no teste
Devemos esperar alguma
distância entre as curvas → sua
distância de generalização
Cuidado!
Continuar a treinar um bom
ajuste provavelmente levará a
um superajuste
Fonte: https://stats.stackexchange.com/questions/
220827/how-to-know-if-a-learning-curve-from-svm-
model-suffers-from-bias-or-variance
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 17 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de treino não
representativo
O conjunto de treino possui
distribuição diferente da do
de teste
Talvez por ser pequeno demais,
em relação ao de teste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 18 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de treino não
representativo
O conjunto de treino possui
distribuição diferente da do
de teste
Talvez por ser pequeno demais,
em relação ao de teste
Ambas as curvas mostram
melhoria
Contudo, permanecem bastante
separadas
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 18 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de teste não
representativo
O conjunto de teste não
fornece informação suficiente
para avaliar o modelo
Talvez por ser pequeno demais,
em relação ao de treino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 19 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de teste não
representativo
O conjunto de teste não
fornece informação suficiente
para avaliar o modelo
Talvez por ser pequeno demais,
em relação ao de treino
A curva de treino parece se
ajustar
Contudo, a de teste apresenta
ruı́do em torno da de treino
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 19 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de teste não
representativo (cont.)
Pode também ocorrer que a
curva de teste seja menor que
a de treino
Indicando que o conjunto de
teste é mais fácil para o modelo
que o de treino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 20 / 43
Avaliação de Desempenho
Curva de aprendizagem
Conjunto de teste não
representativo (cont.)
Pode também ocorrer que a
curva de teste seja menor que
a de treino
Indicando que o conjunto de
teste é mais fácil para o modelo
que o de treino
Fonte: [6]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 20 / 43
Avaliação de Desempenho
Conjunto de Validação
Testamos o modelo, e agora?
Poderia ser melhor? Não sabemos
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
Avaliação de Desempenho
Conjunto de Validação
Testamos o modelo, e agora?
Poderia ser melhor? Não sabemos
Em geral, modelos possuem hiperparâmetros
escolhidos de antemão
Taxas de aprendizado, cruzamentos, valores de corte etc
Como saber se foram a escolha correta?
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
Avaliação de Desempenho
Conjunto de Validação
Testamos o modelo, e agora?
Poderia ser melhor? Não sabemos
Em geral, modelos possuem hiperparâmetros
escolhidos de antemão
Taxas de aprendizado, cruzamentos, valores de corte etc
Como saber se foram a escolha correta?
Fazemos modificações sistemáticas nos
hiperparâmetros e testamos novamente o modelo
Escolhendo então o melhor conjunto de hiperparâmetros
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
Avaliação de Desempenho
Conjunto de Validação
Quando usamos um conjunto de testes com esse
fim, o chamamos de Conjunto de Validação
Pois estamos usando para validar diferentes modelos
Fazemos escolhas baseadas no resultado desse conjunto
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 22 / 43
Avaliação de Desempenho
Conjunto de Validação
Quando usamos um conjunto de testes com esse
fim, o chamamos de Conjunto de Validação
Pois estamos usando para validar diferentes modelos
Fazemos escolhas baseadas no resultado desse conjunto
E qual o problema com ele?
O problema é que o erro relatado nele não é mais
independente do modelo testado
E é de suma importância que o conjunto de teste não seja
usado de modo algum na definição do modelo
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 22 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
O resultado apresentará um viés positivo
O erro observado será provavelmente menor do que o erro
real em exemplos não vistos
Otimista, nesse caso, significa pensar que o erro é menor do
que realmente é
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 23 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
O resultado apresentará um viés positivo
O erro observado será provavelmente menor do que o erro
real em exemplos não vistos
Otimista, nesse caso, significa pensar que o erro é menor do
que realmente é
Ex: Digamos que temos 2 modelos m1 e m2
Ambos com o mesmo erro real (na população)
Epop(m1) = Epop(m2) = 0.5
Naturalmente, desconhecemos tal erro
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 23 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
Para simplificar, suponha que testamos o modelo
em um único ponto
Medimos então seu erro nesse ponto
Os erros medidos em1 e em2 são então estimativas para
Epop(m1) e Epop(m2)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 24 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
Para simplificar, suponha que testamos o modelo
em um único ponto
Medimos então seu erro nesse ponto
Os erros medidos em1 e em2 são então estimativas para
Epop(m1) e Epop(m2)
Vamos assumir que ambos em1
e em2
:
São uniformes em [0, 1] (Seu valor esperado é E(emi
) = 0, 5)
São independentes um do outro
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 24 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
Suponha agora que escolhemos um dos modelos
m ∈ {m1, m2}, de acordo com o valor do erro
Pegamos aquele em que e = min(em1 , em2 )
Ou seja, usamos as estimativas já calculadas para fazer uma
escolha
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 25 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
Suponha agora que escolhemos um dos modelos
m ∈ {m1, m2}, de acordo com o valor do erro
Pegamos aquele em que e = min(em1 , em2 )
Ou seja, usamos as estimativas já calculadas para fazer uma
escolha
Qual a probabilidade P(e < 0.5) de e ser menor do
que seu valor esperado real E(emi
) = 0, 5?
Lembre que tanto m1 quanto m2 tinham erros reais
Epop(m1) = Epop(m2) = 0.5
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 25 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
P(e < 0.5) = P((em1 < 0.5) ∨ (em2 < 0.5))
= P(em1
< 0.5) + P(em2
< 0.5) − P((em1
< 0.5) ∧ (em2
< 0.5))
= P(em1
< 0.5) + P(em2
< 0.5) − P(em1
< 0.5) × P(em2
< 0.5)
= 0, 5 + 0, 5 − 0, 25 = 0, 75
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 26 / 43
Avaliação de Desempenho
Conjunto de Validação: Viés otimista
P(e < 0.5) = P((em1 < 0.5) ∨ (em2 < 0.5))
= P(em1
< 0.5) + P(em2
< 0.5) − P((em1
< 0.5) ∧ (em2
< 0.5))
= P(em1
< 0.5) + P(em2
< 0.5) − P(em1
< 0.5) × P(em2
< 0.5)
= 0, 5 + 0, 5 − 0, 25 = 0, 75
Ou seja, a probabilidade de escolhermos um modelo
com erro e < 0.5, quando seu erro real é 0.5, é de
75%
E estaremos achando que o erro é menor do que muito
provavelmente é
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 26 / 43
Avaliação de Desempenho
Treino - Validação - Teste
Que fazer então?
Dividir o conjunto de dados em conjunto de treino, validação
e teste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 27 / 43
Avaliação de Desempenho
Treino - Validação - Teste
Que fazer então?
Dividir o conjunto de dados em conjunto de treino, validação
e teste
Fazer isso de forma aleatória e independente
O conjunto de validação precisa ser diferente do de treino
para poder otimizar parâmetros ou escolher melhor o modelo
E o de teste precisa ser diferente dos demais para obtermos
uma estimativa mais confiável da taxa de erro real
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 27 / 43
Avaliação de Desempenho
Definindo um modelo
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Separa aleatoriamente o
conjunto de teste (nor-
malmente 1/3 dos dados)
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Dos dados restantes,
separa aleatoriamente o
conjunto de validação
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
O que sobrou é o
conjunto de treino
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Varia cada hiper-
parâmetro do modelo,
de modo a ajustá-lo
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Treinando cada um
no conjunto de treino
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
E medindo seu erro no
conjunto de validação
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Seleciona o modelo com
o menor erro de validação
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Retreina o modelo
com os dados de
treino + validação
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Com isso maximiza a
quantidade de dados
usados na geração do
modelo a ser testado
com dados inéditos
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Mede o erro no conjunto
de teste. Essa é a
estimativa do modelo
para dados não vistos
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
A versão final é então
retreinada com todos os
dados, esperando que isso
a deixe melhor (há sempre
o perigo de overfitting)
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Retorna a versão final,
com a estimativa do erro
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Note que essa estima-
tiva foi tomada antes
de usar o conjunto
de teste para treino
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Definindo um modelo
Ou seja, nenhum
viés foi introduzido
nessa estimativa
Define(X = {~
x1, . . . , ~
xn}): modelo + estimativa de erro
Xts ← subconjunto aleatório de X
Xv ← subconjunto aleatório de X − Xts
Xtr ← X − Xts − Xv
para cada variação mi do modelo faça
Treine mi em Xtr
eiv ← erro de mi em Xv
mj ← modelo com menor eiv do passo anterior
Treine novamente mj em Xtr ∪ Xv
emj
← erro de mj em Xts
Treine novamente mj em Xtr ∪ Xv ∪ Xts
retorna mj e emj
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
Avaliação de Desempenho
Dados limitados
Essa metodologia, no entanto, consome dados
Nenhum problema, se tivermos muitos
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
Avaliação de Desempenho
Dados limitados
Essa metodologia, no entanto, consome dados
Nenhum problema, se tivermos muitos
E se esse não for o caso? Temos então um dilema
Para definir um bom modelo, precisamos usar o máximo de
dados possı́vel para treino e validação
Para obter uma boa estimativa de erro, precisamos usar o
máximo possı́vel para teste
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
Avaliação de Desempenho
Dados limitados
Essa metodologia, no entanto, consome dados
Nenhum problema, se tivermos muitos
E se esse não for o caso? Temos então um dilema
Para definir um bom modelo, precisamos usar o máximo de
dados possı́vel para treino e validação
Para obter uma boa estimativa de erro, precisamos usar o
máximo possı́vel para teste
Lembrando que reduzir demais algum dos conjuntos pode
torná-lo não representativo da população
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
Desempenho – Dados limitados
Representatividade: Amostragem Estratificada
Em geral, não temos como dizer se uma amostra é
representativa ou não
Mas podemos verificar se cada classe no conjunto de dados
inteiro está representada, aproximadamente na mesma
proporção, nos subconjuntos de treino, validação e teste
Procedimento chamado estratificação
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 30 / 43
Desempenho – Dados limitados
Representatividade: Amostragem Estratificada
Em geral, não temos como dizer se uma amostra é
representativa ou não
Mas podemos verificar se cada classe no conjunto de dados
inteiro está representada, aproximadamente na mesma
proporção, nos subconjuntos de treino, validação e teste
Procedimento chamado estratificação
Ex: Suponha que o conjunto de dados esteja
distribuı́do em 4 classes
nA = 200, nB = 400, nC = 600, nD = 800
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 30 / 43
Desempenho – Dados limitados
Representatividade: Amostragem Estratificada
E que iremos separar ≈ 1
3 para teste. Então
escolhemos aleatoriamente:
66 dados de A (≈ 200
3
), 133 de B, 200 de C e 266 de D
Num total de 665 (≈ 2000
3
= 666, 66...)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 31 / 43
Desempenho – Dados limitados
Representatividade: Amostragem Estratificada
E que iremos separar ≈ 1
3 para teste. Então
escolhemos aleatoriamente:
66 dados de A (≈ 200
3
), 133 de B, 200 de C e 266 de D
Num total de 665 (≈ 2000
3
= 666, 66...)
Note que no conjunto original sobraram
134 em A (≈ 200 × 2
3
), 267 em B, 400 em C e 534 em D
E ambos os conjuntos possuem aproximadamente a mesma
distribuição de dados da amostra original
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 31 / 43
Desempenho – Dados limitados
Repeated Holdout
Uma estratégia mais geral para reduzir qualquer viés
introduzido pela amostra é repetir o processo todo
de treino, validação e teste várias vezes
Sempre com amostras aleatórias diferentes
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 32 / 43
Desempenho – Dados limitados
Repeated Holdout
Uma estratégia mais geral para reduzir qualquer viés
introduzido pela amostra é repetir o processo todo
de treino, validação e teste várias vezes
Sempre com amostras aleatórias diferentes
Procedimento conhecido como holdout repetido
A cada iteração, os dados são aleatoriamente separados
(possivelmente com estratificação) em conjuntos de treino,
validação e teste
O erro total será então a média dos erros medidos em cada
iteração
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 32 / 43
Desempenho – Dados limitados
K-fold Cross-Validation
Variante do repeated holdout
Divida os dados de treino +
validação em k subconjuntos de
aproximadamente o mesmo
tamanho
A cada iteração, separa-se um dos
diferentes k subconjuntos para
validação, treinando nos demais
O resultado final da validação será
a média dos k subgrupos
Fonte: [10]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 33 / 43
Desempenho – Dados limitados
K-fold Cross-Validation
E temos apenas treino + teste?
O procedimento é o mesmo, com ou sem validação
Em geral, usa-se k = 10,
mas outros valores podem
ser usados
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 34 / 43
Desempenho – Dados limitados
K-fold Cross-Validation
E temos apenas treino + teste?
O procedimento é o mesmo, com ou sem validação
Em geral, usa-se k = 10,
mas outros valores podem
ser usados
Os resultados podem
ser melhorados com
estratificação
Stratified K-fold
Cross-Validation Fonte: [11]
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 34 / 43
Desempenho – Dados limitados
Leave-one-out Cross-Validation
Variante do k-fold, onde k = n, o número de
elementos no conjunto de dados
A cada iteração separamos um único exemplo para teste,
treinando nos demais
A estimativa de erro final será a média dos n testes feitos
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 35 / 43
Desempenho – Dados limitados
Leave-one-out Cross-Validation
Variante do k-fold, onde k = n, o número de
elementos no conjunto de dados
A cada iteração separamos um único exemplo para teste,
treinando nos demais
A estimativa de erro final será a média dos n testes feitos
Problema: não pode ser estratificado
Imagine um conjunto completamente aleatório, com
elementos de 2 classes
Em que 50% dos exemplos são da classe A e os outros 50% da
classe B
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 35 / 43
Desempenho – Dados limitados
Leave-one-out Cross-Validation
O melhor que um classificador conseguirá fazer será
predizer a classe majoritária
Lembre que os dados são completamente aleatórios → não
há qualquer padrão
Isso nos leva a uma taxa de erro de 50%
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 36 / 43
Desempenho – Dados limitados
Leave-one-out Cross-Validation
O melhor que um classificador conseguirá fazer será
predizer a classe majoritária
Lembre que os dados são completamente aleatórios → não
há qualquer padrão
Isso nos leva a uma taxa de erro de 50%
Mas em cada conjunto de treino do leave-one-out, a
classe oposta à do exemplo de teste é majoritária
As predições estarão sempre incorretas, quando testadas
A taxa de erro será de 100%
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 36 / 43
Desempenho – Dados limitados
Bootstrapping
Método baseado na amostragem dos dados, com
reposição, para formação do conjunto de treino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 37 / 43
Desempenho – Dados limitados
Bootstrapping
Método baseado na amostragem dos dados, com
reposição, para formação do conjunto de treino
Considere um conjunto de dados X com n exemplos
Para o conjunto de treino Xtr , tomamos n amostras de X,
com reposição
Usamos as instâncias que não foram escolhidas em X para
teste, ou seja, Xts = X − Xtr
Por ser com reposição, é bastante provável que algumas instâncias
em X não sejam escolhidas para Xtr
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 37 / 43
Desempenho – Dados limitados
Bootstrapping
Bastante provável quanto?
A cada vez, a chance de uma instância particular ser
escolhida é 1/n
Terá então uma chance de 1 − 1
n
de não ser escolhida
Em n eventos, a chance de não ser escolhida será

1 −
1
n
n
≈ e−1
= 0, 368
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 38 / 43
Desempenho – Dados limitados
Bootstrapping
Bastante provável quanto?
A cada vez, a chance de uma instância particular ser
escolhida é 1/n
Terá então uma chance de 1 − 1
n
de não ser escolhida
Em n eventos, a chance de não ser escolhida será

1 −
1
n
n
≈ e−1
= 0, 368
Então espera-se que, em um conjunto grande, cerca
de 36,8% sobrem para teste
Com 63,2% escolhidos para treino (contendo repetições)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 38 / 43
Desempenho – Dados limitados
Bootstrapping
Treinar e testar nesses conjuntos, contudo, nos leva
a uma estimativa pessimista do erro
Temos apenas 63% dos exemplos para treino (10-fold teria
90%)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 39 / 43
Desempenho – Dados limitados
Bootstrapping
Treinar e testar nesses conjuntos, contudo, nos leva
a uma estimativa pessimista do erro
Temos apenas 63% dos exemplos para treino (10-fold teria
90%)
Para compensar, combinamos as taxas de erro no
conjunto de treino e teste
Combinamos a otimista com a pessimista
A taxa de erro fica então
TE = 0, 632 × TEteste + 0, 368 × TEtreino
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 39 / 43
Desempenho – Dados limitados
Bootstrapping
Repetimos todo o procedimento várias vezes
Reconstruindo os conjuntos de treino e teste
Executando e testando o método neles
Retornando a média dos TE s como estimativa final de erro
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 40 / 43
Desempenho – Dados limitados
Bootstrapping
Repetimos todo o procedimento várias vezes
Reconstruindo os conjuntos de treino e teste
Executando e testando o método neles
Retornando a média dos TE s como estimativa final de erro
Embora seja o melhor método para conjuntos muito
pequenos, tem problemas
Considere o mesmo conjunto de dados de antes (conjunto
aleatório com 2 classes)
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 40 / 43
Desempenho – Dados limitados
Bootstrapping
Considere agora que temos um método que aprende
perfeitamente o conjunto de treino
De alguma forma, a existência de repetições levou a um
padrão que foi aprendido
Assim, TEtreino
= 0
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
Desempenho – Dados limitados
Bootstrapping
Considere agora que temos um método que aprende
perfeitamente o conjunto de treino
De alguma forma, a existência de repetições levou a um
padrão que foi aprendido
Assim, TEtreino
= 0
Lembrando que TEteste
= 0.5
Pois o conjunto é totalmente aleatório – não há padrão
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
Desempenho – Dados limitados
Bootstrapping
Considere agora que temos um método que aprende
perfeitamente o conjunto de treino
De alguma forma, a existência de repetições levou a um
padrão que foi aprendido
Assim, TEtreino
= 0
Lembrando que TEteste
= 0.5
Pois o conjunto é totalmente aleatório – não há padrão
Então TE = 0, 632 × 0.5 + 0, 368 × 0 = 0, 316
31,6% é bastante otimista, considerando que a taxa real é
de 50%
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
Referências
1 Witten, I.H.; Frank, E. (2005): Data Mining: Practical Machine Learning
Tools and Techniques. Elsevier. 2a ed.
2 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 3a ed.
3 Goodfellow, I.; Bengio, Y.; Courville, A. (2016): Deep Learning. MIT
Press.
4 Alpaydın, E. (2010): Introduction to Machine Learning. MIT Press. 2 ed.
5 Murphy, K. P. (2012): Machine Learning: A Probabilistic Perspective.
MIT Press.
6 https://machinelearningmastery.com/learning-curves-for-
diagnosing-machine-learning-model-performance/
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 42 / 43
Referências
7 https://en.wikipedia.org/wiki/Learning_curve
8 https:
//en.wikipedia.org/wiki/Learning_curve_(machine_learning)
9 https://machinelearningmastery.com/
avoid-overfitting-by-early-stopping-with-xgboost-in-python/
10 http://scott.fortmann-roe.com/docs/MeasuringError.html
11 https://www.analyticsvidhya.com/blog/2018/05/
improve-model-performance-cross-validation-in-python-r/
12 https://www.thoughtco.com/stratified-sampling-3026731
Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 43 / 43

Mais conteúdo relacionado

Mais procurados

(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
Norton Trevisan Roman
 

Mais procurados (11)

(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (11)

(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
 

Último

Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
Marlene Cunhada
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AntonioVieira539017
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
fernandacosta37763
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
Suzy De Abreu Santana
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
LILIANPRESTESSCUDELE
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 

Último (20)

Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 

(ACH2044) Inteligência Artificial - Aula 23

  • 1. Inteligência Artificial – ACH2016 Aula23 – Classificadores: Avaliação de Desempenho Norton Trevisan Roman (norton@usp.br) 11 de junho de 2019 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 1 / 43
  • 2. Avaliação de Desempenho Medindo desempenho Já temos nosso modelo treinado, então está tudo terminado, certo? Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
  • 3. Avaliação de Desempenho Medindo desempenho Já temos nosso modelo treinado, então está tudo terminado, certo? Errado! Como podemos saber se ele é bom realmente? Temos que testá-lo Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
  • 4. Avaliação de Desempenho Medindo desempenho Já temos nosso modelo treinado, então está tudo terminado, certo? Errado! Como podemos saber se ele é bom realmente? Temos que testá-lo Para isso, contudo, precisamos de uma medida de desempenho Algo que nos diga quão bom nosso modelo é para a tarefa Depende da tarefa em questão Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 2 / 43
  • 5. Avaliação de Desempenho Taxa de Erro Para classificação, por exemplo, podemos usar a taxa de erro O classificador prediz a classe de cada instância Se estiver correto, conta para o número de sucessos, senão, conta para os erros Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
  • 6. Avaliação de Desempenho Taxa de Erro Para classificação, por exemplo, podemos usar a taxa de erro O classificador prediz a classe de cada instância Se estiver correto, conta para o número de sucessos, senão, conta para os erros A taxa é então a proporção de erros feita em todo o conjunto de instâncias X TE = nE (X) n(X) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
  • 7. Avaliação de Desempenho Taxa de Erro Número de instâncias classi- ficadas erroneamente em X Para classificação, por exemplo, podemos usar a taxa de erro O classificador prediz a classe de cada instância Se estiver correto, conta para o número de sucessos, senão, conta para os erros A taxa é então a proporção de erros feita em todo o conjunto de instâncias X TE = nE (X) n(X) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
  • 8. Avaliação de Desempenho Taxa de Erro Número total de instâncias em X Para classificação, por exemplo, podemos usar a taxa de erro O classificador prediz a classe de cada instância Se estiver correto, conta para o número de sucessos, senão, conta para os erros A taxa é então a proporção de erros feita em todo o conjunto de instâncias X TE = nE (X) n(X) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 3 / 43
  • 9. Avaliação de Desempenho Conjuntos de treino Temos agora uma medida de erro e o conjunto de treino. Então podemos ver como o modelo treinado se sai nesse conjunto Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
  • 10. Avaliação de Desempenho Conjuntos de treino Temos agora uma medida de erro e o conjunto de treino. Então podemos ver como o modelo treinado se sai nesse conjunto Fonte: https://twitter.com/soquenaoreal Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
  • 11. Avaliação de Desempenho Conjuntos de treino Temos agora uma medida de erro e o conjunto de treino. Então podemos ver como o modelo treinado se sai nesse conjunto Fonte: https://twitter.com/soquenaoreal Qualquer estimativa de desempenho com base nesse conjunto será otimista Em tese, aprendemos como esse conjunto funciona Não temos ideia de como o modelo irá se comportar com dados nunca vistos Afinal, já sabemos os resultados no conjunto de treino. Nos interessam os resultados em dados novos Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 4 / 43
  • 12. Avaliação de Desempenho Conjunto de treino: Erro de resubstituição Então não devemos medir a taxa de erro no conjunto de treino? Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
  • 13. Avaliação de Desempenho Conjunto de treino: Erro de resubstituição Então não devemos medir a taxa de erro no conjunto de treino? Devemos sim Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
  • 14. Avaliação de Desempenho Conjunto de treino: Erro de resubstituição Então não devemos medir a taxa de erro no conjunto de treino? Devemos sim A taxa de erro no conjunto de treino é chamada de erro de resubstituição Porque é calculada pela resubstituição das instâncias de treino no classificador Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
  • 15. Avaliação de Desempenho Conjunto de treino: Erro de resubstituição Então não devemos medir a taxa de erro no conjunto de treino? Devemos sim A taxa de erro no conjunto de treino é chamada de erro de resubstituição Porque é calculada pela resubstituição das instâncias de treino no classificador Útil para termos uma ideia da adequação do classificador Se ele não se dá bem onde treinou, é um forte indicativo de que esse é o modelo errado Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 5 / 43
  • 16. Avaliação de Desempenho Conjunto de Teste Devemos então testar nosso modelo em um conjunto de teste (ou holdout) Um conjunto independente, com dados não vistos pelo modelo Treinamos no conjunto de treino e testamos no de teste O erro nesse conjunto será nossa estimativa do erro em exemplos não vistos Fonte: [10] Assumindo que ambos os conjuntos são amostras representativas do problema Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 6 / 43
  • 17. Avaliação de Desempenho Conjunto de Teste E como construı́mos este conjunto? Ou tiramos nova amostra aleatória da população Ou separamos aleatoriamente, de forma independente, os dados que já temos em mãos Em geral, de 1 5 a 1 3 dos dados é reservado para teste Fonte: [10] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 7 / 43
  • 18. Avaliação de Desempenho Conjunto de Teste E como construı́mos este conjunto? Ou tiramos nova amostra aleatória da população Ou separamos aleatoriamente, de forma independente, os dados que já temos em mãos Em geral, de 1 5 a 1 3 dos dados é reservado para teste Fonte: [10] E medimos a taxa de erro nesse conjunto Ou, alternativamente, a taxa de sucesso TS = 1 − TE Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 7 / 43
  • 19. Avaliação de Desempenho Curva de aprendizagem A taxa de sucesso, contudo, dá um resultado final Não nos diz como o algoritmo evoluiu ao longo do treinamento Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 8 / 43
  • 20. Avaliação de Desempenho Curva de aprendizagem A taxa de sucesso, contudo, dá um resultado final Não nos diz como o algoritmo evoluiu ao longo do treinamento Para esse tipo de informação, temos a curva de aprendizagem Ainda treinamos no conjunto de treino e testamos no de teste Só que dessa vez aumentamos gradativamente o conjunto de treino Fonte: AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 8 / 43
  • 21. Avaliação de Desempenho Curva de aprendizagem Ex: suponha que temos 100 exemplos no total Dividimos aleatoriamente entre treino e teste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 9 / 43
  • 22. Avaliação de Desempenho Curva de aprendizagem Ex: suponha que temos 100 exemplos no total Dividimos aleatoriamente entre treino e teste Começamos com 1 exemplo no conjunto de treino e 99 no de teste Aumentamos gradativamente o conjunto de treino (reduzindo o de teste), até chegar a 99 A cada passo, medimos seu sucesso no conjunto de teste Fonte: AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 9 / 43
  • 23. Avaliação de Desempenho Curva de aprendizagem A curva mostra então a variação temporal do desempenho em termos de experiência O quanto aprendemos com a experiência Fonte: AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 10 / 43
  • 24. Avaliação de Desempenho Curva de aprendizagem A curva mostra então a variação temporal do desempenho em termos de experiência O quanto aprendemos com a experiência Nesse exemplo, mostra a média de 20 repetições Para cada tamanho, em que dividimos aleatoriamente entre treino e teste Fonte: AIMA. R&N. E podemos ver o algoritmo se estabilizando, na medida em que cresce o conjunto de treino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 10 / 43
  • 25. Avaliação de Desempenho Curva de aprendizagem E precisa o passo ser sempre de 1 em 1 exemplo? Fonte: Adaptado de AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
  • 26. Avaliação de Desempenho Curva de aprendizagem E precisa o passo ser sempre de 1 em 1 exemplo? Não. Podemos fazer de n em n Ex: Uma geração (algoritmos genéticos), uma época (RNA) etc Fonte: Adaptado de AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
  • 27. Avaliação de Desempenho Curva de aprendizagem E precisa o passo ser sempre de 1 em 1 exemplo? Não. Podemos fazer de n em n Ex: Uma geração (algoritmos genéticos), uma época (RNA) etc Alternativamente, podemos mostrar a taxa de erro TE = 1 − TS, em vez de sucesso Fonte: Adaptado de AIMA. R&N. Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 11 / 43
  • 28. Avaliação de Desempenho Curva de aprendizagem Mas a grande utilidade da curva aparece quando mostramos a taxa de erro (ou de sucesso) tanto no conjunto de treino quanto no de teste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 12 / 43
  • 29. Avaliação de Desempenho Curva de aprendizagem Mas a grande utilidade da curva aparece quando mostramos a taxa de erro (ou de sucesso) tanto no conjunto de treino quanto no de teste Podemos então ver o quão bem o modelo está aprendendo (no conjunto de treino) E o quão bem ele está generalizando (no conjunto de teste) A habilidade de ter bom desempenho em dados inéditos é chamada de generalização Fonte: [9] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 12 / 43
  • 30. Avaliação de Desempenho Curva de aprendizagem Subajuste (underfitting) O modelo não conseguiu ter um erro suficientemente pequeno no treino Não conseguiu aprender com o treino Precisamos apenas da curva no conjunto de treino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 13 / 43
  • 31. Avaliação de Desempenho Curva de aprendizagem Subajuste (underfitting) O modelo não conseguiu ter um erro suficientemente pequeno no treino Não conseguiu aprender com o treino Precisamos apenas da curva no conjunto de treino Caracterizada por uma linha plana ou com ruı́do Fonte: Adaptada de [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 13 / 43
  • 32. Avaliação de Desempenho Curva de aprendizagem Subajuste (underfitting) Ou então por um erro decrescente que não estabiliza Indicando que o modelo ainda pode aprender mais, mas foi interrompido prematuramente Fonte: Adaptada de [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 14 / 43
  • 33. Avaliação de Desempenho Curva de aprendizagem Superajuste (overfitting) O modelo aprendeu os dados bem demais Inclusive seu ruı́do e flutuações aleatórias Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
  • 34. Avaliação de Desempenho Curva de aprendizagem Superajuste (overfitting) O modelo aprendeu os dados bem demais Inclusive seu ruı́do e flutuações aleatórias Assim, sua capacidade de generalização reduz O espaço entre erro de treino e teste é grande demais Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
  • 35. Avaliação de Desempenho Curva de aprendizagem Superajuste (overfitting) O modelo aprendeu os dados bem demais Inclusive seu ruı́do e flutuações aleatórias Assim, sua capacidade de generalização reduz O espaço entre erro de treino e teste é grande demais O ponto de inflexão na validação pode indi- car o ponto em que o treinamento deveria parar Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
  • 36. Avaliação de Desempenho Curva de aprendizagem Superajuste (overfitting) O modelo aprendeu os dados bem demais Inclusive seu ruı́do e flutuações aleatórias Assim, sua capacidade de generalização reduz O espaço entre erro de treino e teste é grande demais Pois a partir desse ponto parece ha- ver um superajuste Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 15 / 43
  • 37. Avaliação de Desempenho Curva de aprendizagem Bom ajuste (good fit) Nosso objetivo – entre um subajuste e um superajuste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 16 / 43
  • 38. Avaliação de Desempenho Curva de aprendizagem Bom ajuste (good fit) Nosso objetivo – entre um subajuste e um superajuste Identificado por curvas de treino e teste que crescem (ou decrescem, conforme a métrica) até um ponto de estabilidade Fonte: https://stats.stackexchange.com/questions/ 220827/how-to-know-if-a-learning-curve-from-svm- model-suffers-from-bias-or-variance Com uma distância pequena entre seus valores finais Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 16 / 43
  • 39. Avaliação de Desempenho Curva de aprendizagem Bom ajuste (good fit) O erro no treino, contudo, será quase sempre menor que no teste Devemos esperar alguma distância entre as curvas → sua distância de generalização Fonte: https://stats.stackexchange.com/questions/ 220827/how-to-know-if-a-learning-curve-from-svm- model-suffers-from-bias-or-variance Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 17 / 43
  • 40. Avaliação de Desempenho Curva de aprendizagem Bom ajuste (good fit) O erro no treino, contudo, será quase sempre menor que no teste Devemos esperar alguma distância entre as curvas → sua distância de generalização Cuidado! Continuar a treinar um bom ajuste provavelmente levará a um superajuste Fonte: https://stats.stackexchange.com/questions/ 220827/how-to-know-if-a-learning-curve-from-svm- model-suffers-from-bias-or-variance Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 17 / 43
  • 41. Avaliação de Desempenho Curva de aprendizagem Conjunto de treino não representativo O conjunto de treino possui distribuição diferente da do de teste Talvez por ser pequeno demais, em relação ao de teste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 18 / 43
  • 42. Avaliação de Desempenho Curva de aprendizagem Conjunto de treino não representativo O conjunto de treino possui distribuição diferente da do de teste Talvez por ser pequeno demais, em relação ao de teste Ambas as curvas mostram melhoria Contudo, permanecem bastante separadas Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 18 / 43
  • 43. Avaliação de Desempenho Curva de aprendizagem Conjunto de teste não representativo O conjunto de teste não fornece informação suficiente para avaliar o modelo Talvez por ser pequeno demais, em relação ao de treino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 19 / 43
  • 44. Avaliação de Desempenho Curva de aprendizagem Conjunto de teste não representativo O conjunto de teste não fornece informação suficiente para avaliar o modelo Talvez por ser pequeno demais, em relação ao de treino A curva de treino parece se ajustar Contudo, a de teste apresenta ruı́do em torno da de treino Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 19 / 43
  • 45. Avaliação de Desempenho Curva de aprendizagem Conjunto de teste não representativo (cont.) Pode também ocorrer que a curva de teste seja menor que a de treino Indicando que o conjunto de teste é mais fácil para o modelo que o de treino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 20 / 43
  • 46. Avaliação de Desempenho Curva de aprendizagem Conjunto de teste não representativo (cont.) Pode também ocorrer que a curva de teste seja menor que a de treino Indicando que o conjunto de teste é mais fácil para o modelo que o de treino Fonte: [6] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 20 / 43
  • 47. Avaliação de Desempenho Conjunto de Validação Testamos o modelo, e agora? Poderia ser melhor? Não sabemos Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
  • 48. Avaliação de Desempenho Conjunto de Validação Testamos o modelo, e agora? Poderia ser melhor? Não sabemos Em geral, modelos possuem hiperparâmetros escolhidos de antemão Taxas de aprendizado, cruzamentos, valores de corte etc Como saber se foram a escolha correta? Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
  • 49. Avaliação de Desempenho Conjunto de Validação Testamos o modelo, e agora? Poderia ser melhor? Não sabemos Em geral, modelos possuem hiperparâmetros escolhidos de antemão Taxas de aprendizado, cruzamentos, valores de corte etc Como saber se foram a escolha correta? Fazemos modificações sistemáticas nos hiperparâmetros e testamos novamente o modelo Escolhendo então o melhor conjunto de hiperparâmetros Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 21 / 43
  • 50. Avaliação de Desempenho Conjunto de Validação Quando usamos um conjunto de testes com esse fim, o chamamos de Conjunto de Validação Pois estamos usando para validar diferentes modelos Fazemos escolhas baseadas no resultado desse conjunto Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 22 / 43
  • 51. Avaliação de Desempenho Conjunto de Validação Quando usamos um conjunto de testes com esse fim, o chamamos de Conjunto de Validação Pois estamos usando para validar diferentes modelos Fazemos escolhas baseadas no resultado desse conjunto E qual o problema com ele? O problema é que o erro relatado nele não é mais independente do modelo testado E é de suma importância que o conjunto de teste não seja usado de modo algum na definição do modelo Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 22 / 43
  • 52. Avaliação de Desempenho Conjunto de Validação: Viés otimista O resultado apresentará um viés positivo O erro observado será provavelmente menor do que o erro real em exemplos não vistos Otimista, nesse caso, significa pensar que o erro é menor do que realmente é Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 23 / 43
  • 53. Avaliação de Desempenho Conjunto de Validação: Viés otimista O resultado apresentará um viés positivo O erro observado será provavelmente menor do que o erro real em exemplos não vistos Otimista, nesse caso, significa pensar que o erro é menor do que realmente é Ex: Digamos que temos 2 modelos m1 e m2 Ambos com o mesmo erro real (na população) Epop(m1) = Epop(m2) = 0.5 Naturalmente, desconhecemos tal erro Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 23 / 43
  • 54. Avaliação de Desempenho Conjunto de Validação: Viés otimista Para simplificar, suponha que testamos o modelo em um único ponto Medimos então seu erro nesse ponto Os erros medidos em1 e em2 são então estimativas para Epop(m1) e Epop(m2) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 24 / 43
  • 55. Avaliação de Desempenho Conjunto de Validação: Viés otimista Para simplificar, suponha que testamos o modelo em um único ponto Medimos então seu erro nesse ponto Os erros medidos em1 e em2 são então estimativas para Epop(m1) e Epop(m2) Vamos assumir que ambos em1 e em2 : São uniformes em [0, 1] (Seu valor esperado é E(emi ) = 0, 5) São independentes um do outro Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 24 / 43
  • 56. Avaliação de Desempenho Conjunto de Validação: Viés otimista Suponha agora que escolhemos um dos modelos m ∈ {m1, m2}, de acordo com o valor do erro Pegamos aquele em que e = min(em1 , em2 ) Ou seja, usamos as estimativas já calculadas para fazer uma escolha Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 25 / 43
  • 57. Avaliação de Desempenho Conjunto de Validação: Viés otimista Suponha agora que escolhemos um dos modelos m ∈ {m1, m2}, de acordo com o valor do erro Pegamos aquele em que e = min(em1 , em2 ) Ou seja, usamos as estimativas já calculadas para fazer uma escolha Qual a probabilidade P(e < 0.5) de e ser menor do que seu valor esperado real E(emi ) = 0, 5? Lembre que tanto m1 quanto m2 tinham erros reais Epop(m1) = Epop(m2) = 0.5 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 25 / 43
  • 58. Avaliação de Desempenho Conjunto de Validação: Viés otimista P(e < 0.5) = P((em1 < 0.5) ∨ (em2 < 0.5)) = P(em1 < 0.5) + P(em2 < 0.5) − P((em1 < 0.5) ∧ (em2 < 0.5)) = P(em1 < 0.5) + P(em2 < 0.5) − P(em1 < 0.5) × P(em2 < 0.5) = 0, 5 + 0, 5 − 0, 25 = 0, 75 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 26 / 43
  • 59. Avaliação de Desempenho Conjunto de Validação: Viés otimista P(e < 0.5) = P((em1 < 0.5) ∨ (em2 < 0.5)) = P(em1 < 0.5) + P(em2 < 0.5) − P((em1 < 0.5) ∧ (em2 < 0.5)) = P(em1 < 0.5) + P(em2 < 0.5) − P(em1 < 0.5) × P(em2 < 0.5) = 0, 5 + 0, 5 − 0, 25 = 0, 75 Ou seja, a probabilidade de escolhermos um modelo com erro e < 0.5, quando seu erro real é 0.5, é de 75% E estaremos achando que o erro é menor do que muito provavelmente é Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 26 / 43
  • 60. Avaliação de Desempenho Treino - Validação - Teste Que fazer então? Dividir o conjunto de dados em conjunto de treino, validação e teste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 27 / 43
  • 61. Avaliação de Desempenho Treino - Validação - Teste Que fazer então? Dividir o conjunto de dados em conjunto de treino, validação e teste Fazer isso de forma aleatória e independente O conjunto de validação precisa ser diferente do de treino para poder otimizar parâmetros ou escolher melhor o modelo E o de teste precisa ser diferente dos demais para obtermos uma estimativa mais confiável da taxa de erro real Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 27 / 43
  • 62. Avaliação de Desempenho Definindo um modelo Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 63. Avaliação de Desempenho Definindo um modelo Separa aleatoriamente o conjunto de teste (nor- malmente 1/3 dos dados) Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 64. Avaliação de Desempenho Definindo um modelo Dos dados restantes, separa aleatoriamente o conjunto de validação Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 65. Avaliação de Desempenho Definindo um modelo O que sobrou é o conjunto de treino Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 66. Avaliação de Desempenho Definindo um modelo Varia cada hiper- parâmetro do modelo, de modo a ajustá-lo Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 67. Avaliação de Desempenho Definindo um modelo Treinando cada um no conjunto de treino Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 68. Avaliação de Desempenho Definindo um modelo E medindo seu erro no conjunto de validação Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 69. Avaliação de Desempenho Definindo um modelo Seleciona o modelo com o menor erro de validação Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 70. Avaliação de Desempenho Definindo um modelo Retreina o modelo com os dados de treino + validação Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 71. Avaliação de Desempenho Definindo um modelo Com isso maximiza a quantidade de dados usados na geração do modelo a ser testado com dados inéditos Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 72. Avaliação de Desempenho Definindo um modelo Mede o erro no conjunto de teste. Essa é a estimativa do modelo para dados não vistos Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 73. Avaliação de Desempenho Definindo um modelo A versão final é então retreinada com todos os dados, esperando que isso a deixe melhor (há sempre o perigo de overfitting) Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 74. Avaliação de Desempenho Definindo um modelo Retorna a versão final, com a estimativa do erro Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 75. Avaliação de Desempenho Definindo um modelo Note que essa estima- tiva foi tomada antes de usar o conjunto de teste para treino Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 76. Avaliação de Desempenho Definindo um modelo Ou seja, nenhum viés foi introduzido nessa estimativa Define(X = {~ x1, . . . , ~ xn}): modelo + estimativa de erro Xts ← subconjunto aleatório de X Xv ← subconjunto aleatório de X − Xts Xtr ← X − Xts − Xv para cada variação mi do modelo faça Treine mi em Xtr eiv ← erro de mi em Xv mj ← modelo com menor eiv do passo anterior Treine novamente mj em Xtr ∪ Xv emj ← erro de mj em Xts Treine novamente mj em Xtr ∪ Xv ∪ Xts retorna mj e emj Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 28 / 43
  • 77. Avaliação de Desempenho Dados limitados Essa metodologia, no entanto, consome dados Nenhum problema, se tivermos muitos Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
  • 78. Avaliação de Desempenho Dados limitados Essa metodologia, no entanto, consome dados Nenhum problema, se tivermos muitos E se esse não for o caso? Temos então um dilema Para definir um bom modelo, precisamos usar o máximo de dados possı́vel para treino e validação Para obter uma boa estimativa de erro, precisamos usar o máximo possı́vel para teste Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
  • 79. Avaliação de Desempenho Dados limitados Essa metodologia, no entanto, consome dados Nenhum problema, se tivermos muitos E se esse não for o caso? Temos então um dilema Para definir um bom modelo, precisamos usar o máximo de dados possı́vel para treino e validação Para obter uma boa estimativa de erro, precisamos usar o máximo possı́vel para teste Lembrando que reduzir demais algum dos conjuntos pode torná-lo não representativo da população Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 29 / 43
  • 80. Desempenho – Dados limitados Representatividade: Amostragem Estratificada Em geral, não temos como dizer se uma amostra é representativa ou não Mas podemos verificar se cada classe no conjunto de dados inteiro está representada, aproximadamente na mesma proporção, nos subconjuntos de treino, validação e teste Procedimento chamado estratificação Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 30 / 43
  • 81. Desempenho – Dados limitados Representatividade: Amostragem Estratificada Em geral, não temos como dizer se uma amostra é representativa ou não Mas podemos verificar se cada classe no conjunto de dados inteiro está representada, aproximadamente na mesma proporção, nos subconjuntos de treino, validação e teste Procedimento chamado estratificação Ex: Suponha que o conjunto de dados esteja distribuı́do em 4 classes nA = 200, nB = 400, nC = 600, nD = 800 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 30 / 43
  • 82. Desempenho – Dados limitados Representatividade: Amostragem Estratificada E que iremos separar ≈ 1 3 para teste. Então escolhemos aleatoriamente: 66 dados de A (≈ 200 3 ), 133 de B, 200 de C e 266 de D Num total de 665 (≈ 2000 3 = 666, 66...) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 31 / 43
  • 83. Desempenho – Dados limitados Representatividade: Amostragem Estratificada E que iremos separar ≈ 1 3 para teste. Então escolhemos aleatoriamente: 66 dados de A (≈ 200 3 ), 133 de B, 200 de C e 266 de D Num total de 665 (≈ 2000 3 = 666, 66...) Note que no conjunto original sobraram 134 em A (≈ 200 × 2 3 ), 267 em B, 400 em C e 534 em D E ambos os conjuntos possuem aproximadamente a mesma distribuição de dados da amostra original Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 31 / 43
  • 84. Desempenho – Dados limitados Repeated Holdout Uma estratégia mais geral para reduzir qualquer viés introduzido pela amostra é repetir o processo todo de treino, validação e teste várias vezes Sempre com amostras aleatórias diferentes Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 32 / 43
  • 85. Desempenho – Dados limitados Repeated Holdout Uma estratégia mais geral para reduzir qualquer viés introduzido pela amostra é repetir o processo todo de treino, validação e teste várias vezes Sempre com amostras aleatórias diferentes Procedimento conhecido como holdout repetido A cada iteração, os dados são aleatoriamente separados (possivelmente com estratificação) em conjuntos de treino, validação e teste O erro total será então a média dos erros medidos em cada iteração Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 32 / 43
  • 86. Desempenho – Dados limitados K-fold Cross-Validation Variante do repeated holdout Divida os dados de treino + validação em k subconjuntos de aproximadamente o mesmo tamanho A cada iteração, separa-se um dos diferentes k subconjuntos para validação, treinando nos demais O resultado final da validação será a média dos k subgrupos Fonte: [10] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 33 / 43
  • 87. Desempenho – Dados limitados K-fold Cross-Validation E temos apenas treino + teste? O procedimento é o mesmo, com ou sem validação Em geral, usa-se k = 10, mas outros valores podem ser usados Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 34 / 43
  • 88. Desempenho – Dados limitados K-fold Cross-Validation E temos apenas treino + teste? O procedimento é o mesmo, com ou sem validação Em geral, usa-se k = 10, mas outros valores podem ser usados Os resultados podem ser melhorados com estratificação Stratified K-fold Cross-Validation Fonte: [11] Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 34 / 43
  • 89. Desempenho – Dados limitados Leave-one-out Cross-Validation Variante do k-fold, onde k = n, o número de elementos no conjunto de dados A cada iteração separamos um único exemplo para teste, treinando nos demais A estimativa de erro final será a média dos n testes feitos Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 35 / 43
  • 90. Desempenho – Dados limitados Leave-one-out Cross-Validation Variante do k-fold, onde k = n, o número de elementos no conjunto de dados A cada iteração separamos um único exemplo para teste, treinando nos demais A estimativa de erro final será a média dos n testes feitos Problema: não pode ser estratificado Imagine um conjunto completamente aleatório, com elementos de 2 classes Em que 50% dos exemplos são da classe A e os outros 50% da classe B Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 35 / 43
  • 91. Desempenho – Dados limitados Leave-one-out Cross-Validation O melhor que um classificador conseguirá fazer será predizer a classe majoritária Lembre que os dados são completamente aleatórios → não há qualquer padrão Isso nos leva a uma taxa de erro de 50% Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 36 / 43
  • 92. Desempenho – Dados limitados Leave-one-out Cross-Validation O melhor que um classificador conseguirá fazer será predizer a classe majoritária Lembre que os dados são completamente aleatórios → não há qualquer padrão Isso nos leva a uma taxa de erro de 50% Mas em cada conjunto de treino do leave-one-out, a classe oposta à do exemplo de teste é majoritária As predições estarão sempre incorretas, quando testadas A taxa de erro será de 100% Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 36 / 43
  • 93. Desempenho – Dados limitados Bootstrapping Método baseado na amostragem dos dados, com reposição, para formação do conjunto de treino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 37 / 43
  • 94. Desempenho – Dados limitados Bootstrapping Método baseado na amostragem dos dados, com reposição, para formação do conjunto de treino Considere um conjunto de dados X com n exemplos Para o conjunto de treino Xtr , tomamos n amostras de X, com reposição Usamos as instâncias que não foram escolhidas em X para teste, ou seja, Xts = X − Xtr Por ser com reposição, é bastante provável que algumas instâncias em X não sejam escolhidas para Xtr Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 37 / 43
  • 95. Desempenho – Dados limitados Bootstrapping Bastante provável quanto? A cada vez, a chance de uma instância particular ser escolhida é 1/n Terá então uma chance de 1 − 1 n de não ser escolhida Em n eventos, a chance de não ser escolhida será 1 − 1 n n ≈ e−1 = 0, 368 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 38 / 43
  • 96. Desempenho – Dados limitados Bootstrapping Bastante provável quanto? A cada vez, a chance de uma instância particular ser escolhida é 1/n Terá então uma chance de 1 − 1 n de não ser escolhida Em n eventos, a chance de não ser escolhida será 1 − 1 n n ≈ e−1 = 0, 368 Então espera-se que, em um conjunto grande, cerca de 36,8% sobrem para teste Com 63,2% escolhidos para treino (contendo repetições) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 38 / 43
  • 97. Desempenho – Dados limitados Bootstrapping Treinar e testar nesses conjuntos, contudo, nos leva a uma estimativa pessimista do erro Temos apenas 63% dos exemplos para treino (10-fold teria 90%) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 39 / 43
  • 98. Desempenho – Dados limitados Bootstrapping Treinar e testar nesses conjuntos, contudo, nos leva a uma estimativa pessimista do erro Temos apenas 63% dos exemplos para treino (10-fold teria 90%) Para compensar, combinamos as taxas de erro no conjunto de treino e teste Combinamos a otimista com a pessimista A taxa de erro fica então TE = 0, 632 × TEteste + 0, 368 × TEtreino Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 39 / 43
  • 99. Desempenho – Dados limitados Bootstrapping Repetimos todo o procedimento várias vezes Reconstruindo os conjuntos de treino e teste Executando e testando o método neles Retornando a média dos TE s como estimativa final de erro Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 40 / 43
  • 100. Desempenho – Dados limitados Bootstrapping Repetimos todo o procedimento várias vezes Reconstruindo os conjuntos de treino e teste Executando e testando o método neles Retornando a média dos TE s como estimativa final de erro Embora seja o melhor método para conjuntos muito pequenos, tem problemas Considere o mesmo conjunto de dados de antes (conjunto aleatório com 2 classes) Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 40 / 43
  • 101. Desempenho – Dados limitados Bootstrapping Considere agora que temos um método que aprende perfeitamente o conjunto de treino De alguma forma, a existência de repetições levou a um padrão que foi aprendido Assim, TEtreino = 0 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
  • 102. Desempenho – Dados limitados Bootstrapping Considere agora que temos um método que aprende perfeitamente o conjunto de treino De alguma forma, a existência de repetições levou a um padrão que foi aprendido Assim, TEtreino = 0 Lembrando que TEteste = 0.5 Pois o conjunto é totalmente aleatório – não há padrão Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
  • 103. Desempenho – Dados limitados Bootstrapping Considere agora que temos um método que aprende perfeitamente o conjunto de treino De alguma forma, a existência de repetições levou a um padrão que foi aprendido Assim, TEtreino = 0 Lembrando que TEteste = 0.5 Pois o conjunto é totalmente aleatório – não há padrão Então TE = 0, 632 × 0.5 + 0, 368 × 0 = 0, 316 31,6% é bastante otimista, considerando que a taxa real é de 50% Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 41 / 43
  • 104. Referências 1 Witten, I.H.; Frank, E. (2005): Data Mining: Practical Machine Learning Tools and Techniques. Elsevier. 2a ed. 2 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 3a ed. 3 Goodfellow, I.; Bengio, Y.; Courville, A. (2016): Deep Learning. MIT Press. 4 Alpaydın, E. (2010): Introduction to Machine Learning. MIT Press. 2 ed. 5 Murphy, K. P. (2012): Machine Learning: A Probabilistic Perspective. MIT Press. 6 https://machinelearningmastery.com/learning-curves-for- diagnosing-machine-learning-model-performance/ Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 42 / 43
  • 105. Referências 7 https://en.wikipedia.org/wiki/Learning_curve 8 https: //en.wikipedia.org/wiki/Learning_curve_(machine_learning) 9 https://machinelearningmastery.com/ avoid-overfitting-by-early-stopping-with-xgboost-in-python/ 10 http://scott.fortmann-roe.com/docs/MeasuringError.html 11 https://www.analyticsvidhya.com/blog/2018/05/ improve-model-performance-cross-validation-in-python-r/ 12 https://www.thoughtco.com/stratified-sampling-3026731 Norton Trevisan Roman(norton@usp.br) 11 de junho de 2019 43 / 43