Machine Learning: desenvolvimento e deploy com Python

Uma abordagem sobre o ciclo de um projeto de machine learning.

Wesley Watanabe
Dados
5 min readJul 8, 2020

--

Introdução

Tenho escrito vários artigos aqui no Medium explicando como criar modelos de Machine Learning. Neste além de criar o modelo vou também criar uma interface web para consumirmos o resultado do nosso modelo. Dessa forma o foco neste artigo é o todo, e não o desenvolvimento do modelo.

Tópicos abordados

  • Criar um modelo de ML
  • Tratamento simples dos dados
  • Exportar modelo
  • Criar interface web para uso do modelo
  • Deploy do modelo em Flask

Dica de leitura

Neste artigo abordo alguns assuntos já comentados no artigo abaixo, tais quais não serão abordados profundamente neste artigo.

Contexto: Fake news detector

Hoje estamos passando por um período muito conturbado em relação as fake news. A propagação e os efeitos práticos tem sido ‘benéficos’ para aqueles que usam esse tipo de instrumento para manipular pessoas.

No Twitter por exemplo já foram criados vários perfis para detectar outros perfis e sites que propagam esse tipo de notícia.

Casos práticos:

O perfil @slpng_giants_pt foi criado há pouco tempo mas já possui cerca de 237k de seguidores. Ele tem vasculhado sites que propagam fake news e tem cobrado um posicionamento das empresas que vinculam seu anúncios neles.

Image do https://twitter.com/slpng_giants_pt

Outro perfil no Twitter é o @BotSentinel, esse aplicando machine learning tem ajudado a identificar possíveis twitts de perfis que são usuários “robôs”, os quais são usados para disseminar fake news e/ou subir hashtags.

Image do twitter www.twitter.com/@botsentinel

Dado o atual contexto uma aplicação para a verificação de notícias reais ou não faz todo o sentido. Vamos lá!

Mãos a obra

Primeiro vamos importar o dataset sobre fake news. O dataset que consegui para usar nesse tutorial está nesse link disponibilizado na plataforma do Kaggle.

Existem dois arquivos (train e test), dessa forma vamos usar os arquivos para treinar e validar o nosso modelo.

Importando bibliotecas

Importando dados

EDA

Fazendo o reconhecimento dos datasets.

Checando os dataframes info’s.

Checando os valores nulos dos dois dataframes.

Transformando os dados

Concatenando os dados de todas as colunas (menos label) em um só.

Removendo os valores nulls

Criando o modelo preditivo

Criando objeto de vetorização passando o parâmetro ngram e já criando a matriz de treino e teste.

Separando o dataframe de treino em dois (teste e treino)

Criando o modelo de Regressão Logística

Salvando modelo

Salvar o modelo e o ‘vetorizador’ que criamos para ser usado na nossa página web.

Deploy

Para executar o arquivo index.py execute a instalação das bibliotecas contidas no arquivo requirements.txt. (pip install -r requirement.txt)

Obs: Não esqueça de criar o ambiente virtual (virtualenv).

Criando a nossa rota que vai receber o ‘post’ da página para criar o ‘predict.’

Aqui é a parte mais importante do nosso arquivo index.html.
Criamos um forma para receber o request do usuário e na class result recebemos a predição do nosso modelo enviado pelo backend.

Interface web

Esse é o resultado da nossa página que irá receber os requests do usuário.

Conclusão

O sistema funciona bem com o dataset escolhido. Os níveis de assertividade permaneceram interessantes.

Esse projeto poderia ser elevado a um nível mais profundo, uma análise de sentimento das notícias por exemplo já deixaria muito mais robusto, porém é necessário mais tempo fazendo o tratamento dos dados.

Todos os arquivos aqui estão disponibilizados no meu github, espero que esse artigo te ajude no seus estudos ;) !

--

--