Conselhos para a aplicação de
aprendizagem de máquinas
O que fazer em seguida?
•
Suponha que você tenha implementado regressão
linear regularizada para a previsão do preço de
moradias:
•
No entanto, ao testar sua hipótese num novo
conjunto de moradias, o algoritmo apresenta erros
inaceitáveis de previsão. O que você deve fazer para
melhorá-‐lo?
O que fazer em seguida?
•
Rodar diagnósFcos para descobrir o que fazer:
-‐ Conseguir mais exemplos de treinamento
-‐ Tentar com um conjunto menor de caracterísFcas -‐ Tentar conseguir novas caracterísFcas
-‐ Tentar adicionar caracterísFcas polinomiais -‐ Tentar aumentar λ
-‐ Tentar diminuir λ
•
DiagnósFcos podem levar tempo para implementar,
mas geralmente é um bom uso do seu tempo.
Avaliando a hipótese
•
Falha na generalização
de novos exemplos que
não estão no conjunto
de treinamento
Conjunto de Teste
Tamanho Preço 2104 400 1600 330 2400 369 1416 232 3000 540 1985 300 1534 315 1427 199 1380 212 1494 243 70% 30% Treinamento TesteSeleção de modelos
Tamanho Preço 2104 400 1600 330 2400 369 1416 232 3000 540 1985 300 1534 315 1427 199 1380 212 1494 243 Teste 60% 20% 20%Bias/Variância
Preço Tamanho Preço Tamanho Preço TamanhoDiagnosFcando Bias vs. Variância
•
Suponha que seu algoritmo esteja apresentando erro
de validação ou teste mais alto que o esperado. O
problema é de bias ou de variância?
Jv
Jtreino
(Erro de validação)
(Erro de treino)
Er
ro
Grau do polinômio
Bias Variância
Bias:
Jt alto e Jv alto
Variância:
Regularização e Bias/Variância
•
Modelo:
Pri ce Size Pri ce Size Pri ce Sizeλ Alto – Bias Alto
Regularização e Bias/Variância
Variância Bias
Melhor valor
Jtreino
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
Curvas de Aprendizagem
erro
J
validação
Curvas de Aprendizagem – Bias Alto
•
Se o algoritmo esFver
com o bias alto, conseguir
mais exemplos não vai
ajudar.
Er ro size pr ic e size pr ic e Jvalidação JtreinoCurvas de Aprendizagem – Alta
Variância
•
Se o algoritmo esFver
com uma alta variância,
conseguir mais exemplos
deve ajudar.
tamanho pr eç o tamanho pr eç o erro Jvalidação JtreinoO que fazer em seguida?
-‐ Conseguir mais exemplos de treinamento (alta variância) -‐ Tentar com um conjunto menor de caracterísFcas (alta
variância)
-‐ Tentar conseguir novas caracterísFcas (bias)
-‐ Tentar adicionar caracterísFcas polinomiais (bias) -‐ Tentar aumentar λ (alta variância)
Design de Sistema de
Construindo um Classificador de Spam
From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu
Subject: Buy now!
Deal of the week! Buy now! Rolex w4tchs - $100
Med1cine (any kind) - $50 Also low cost M0rgages available.
From: Alfred Ng
To: ang@cs.stanford.edu Subject: Christmas dates?
Hey Andrew,
Was talking to Mom about plans for Xmas. When do you get off work. Meet Dec 22?
Construindo um Classificador de Spam
• Como gastar seu tempo para obter uma pequena taxa de erro?
– Coletar muitos dados.
– Desenvolver caracterísFcas sofisFcadas baseadas em informações de roteamento de e-‐mail
– Desenvolver caracterísFcas sofisFcadas para o corpo do texto. As
palavras “discount” e “discounts” deveriam ser consideradas uma só? E a pontuação?
– Desenvolver algoritmo sofisFcado para encontrar erros de grafia (w4tachs, med1cine, m0rgages)
Análise de Erro
•
Abordagem recomendada:
– Comece com um algoritmo simples, que possa ser
implementado rapidamente. Implemente-‐o e teste no conjunto de validação.
– Desenhe as curvas de aprendizado para decidir se mais dados ou novas caracterísFcas podem ajudar.
– Observe manualmente os exemplos do conjunto de
validação nos quais seu algoritmo cometeu erros. Veja se existe algum padrão sistemáFco no Fpo de exemplo em que ele está cometendo os erros.
Análise de Erro
• mv
= 500 exemplos no conjunto de validação • O Algoritmo erra 100 classificações
– Que Fpo de e-‐mails foram estes?
– Que caracterísFcas poderiam ajudar o algoritmo a acertar a classificação?
Farmácia: 12 Replica/falso: 4
Senhas roubadas: 53 Outros: 31
Erros de escrita propositais: 5 (m0rgage, med1cine, etc.)
Roteamento de e-‐mail estranho: 16 Pontuação estranha: 32
Métricas de Erro para Classes
Desbalanceadas
•
Exemplo de classificação de câncer
–
É treinado um modelo de regressão logísFca h
θ(x).
(y = 1 e caso de câncer e y = 0 caso contrário)
–
É encontrado 1% de erro no conjunto de teste
–
Apenas 0.5% dos pacientes tem câncer (classe
rara/pequena)
function y = predictCancer(x)
y = 0; %ignore x! return
Métricas de Erro para Classes
Desbalanceada
•
Y = 1 é uma classe rara que queremos detectar!
Precisão:
De todos os pacientes que foram classificados com y = 1, quais realmente têm câncer?
𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑖𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜/𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 𝑃𝑟𝑒𝑣𝑖𝑠𝑡𝑜𝑠 = 𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑖𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜/ 𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑖𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜+𝐹𝑎𝑙𝑠𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜
Recall:
De todos os pacientes que têm câncer,
Que fração nós classificamos corretamente?
𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑖𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜/𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜𝑠 𝑟𝑒𝑎𝑖𝑠 = 𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑖𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜/𝑉𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑜+𝐹𝑎𝑙𝑠𝑜 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑜
Métricas de Erro para Classes
Desbalanceada
Classe
Prevista Real (1) Classe (0)
1 Verdadeiro
PosiFvo Falso PosiFvo
0 Falso
Precisão vs. Recall
• Regressão logísFca:0 ≤
ℎ↓𝜃
(𝑥)
≤1
– Prever 1 caso ℎ↓𝜃 (𝑥)≥ 0.7, 0.9, 0.3 – Prever 0 caso ℎ↓𝜃 (𝑥)< 0.7, 0.9, 0.3• Prever
𝑦
=1
(câncer) apenas se Fvermos muita certeza.– Alta precisão, baixo recall
• Evitar perder muitos casos de câncer (evitar falsos
negaFvos).
– Alto recall, baixa precisão
1 0.5 0.5 1 Recall Pr ec is ão Limiar = 0.99 Limiar = 0.01
𝐹↓
1
Score (F Score)
Precisão(P) Recall (R) Média F1 Score
Algoritmo 1 0.5 0.4 0.45 0.444 Algoritmo 2 0.7 0.1 0.4 0.175 Algoritmo 3 0.02 1.0 0.51 0.0392
Média =
𝑃+𝑅/2𝐹↓1
Score =
2 𝑃𝑅/𝑃 +𝑅Criando um Sistema de Aprendizagem
com Alta Precisão
•
Ex: Classificação entre
palavras confundíveis
(to, two, too; than, then)
•
Algoritmos:
-‐ Perceptron (LogisFc regression) -‐ Winnow -‐ Memory-‐based -‐ Naïve BayesConjunto de treinamento (milhões)
Pr ec is ão