conselhos para a aplicação de aprendizagem de máquinas

Post on 07-Apr-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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ósticos para descobrir o que fazer:- Conseguir mais exemplos de treinamento- Tentar com um conjunto menor de características- Tentar conseguir novas características- Tentar adicionar características polinomiais- Tentar aumentar λ- Tentar diminuir λ

• Diagnósticos 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ço2104 4001600 3302400 3691416 2323000 5401985 3001534 3151427 1991380 2121494 243

70%

30%

Treinamento

Teste

Seleçã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

Treina

mento

Validação cruzada

Teste

60%

20%

20%

Bias/VariânciaPr

eço

Tamanho

Preç

o

Tamanho

Preç

o

Tamanho

Bias Alto (underfit) Alta Variância (overfit)

Diagnosticando 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)

Erro

Grau do polinômio

Bias Variância Bias:Jt alto e Jv alto

Variância:Jt baixo e Jv alto

Regularização e Bias/Variância

• Modelo:

Pric

e

Size

Pric

e

Size

Pric

e

Size

λ Alto – Bias Alto (underfit)

λ Intermediário – curva ideal

λ baixo – Alta variância(overfit)

Regularização e Bias/VariânciaVariância

Bias

Melhor valor

JtreinoJteste

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro

Curvas de Aprendizagemer

ro Jvalidação

Jtreino

Curvas de Aprendizagem – Bias Alto

• Se o algoritmo estiver com o bias alto, conseguir mais exemplos não vai ajudar.

Erro

size

pric

e

size

pric

e

Jvalidação

Jtreino

Curvas de Aprendizagem – Alta Variância

• Se o algoritmo estiver com uma alta variância, conseguir mais exemplos deve ajudar.

tamanho

preç

o

tamanho

preç

o

erro Jvalidação

Jtreino

O que fazer em seguida?- Conseguir mais exemplos de treinamento (alta variância)- Tentar com um conjunto menor de características (alta

variância)- Tentar conseguir novas características (bias)- Tentar adicionar características polinomiais (bias)- Tentar aumentar λ (alta variância)- Tentar diminuir λ (bias)

Design de Sistema de Aprendizagem de Máquina

Construindo um Classificador de Spam

From: cheapsales@buystufffromme.comTo: ang@cs.stanford.eduSubject: Buy now!

Deal of the week! Buy now!Rolex w4tchs - $100Med1cine (any kind) - $50Also low cost M0rgages available.

From: Alfred NgTo: ang@cs.stanford.eduSubject: Christmas dates?

Hey Andrew,Was talking to Mom about plans for Xmas. When do you get off work. Meet Dec 22?Alf

Construindo um Classificador de Spam

• Como gastar seu tempo para obter uma pequena taxa de erro?– Coletar muitos dados.– Desenvolver características sofisticadas baseadas em informações de

roteamento de e-mail– Desenvolver características sofisticadas para o corpo do texto. As

palavras “discount” e “discounts” deveriam ser consideradas uma só? E a pontuação?

– Desenvolver algoritmo sofisticado 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ísticas podem ajudar.

– Observe manualmente os exemplos do conjunto de validação nos quais seu algoritmo cometeu erros. Veja se existe algum padrão sistemático no tipo 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 tipo de e-mails foram estes?– Que características poderiam ajudar o algoritmo a acertar a

classificação?

Farmácia: 12Replica/falso: 4Senhas roubadas: 53Outros: 31

Erros de escrita propositais: 5 (m0rgage, med1cine, etc.)Roteamento de e-mail estranho: 16Pontuação estranha: 32

Métricas de Erro para Classes Distorcidas

• Exemplo de classificação de câncer– É treinado um modelo de regressão logística 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

distorcida)

function y = predictCancer(x) y = 0; %ignore x!return

Métricas de Erro para Classes Distorcidas

• Y = 1 é uma classe rara que queremos detectar!

Precisão:De todos os pacientes que foram classificadoscom 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 Distorcidas

Classe Prevista

Real (1) Classe (0)

1 VerdadeiroPositivo

Falso Positivo

0 Falso Negativo

Verdadeiro Negativo

Precisão vs. Recall• Regressão logística:

– Prever 1 caso 0.7, 0.9, 0.3– Prever 0 caso 0.7, 0.9, 0.3

• Prever (câncer) apenas se tivermos muita certeza.– Alta precisão, baixo recall

• Evitar perder muitos casos de câncer (evitar falsos negativos).– Alto recall, baixa precisão

1

0.5

0.5 1Recall

Prec

isão

Limiar = 0.99

Limiar = 0.01

• Prever 1 caso limiar

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 = Score =

Criando um Sistema de Aprendizagem com Alta Precisão

• Ex: Classificação entre palavras confundíveis (to, two, too; than, then)

• Algoritmos:- Perceptron (Logistic

regression)- Winnow- Memory-based- Naïve Bayes

Conjunto de treinamento (milhões)

Pre

cisã

o

top related