Concrete Logo
Hamburger button

Amazon Machine Learning Benchmark

  • Blog
  • 29 de Abril de 2015
Share

Testamos o mais novo serviço da AWS, o Amazon Machine Learning.

1Lançado este mês no AWS Summit, o Amazon Machine Learning oferece um modelo de pay-as-you-go para a realização de predições baseadas em dados.

Como usar?

Por meio de wizards no console web do serviço, em menos de 30 minutos é possível treinar um modelo e usá-lo para predições. Podemos dividir este processo em cinco passos:

  1. Subir seus conjuntos de dados para o Amazon S3
  2. Criar Datasources com metadados sobre seus conjuntos de dados
  3. Criar um ML Model para configurar o treinamento de um modelo preditivo
  4. Criar uma Evaluation para avaliar o resultado do modelo
  5. Criar uma Batch Prediction para realizar uma predição de novos dados

Otto Product Group Classification Challenge

Para testar este novo serviço, recorremos ao Kaggle, que hospeda diversas competições na área de Data Science.

Como a Concrete Solutions tem um histórico de muitos projetos com clientes da indústria do varejo, o desafio escolhido foi o Otto Product Group Classification Challenge.

2

O objetivo deste desafio é classificar produtos em 9 categorias por meio do conhecimento de 93 características (ofuscadas) de cada produto.

Para isso, é disponibilizado um conjunto de treinamento com 61.878 produtos que além de suas características também vêm acompanhados de suas respectivas classes.

Após realizar treinamentos de modelos preditivos com esses dados, os competidores devem prever as classes de 144.369 novos produtos a partir de suas características.

Datasource

Após criação do Datasource do conjunto de treinamento dessa competição, pode-se ver um sumário das características dos produtos, incluindo a correlação com o alvo.

3

Pode-se também visualizar a distribuição das classes nesse conjunto de treinamento.

4

ML Model Evaluation

Após a configuração do ML Model, o serviço realiza o treinamento do modelo preditivo com 70% dos dados e realiza uma avaliação de sua performance com os outros 30%.

Esta avaliação pode ser visualizada para o nosso tipo de problema (classificação multi-classe), na forma de uma matriz de confusão, além do cálculo dos F1 scores.

5

Neste gráfico pode-se observar que o modelo produziu uma boa classificação:

  • As classes de cor azul na diagonal azul informam a predição correta
    • As classes 6, 8, 9 e 5, por exemplo, foram corretamente classificadas de 80% a 100% das vezes.
    • As classes 4 e 1 tiveram um desempenho pior, entre 20% e 40%, que pode se justificar por estas possuírem menor quantidade de produtos no conjunto de teste do desafio.
  • As classes de cor salmão informam a predição incorreta:
    • Existem algumas classes que são confundidas com maior frequência, por exemplo, as classes 2 e 3.
    • No entanto, a maior parte das classes têm predição incorreta abaixo de 20%.
  • O F1 Score geral foi 0.71, indicando uma boa média harmônica de precision e recall.

Ranking da Competição

As submissões dessa competição são avaliadas usando multi-class logarithmic loss.

6

Por ser uma função de perdas, quanto menor esse valor mais próxima a predição estará dos valores reais.

A competição, que dura até dia 18 de Maio, tem um ranking público com as pontuações de todos os participantes e alguns benchmarks oficiais.

Hoje, o primeiro lugar está com um time de três experientes Kagglers estudantes PhD que conseguiram um score de 0.38899 com uma mistura linear de 11 modelos! Mas até o final da competição esse ranking mudará bastante.

Benchmarks oficiais da competição:

Random Forest Benchmark

Este benchmark foi realizado usando um classificador em Random Forest com as confgurações padrões da biblioteca scikit-learn. O score foi de 1.50241.

Uniform Probability Benchmark

Neste simples benchmark, todas as classes foram consideradas de igual probabilidade para todos os produtos. O score foi de 2.19722.

Benchmark Amazon Machine Learning

Usando todas as configurações predefinidas do serviço e sem realizar qualquer tipo de pré-processamento nos dados, nosso teste com o Amazon Machine Learning obteve o score de 0.63462!

Esta pontuação, apesar de não ser competitiva para um desafio contra os experts em Data Science do Kaggle, foi bem melhor do que o benchmark existente usando Random Forest, uma técnica adorada por muitos.

Legal! Mas o que a Amazon está usando?

Os algoritmos de Machine Learning por trás do serviço são:

Para prevenir overfitting, o treinamento utiliza L2 Regularization com coeficiente de 1e-6 (suave).

E a grana???

O serviço custa 0,42 USD por hora de análise de dados e criação de modelos, além de 0,10 USD por 1.000 previsões.

O custo total de utilização do serviço para nosso teste, incluindo a criação do modelo, sua avaliação e a previsão de 144369 entradas foi de apenas 15,45 USD.

Conclusão

O serviço é simples, tem ótima documentação e uma rápida curva de aprendizagem. É ideal para quem quer resolver problemas básicos de Machine Learning sem ter um background na área.

Muitos problemas reais do dia-a-dia de corporações podem ser resolvidos com esse serviço a um custo baixo, sem a necessidade de contratar um expert em Data Science e comprar máquinas super-poderosas.

Já para quem tem problemas que demandam modelos mais avançados (Support Vector Machine, Neural Networks…) e maior flexibilidade de configuração de parâmetros, o recém-lançado serviço ainda não contempla estas técnicas. Mas pode ser apenas uma questão de tempo…

Saiba mais

https://aws.amazon.com/pt/machine-learning/

https://aws.amazon.com/pt/machine-learning/pricing/

https://docs.aws.amazon.com/machine-learning/latest/dg/machinelearning-dg.pdf

https://docs.aws.amazon.com/machine-learning/latest/mlconcepts/mlconcepts.html

Ficou alguma dúvida ou tem alguma coisa a dizer sobre o post? Use os campos abaixo!