Você está na página 1de 11

Introdução ao

PyCaret
Classificação

Data Model Hyperparameter


Preparation Training Tuning

Analysis & Model Experiment


Interpretability Selection Logging

Odemir Depieri Jr
Ronisson Lucas C. da Conceição
Yan Vianna Sym
SOBRE ESSE EBOOK
Esse ebook contem um tutorial sobre o uso do
PyCaret em problemas de classificação, ele é uma
solução pronta para negócios.

Data Model Hyperparameter


Preparation Training Tuning

CONTEÚDO
PyCaret é uma biblioteca de aprendizado de máquina
de código aberto simples e fácil de usar. Ele ajuda
você desde o início da preparação dos dados até o
final da análise e implantação do modelo.

Além disso, é essencialmente um empacotador


python em torno de várias bibliotecas e estruturas
de aprendizado de máquina, como scikit-learn, spaCy
etc. Ele também tem o suporte de algoritmos de
aprendizado de máquina complexos que são tediosos
para ajustar e implementar.
Fonte: https://bityli.com/DADgmMuHW

AUTORES
Odemir Depieri Jr
Ronisson Lucas Calmon da Conceição
Yan Vianna Sym

APOIO
Data Viking
INDICE
TUTORIAL
- Importação dos Frameworks 4
- Função SETUP 5
- Comparação Modelos 7
- Interpretação Modelo 8
- Otimização (Tuning) 9
- Métricas desempenho 10

CÓDIGO
- Link do script 11
# Instalar essas Libs
!pip install pycaret
!pip install shap

# Libs necessárias
import numpy as np
import pandas as pd
import seaborn as sns

# Funções de Classificação
from pycaret.classification import *

# Carregar os dados
Base_Dados = sns.load_dataset('iris')

# Verificando
Base_Dados.head()

Importação dos frameworks e dados


Vamos importar os frameworks necessários para nosso
tutorial e carregar a base de dados do ‘Iris’.
Como fiz a construção do script no Google Colab foi
preciso instalar o framework ‘shap’ separadamente
porque estava apresentando um erro.
O dataset nesse tutorial será utilizado o conjunto de
dados flor Iris.
Um exemplo do chamado "mapa
do metrô" para o conjunto de
dados Iris .[4] Apenas uma
pequena fração de Iris-virginica é
misturada com Iris-versicolor .
Todas as outras amostras das
diferentes espécies
de íris pertencem aos diferentes
nós. 4
Fonte: https://pt.wikipedia.org/wiki/Conjunto_de_dados_flor_Iris
clf1 = setup(
# Dados
data = Base_Dados,

# Features target
target = 'species',

# Os valores ausentes em recursos numéricos são i


mputados com o valor 'médio' do recurso no conjunto
de dados de treinamento.
# A outra opção disponível é 'mediana' ou 'zero'.
numeric_imputation = 'mean',

# Controla a entrada de confirmação de tipos de d


ados quando setupé executado.
# Ao executar em modo totalmente automatizado
ou em um kernel remoto, deve ser True.
silent = True
)

Função ‘setup’
A etapa de configuração (setup) abrange uma ampla
gama de tarefas de pré-processamento, como:

Inferência de tipo de dados:


o Ajuda a determinar os tipos de dados corretos para
todos os recursos.

Limpeza e preparação de dados:


o Imputa automaticamente os valores ausentes
presentes nos dados.
o Por padrão, os valores numéricos são imputados com
média e os dados categóricos são imputados com
moda.
o Além disso, a codificação dos recursos categóricos é
realizada automaticamente.

5
Train Test Split:
o Divide automaticamente os dados em train e test
para modelagem. No caso de problemas de
classificação, utiliza divisões estratificadas.
o Por padrão, a taxa de divisão é de 70% de
treinamento e 30% de teste. No entanto, isso pode
ser alterado usando um parâmetro na configuração.
“train_size”.
o A avaliação de cada modelo de ML e a otimização de
hiperparâmetros são feitas usando a validação
cruzada K-Fold.

