/como-um-cientista-de-dados-compra-um-tenis

Quer saber como um cientista de dados compra um tênis de corrida?

Primary LanguageJupyter Notebook

Como um cientista de dados compra um tênis de corrida?

WebApp - Heroku
Linkedin - Rodrigo Fragoso
Email : rodrigoandradefragoso@gmail.com

Resumo

  • Em época de quarentena, decidi reservar um pouco do meu tempo para realizar algumas atividades físicas, principalmente de corrida (de forma segura, sempre). Sendo assim, me deparei com o problema de escolher o melhor tênis para comprar, dada a quantidade imensa de opções no mercado.
  • Para otimizar minha escolha, criei um pipeline completo, desde a formulação do problema até o deploy, para escolher o melhor tênis de corrida, tudo isso baseado em dados. Para isso, passamos por várias etapas: scraping, processamento dos dados, modelagem, otimização, até chegar na solução final que foi hospedada no heroku, me auxiliando bastante a decidir qual produto adquirir.

Running Shoes

Etapas

Como cheguei nesse WebApp?

  1. Formulei o problema e procurei o melhor site, para extrair informações e realizar o meu projeto. A página escolhida foi o RunRepeat Official Website, que possui diversas informações sobre milhares de tênis, além de uma vasta quantidade de reviews feitos por especialistas e membros da sua comunidade;

  2. Com o site escolhido, criei um Web Scraper dividido em duas etapas: o coletor de dados da busca do site, que era responsável por listar todos os tênis da categoria desejada, e o coletor dos dados de cada tênis encontrado. A segunda parte demandou maiores esforços por possuir muitas informações na página;

  3. De posse de todos esses dados brutos, realizei o seu processamento para criar um dataset consumível para treinar os modelos de machine learning que iria utilizar;

  4. Para chegar na modelagem, foi necessário fazer a anotação de alguns exemplos no nosso dataset e para realizar isso de forma otimizada, reduzindo tempo e recurso, foi utilizada a metodologia do Active Learning, no qual também foram treinados alguns modelos de classificação tendo sua performance avaliada via validação cruzada;

  5. Com todos os dados que foram anotados, criei mais dois modelos, Random Forest e LightGBM, otimizei os seus hiperparâmetros para realizar um classificação mais precisa, e fundi seus resultados utilizando um ensemble entre eles;

  6. Por fim, construí um container utilizando o docker e hospedei minha aplicação no heroku, concluindo o projeto.

APIs

Running Shoes

Repositório

  • Extração a Modelagem : Pasta com todos notebooks utilizados para realizar os passos de extração dos dados até a modelagem.
  • deploy : Pasta com os arquivos utilizados para criar o container do docker e realizar o deploy no heroku.

Principais ferramentas utilizadas

  • scikit-learn
  • scikit-optimize
  • pandas
  • numpy
  • scipy
  • regex
  • flask
  • docker
  • heroku
  • beautifulsoup4
  • requests

Agradecimentos

  • Agradecimento especial ao Mario Filho que criou um curso fenomenal, utilizado de base para boa parte deste projeto, e sempre está criando conteúdo sobre Data Science que venho consumindo e aprendendo diversos tópicos a bastante tempo.
  • Ao Jonathan Cabreira por disponibilizar o seu template da página web para o deploy.