Vowpal Wabbit – Uma breve introdução

Por inúmeras vezes, em nossos MeetUps, abordamos o Vowpal Wabbit (VW) como um sistema de Aprendizagem de Máquina muito eficiente. Neste artigo vamos apresentar uma breve introdução ao tema e ilustrar algumas de suas aplicações.

Desenvolvido inicialmente pela Yahoo! Research, e atualmente pela Microsoft Research, é um projeto do desenvolvedor John Langford.

 O VW pode ser utilizado para resolver problemas de Big Data rapidamente através de cases reais, para isso ele pode fazer uso de métodos de classificação de dados, modelos de regressão e descoberta de padrões.

wapid-and-wobust-active-online-machine-leawning-with-vowpal-wabbit-9-638

Mas por que usar o VW?

Primeiro que o VW é capaz de trabalhar com modelos muito grande de dados e features (definiremos isso ainda hoje, não saia daí), terafeatures na verdade, e isso faz com que o processo linear possa ser muito mais preciso que os sistemas não lineares.

Vamos dividir, por motivos didáticos, em duas formas: Algoritmos de predição e algorítimos de classificação. Em ambos usaremos uma base de dados de teste, isso porque desejamos que o algoritmo aprenda dado um conjunto de dados baseados no valor dos pesos correspondentes com cada item.

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 probalísticos para solucionar problemas, como em redes neurais estocásticas, otimização estocásticas e algoritmos genéticos. Um problema pode ser estocático em sim mesmo, como no planejamento sob incerteza.

Predição

Quando falamos em predição significa que com base nos dados queremos prever uma possível situação. Por exemplo, imagine que tenhamos vários dados de alunos que compram determinados cursos e que gostaríamos de descobrir quanto tempo um visitante leva para se tornar um aluno após degustar eventos free.

Para isso coletamos os dados de diversos alunos, estruturamo-os e separamos em dois grupos: Um grupo de teste e outro para executar a predição.

O primeiro grupo, Grupo de teste, servirá para o aprendizado supervisionado do algoritmo. O segundo, sem o campo que desejamos prever, será usando para descobrirmos quanto tempo esses visitantes levarão para se converterem em alunos pagantes.

Para estruturar os dados de forma que o VW possa interpretá-los vamos a algumas nomenclaturas:

  • 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.

A entrada do VW é textual, o que já facilita muito o trabalho na hora da criação da base de dados. As features são bem simples, elas podem receber uma palavra e ser seguida por um valor numérico correspondente.

Exemplo:

  • ValorInvestido:749.9
  • CompraEfetuada
  • Tempo_Cadastro:63.0

Nos três casos acima temos uma feature, perceba que o valor numérico é separado por dois pontos (:) o nome da feature.

Quando uma feature não apresenta valor a ela será atribuída o valor 1.

Partindo do modelo supervisionado, passasse uma infinidade de exemplos com features e labels para que o sistema possas identificá-los.

Veja como ficaria em uma análise inicial:

Job description: Tempo de compra para novos cadastros.

Features: Estado, DiaCadastro, MesCadastro, Idade, Sexo, EventosFree,…

Label: QteDiasAteCompra

Em nosso próximo artigo começaremos a montar um modelo preditivo. Até lá!

Comments

comments

Você também pode gostar...

1 Comentário

  1. 1 de abril de 2015

    […] você está chegando agora leia antes nosso artigo Vowpal Wabbit – Uma breve introdução para entender como chegamos aqui. Mas, se você já leu ou deseja começar por aqui (por sua conta […]