machine learning com vowpal wabbit
TRANSCRIPT
Definição
O Vowpal Wabbit (VW) é uma ferramenta para criação de modelos de Machine
Learning capazes de extrair informações e padrões de grandes volumes de dados.
O VW pode ser usado para resolver problemas de Big Data rapidamente através de cases reais
através de problemas que envolvem classificação de dados, modelos de regressão e descoberta de padrões.
Principal developer of VW
http://research.yahoo.com http:// research.microsoft.com
John Langford
O que é
Implementação de diversos algoritmos de machine learning.
• FEATURES – Subconjunto de dados com características relevantes.
• LABEL – Resultado esperado (o que se deseja prever)
• Job Description – Dado um conjunto de features, calcule (com certa precisão) o label correspondente.
• Entrada do VW – Textual (qualquer palavra pode ser utilizada como feature)
• Exemplo – nota, curso, professor,...
Aprendendo modelos
VW aproxima F da forma linear
F = C1*FEATURE1+C2*FEATURE2+C3*FEATURE3+...+Cn*FEATUREn
É basicamente um somatóriodos pesos
multiplicados pelos valores das features
Stochastic Gradient Descent
É um algoritmo que busca aprender dado um conjunto de exemplos baseado no valor dos pesos correspondentes para as
features.
Nesse caso, necessitamos de um modelo de treino (Aprendizagem Supervisionada). É um
aprendizado de dados interativo.
Dentro da inteligência artificial, programas estocásticos trabalham usando métodos probabilísticos para
solucionar problemas, como em redes neurais estocásticas, otimização estocástica e algoritmos genéticos.
Um problema pode ser estocástico em si mesmo, como no planejamento sob incerteza.
O treinamento
Partindo do modelo SUPERVISIONADO, passasse uma infinidade de exemplos com
features e labels para que o sistema possa identificá-los.
Exemplo:
Job Description: Tempo de compra para novos cadastros
Features: Estado, DiaCadastro, MesCadastro, Idade, Sexo, ...
Label: QtdeDiasAtéCompra
Modelo Preditivo
Modelagem:
O VW possui um modelo de entrada bastante flexível
[Label] [Importance [Tag]]|Namespace Features |Namespace Feature ....
Onde:
Namespace = String[:Value] (Pacotes de Features relacionadas)
Features = (String[:Value])*
Distribuição dos dados de entrada
2.025305865 |dados_cliente data_cadastro=30-09-2013 dia_cadastro:30.0
mes_cadastro=Setembro idade:24 cidade=passo_fundo estado=rs
data_nascimento=1990-07-02 recebe_mail_mkt:1.0 |dados_compras
data_primeira_compra=14-01-2014
quantidade_free_antes_primeira_compra:4.0
http://hunch.net/~vw/validate.html
Distribuição dos dados de entrada
2.025305865 |dados_cliente data_cadastro=30-09-2013 dia_cadastro:30.0
mes_cadastro=Setembro idade:24 cidade=passo_fundo estado=rs
data_nascimento=1990-07-02 recebe_mail_mkt:1.0 |dados_compras
data_primeira_compra=14-01-2014
quantidade_free_antes_primeira_compra:4.0
http://hunch.net/~vw/validate.html
Como otimizar essa grande quantidade de parâmetros?
Como converter esses números em palavras?
Através da função hash, pega-se a String e faz um hash dela, e a utiliza como entrada na função
de otimização.
Isso é particularmente útil para os algoritmos de aprendizagem que consomem grandes
quantidades de dados. Assim aumenta a ESCALABILIDADE
Treinando o modelo
VW –D DATA.TRAIN –C –K –PASSES 80 –F TREINO.VW
[DEMO]
Predição do tempo entre cadastro e compra
HEAD –3L DATA.TEST
HEAD –3L DATA.TEST | VW –i TREINO.VW –T –QUIET –P /DEV/STDOUT
[ WolframAlpha ]
Feature Extration
VW –VARINFO
Identifica as features mais relevantes
perl ../utl/vw-varinfo -c -k --passes 13 --base.vw > varinfo.txt
Overfitting
Overfiting ocorre quando um algoritmo de
modelo estatístico ou de aprendizagem de
máquina torna-se “perfeito” ao treino.
MeetUp
Café com Dados
Até a próxima
https://eventioz.com.br/e/cafe-com-dados-
alfacon
Inscreva-se e participe