Quatro Módulos Essenciais para Desenvolver Machine Learning em Python

Ter as ferramentas corretas é essencial para o sucesso de qualquer projeto de machine learning. A maior parte do tempo gasto em um projeto que envolva extrair valor de dados é preparar os mesmos para análise. Neste artigo recomendo módulos em Python que são essenciais para cientistas de dados atingirem uma produtividade maior.

Antes de começarmos: PIP

https://pip.pypa.io/en/latest/installing.html

Esta ferramenta permite que você instale e atualize módulos Python através da linha de comando. Isto facilita bastante, pois evita dores de cabeça e perda de tempo na instalação destes módulos.

Este é um gerenciador de pacotes como Homebrew e Apt-get, com uma extensa biblioteca de módulos Python. A instalação dos módulos, inclusive de quaisquer dependências necessárias, acaba se tornando muito simples, o que nos permite concentrar em utilizá-los.

Todos os módulos do artigo estão disponíveis no repositório do PIP.

Numpy/Scipy

http://www.numpy.org/
http://www.scipy.org/

Estes módulos são indispensáveis para qualquer usuário de Python que trabalhe com projetos que exijam computação científica. Além de facilitar o armazenamento dos dados em estruturas (como arrays) que possibilitam fazer várias operações matemáticas, eles implementam diversas funções úteis de estatística, álgebra linear e computação numérica.

Melhor ainda, por possuir seus fundamentos em operações de álgebra linear, eles utilizam bibliotecas otimizadas em C por baixo do código Python, o que faz uma diferença substancial na performance, tornando as computações mais rápidas do que em Python puro.

Pandas

http://pandas.pydata.org/

Este módulo oferece estruturas e funções para facilitar a análise de dados em Python. Quem já usou R vai perceber algumas similaridades como o “data.frame”. Originalmente suas funções eram concentradas para análise de séries temporais, mas com o tempo foi evoluindo e hoje possui suporte para diversos tipos de dados.

Outra grande vantagem é que boa parte do código é implementada em C para melhorar a performance. Ou seja, temos a facilidade da linguagem Python com a performance similar à da linguagem C.

Scikit-learn

http://scikit-learn.org/stable/

Essencial para qualquer cientista de dados que use Python e Machine Learning. É o módulo de Machine Learning mais completo disponível na linguagem. Possui algoritmos para aprendizado supervisionado, semi-supervisionado, e não supervisionado.

A documentação é bastante clara, com diversos exemplos. Possui funções para facilitar a transformação dos dados, além de várias ferramentas para ajudar na validação e avaliação do modelo. Sua interface é simples, e em poucas linhas de código é possível treinar modelos bastante complexos.

Mais uma vez temos um módulo que utiliza código em C para tornar as operações mais rápidas.

Matplotlib

http://matplotlib.org/

Este módulo contém ferramentas para criar gráficos em 2d. É possivelmente o módulo de visualização mais utilizado em Python, e funciona muito bem com Numpy e Scipy. Existem muitos tipos de gráficos, adequados à maioria dos dados.

A única desvantagem é que, apesar de ser possível fazer boas visualizações com ele, falta um cuidado maior com a estética. É bastante útil para visualizações claras, mas deixa a desejar em ferramentas para torná-las mais bonitas. Ele é mais indicado para criar visualizações para trabalhos acadêmicos, ou durante o processo de exploração de um banco de dados, antes da análise.

Bônus: Keras

https://github.com/fchollet/keras

O scikit-learn possui uma diversidade grande de modelos, mas não disponibiliza redes neurais. Apesar de ser um modelo bastante conhecido, suas características acabam exigindo uma implementação própria para agregar toda a complexidade e variedade.

O Keras é um módulo que descobri recentemente que facilita demais o processo de criação e treino de uma rede neural. Ele disponibiliza vários algoritmos de treino, tipos de layers, regularização, e modos de operação, como redes recorrentes ou sequenciais.

Redes neurais são complexas por natureza, e ter um módulo com uma interface simples ajuda bastante na hora de utilizá-las.

Ele é construído sobre o módulo Theano, o que possibilita personalizar as funções otimizadas pela rede neural, além de permitir o treino da mesma em uma GPU.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *