A plataforma de aprendizagem de máquina da Amazon (AmazonML) fez bastante barulho quando foi lançada, e logo depois, o HackerNews fez uma matéria sobre a plataforma de aprendizagem de máquina do Google (Google Prediction) que se tornou um dos artigos mais populares. O produto do Google é bem similar ao da Amazon, mas é bem mais antigo: foi lançado cerca de 4 anos antes. De qualquer forma, houve a idéia de comparar a performance dessas duas APIs de aprendizagem de máquina, em conjunto com as APIs de duas startups: PredicSis e BigML. Nessa onda de novos serviços de aprendizagem de máquina, as gigantes de tecnologia estão fazendo manchete, mas as grandes empresas não necessariamente possuem os melhores produtos. Aqui veremos algumas comparações e resultados…
Metodologia
Foi levantado um desafio de aprendizagem de máquina pela Kaggle, com o objetivo de prever a quebra financeira de alguém dentro de dois anos, utilizando um conjunto de dados base com os indivíduos que tenha requisitado crédito e os resultados se faliram ou não. A ideia é utilizar a aprendizagem de máquina para predizer se um novo indivíduo que solicitar aprovação de crédito irá quebrar.
A aprendizagem de máquina tem duas etapas: o treino e a predição. A fase do treino consiste em utilizar exemplos de entrada e saída para criar um modelo. A fase de predição consiste em utilizar o modelo em novas entradas para predizer qual será a saída. As aprendizagens de máquina da Amazon, Google, PredicSis e BigML possuem APIs similares para cada fase:
- Um método que recebe o conjunto de dados (dataset formatado em csv – conjuntos separados por vírgula) e retorna o ID do modelo treinado nesses dados.
- Um método que recebe um ID do modelo treinado e uma entrada, retornando sua predição.
Para avaliar os modelos produzidos pelas APIs, o conjunto de dados da Kaggle (contendo 150 mil instâncias) foi dividido em dois: um conjunto de dados de treino (90%) e um para avaliação (3%). O conjunto de dados da avaliação foi aplicado ao modelo treinado, obtendo uma predição para cada entrada. Depois, a precisão do modelo foi medida comparando a predição obtida com os verdadeiros resultados (da amostra de avaliação).
Resultados
Para cada API há três coisas a se medir: o tempo que cada método consumiu e a precisão das predições feitas pelo modelo. A performance da precisão foi mensurada com os mesmos critérios do desafio financeiro da Kaggle (AUC). Quanto mais próximo de 1 for o AUC melhor será a precisão do modelo.
Amazon | PredicSis | BigML | ||
---|---|---|---|---|
Precisão (AUC) | 0,862 | 0,743 | 0,858 | 0,853 |
Tempo de Treinamento | 135 s | 76 s | 17 s | 5 s |
Tempo de Predição | 188 s | 369 s | 5 s | 1 s |
No desafio da Kaggle, o vencedor obteve um AUC de 0,870. É importante perceber que dependendo da sua aplicação, alguns desses critérios terá mais importância do que outros, por exemplo, se você quiser predizer se um usuário irá clicar em uma propaganda, para cada usuário em um site com alto tráfego, o tempo da predição será crucial.
Conclusão
- PredicSis ofereceu o melhor equilíbrio entre precisão e velocidade, sendo o segundo mais rápido e o segundo mais preciso.
- BigML foi o mais rápido tanto no treinamento quanto nas predições, mas foi o menos preciso.
- Google Prediction ficou em último com pouca precisão e alto tempo de predição.
- AmazonML foi o mais preciso, com o custo de um treinamento mais lento e não foi tão rápido nas predições.
Adaptado de: Louis Dorard.