top of page
Buscar

TPOT: Uma ferramenta Python para automatizar a ciência de dados

  • Foto do escritor: Andre Ribeiro
    Andre Ribeiro
  • 19 de dez. de 2022
  • 2 min de leitura

Apesar dessa afirmação comum, qualquer um que tenha trabalhado no campo sabe que projetar sistemas eficazes de aprendizado de máquina é um esforço tedioso e normalmente requer uma experiência considerável com algoritmos de aprendizado de máquina, conhecimento especializado do domínio do problema e pesquisa de força bruta para realizar. Assim, ao contrário do que os entusiastas do aprendizado de máquina querem nos fazer acreditar, o aprendizado de máquina ainda requer uma quantidade considerável de programação explícita.

Neste artigo, vamos abordar três aspectos do design de pipeline de aprendizado de máquina que tendem a ser tediosos, mas ainda assim importantes. Depois disso, vamos passar por uma demonstração de uma ferramenta que automatiza de forma inteligente o processo de design de pipeline de aprendizado de máquina, para que possamos gastar nosso tempo trabalhando nos aspectos mais interessantes da ciência de dados.

Vamos começar.


O ajuste de hiperparâmetros do modelo é importante


Uma das partes mais tediosas do aprendizado de máquina é o ajuste de hiperparâmetros do modelo.

As máquinas vetoriais de suporte exigem que selecionemos o kernel ideal, os parâmetros do kernel e o parâmetro de penalidade C. As redes neurais artificiais exigem que ajustemos o número de camadas ocultas, o número de nós ocultos e muitos outros hiperparâmetros. Mesmo florestas aleatórias exigem que sintonizemos o número de árvores no conjunto no mínimo.

Todos esses hiperparâmetros podem ter impactos significativos no desempenho do modelo. Por exemplo, no conjunto de dados de dígitos manuscritos.




Se ajustarmos um classificador de floresta aleatório com apenas 10 árvores (padrão do scikit-learn):


import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import cross_val_score

mnist_data = pd.read_csv('https://raw.githubusercontent.com/rhiever/Data-Analysis-and-Machine-Learning-Projects/master/tpot-demo/mnist.csv.gz', sep='\t', compression='gzip')

cv_scores = cross_val_score(RandomForestClassifier(n_estimators=10, n_jobs=-1),
                            X=mnist_data.drop('class', axis=1).values,
                            y=mnist_data.loc[:, 'class'].values,
                            cv=10)

print(cv_scores)

[ 0.93461813  0.96287836  0.94688749  0.94072275  0.95114286  0.94570653
  0.94884253  0.94311848  0.93825043  0.95668954]

print(np.mean(cv_scores))

0.946885709001

A floresta aleatória atinge uma média de 94,7% de precisão de validação cruzada no MNIST. No entanto, e se ajustarmos um pouco esse hiperparâmetro e fornecermos à floresta aleatória 100 árvores.

Comments


  • Twitter
  • Youtube
  • LinkedIn

©2022 por Andson A Ribeiro.

bottom of page