Atribuindo ID de sessão como seed:


o ID de sessão é um número pseudo-aleatório gerado
por padrão se nenhum parâmetro session_id for
passado.
o PyCaret distribui esse id como uma semente em
todas as funções para isolar o efeito da
randomização.
o Isso permite a reprodutibilidade em uma data
posterior no mesmo ambiente ou em outro ambiente.

Retorno da função ‘setup’


6
compare_models()

Criando os Modelos
Esta função compara cada modelo presente no PyCaret
dependendo da declaração do problema.
O treinamento de cada modelo é feito usando os
hiperparâmetros padrão e avalia as métricas de
desempenho usando a validação cruzada.
A saída da função é uma tabela que mostra a pontuação
média de todos os modelos.
A tabela é classificada (do maior para o menor) pela
métrica escolhida e pode ser definida usando o
parâmetro de classificação . Por padrão, a tabela é
classificada por Precisão para experimentos de
classificação e R2 para experimentos de regressão.
Certos modelos são impedidos de comparação devido ao
seu tempo de execução mais longo. Para contornar essa
prevenção, o parâmetro turbo pode ser definido como
Falso .

7
Random_Forest = create_model('rf')

Interpretar Modelo
Depois de comparar diversos modelos podemos escolher
algum algoritmo especifico para podemos comparar e
avaliar as métricas de performance.
Nesse exemplo escolhei o ‘Random Forest Classifier’,
para selecionar o modelo é preciso passar a sigla da
tabela anterior (1º coluna) como parâmetro na função.
Nessa tabela ele utiliza a tabela cruzada (k-fold) e
mostra diversas métricas como:
- Accuracy;
- Recall;
- Precision;
- Outros.

8
Tuned_Random_Forest = tune_model( Random_Forest )

Otimização do Modelo (Tuned)


Esta função ajusta os hiperparâmetros do modelo.
A saída dessa função é uma grade de pontuação com
pontuações de validação cruzada por dobra.
O melhor modelo é selecionado com base na métrica
definida no parâmetro de otimização. As métricas
avaliadas durante a validação cruzada podem ser
acessadas usando a função get_metrics.
As métricas personalizadas podem ser adicionadas ou
removidas usando as funções add_metric e
remove_metric.
Parâmetros padrão no ‘create_model’ vs Parâmetros tunados no ‘tuned’
INFO:logs:RandomForestClassifier(bootstrap=Tru INFO:logs:RandomForestClassifier(bootstrap=Fals
e, ccp_alpha=0.0, class_weight=None, e, ccp_alpha=0.0, class_weight='balanced',
criterion='gini', max_depth=None, criterion='entropy', max_depth=10,
max_features='auto', max_leaf_nodes=None, max_features='log2', max_leaf_nodes=None,
max_samples=None, min_impurity_decrease=0.0, max_samples=None, min_impurity_decrease=0.2,
min_impurity_split=None, min_samples_leaf=1, min_impurity_split=None, min_samples_leaf=6,
min_samples_split=2, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=100, min_weight_fraction_leaf=0.0, n_estimators=70,
n_jobs=-1, oob_score=False, random_state=4226, n_jobs=-1, oob_score=False, random_state=4226,
verbose=0, warm_start=False) verbose=0, warm_start=False)
9
plot_model(estimator = Tuned_Random_Forest,
plot = 'learning')

Métricas de Desempenho
Esta função analisa o desempenho de um modelo
treinado no conjunto de validação.
Existem diversas métricas para serem analisadas, na
tabela abaixo consta as de classificação.

https://pycaret.gitbook.io/docs/get-started/functions/analyze#plot_model
9
Link do código
Para pegar o código entre no link ou escaneei o qrcode.

https://colab.research.google.com/drive/1fv1CjVlDXSEbvPf0cvC
FxjpayLKJf0n0?usp=sharing

10

Você também pode gostar