Classificação com Pacote PyCaret

Alternativa prática ao Scikit-Learn para Machine Learning com Python

Pegue qualquer livro de ciência de dados ou curso online. Aposto que a única biblioteca de aprendizado de máquina coberta é scikit-learn. É um ótimo lugar para começar, não me errei, mas em 2020 precisamos de algo um pouco mais automatizado e que economize tempo.

PyCaret permite concentrar nos problemas de negócios

PyCaret ser uma biblioteca de código baixo torna você mais produtivo. Com menos tempo gasto na codificação, você e sua equipe podem se concentrar em problemas de negócios.

Ele permite que você faça prototipagem de forma rápida e eficiente a partir de sua escolha de ambiente notebook.

PyCaret é simples e fácil de usar a biblioteca de aprendizado de máquina que irá ajudá-lo a realizar experimentos de Machine Mearning de ponta a ponta com BEM menos linhas de código.

Demonstração em Python

Uma vez instalado o pacote PyCaret, podemos início às importações:

from pycaret.classification import * from pycaret.datasets import get_data

A primeira é uma maneira recomendada de começar com tarefas de classificação — embora alguns possam não estar confortáveis com a sintaxe de importação * (evite se possível). A segunda importação nos permite usar conjuntos de dados embutidos.

Usaremos o conjunto de dados diabetes embutido e get_data função para carregá-lo. Em seguida, precisamos fazer um pouco de ajustes, e dizer ao PyCaret qual é a variável alvo:

diabetes = get_data(‘diabetes’)exp_clf = setup(diabetes, target=’Class variable’)

A execução deste código resultará no seguinte:

Este DataFrame resultante é bastante longo e relata muitas informações sobre os dados. Agora podemos prosseguir com a parte de aprendizado de máquina.

Encontrar o algoritmo ideal

Este passo é muito simples. Basta digitar o seguinte:

compare_models()

A função compare_models faz TUDO isso. Ele também destaca células com as maiores pontuações em amarelo, por isso é mais fácil de ver. A regressão logística parece fazer a melhor precisão, mas o algoritmo XGBoost executa a melhor perfomance no geral — então esse é o algoritmo que usaremos para criar o modelo:

xgb = create_model(‘xgboost’)

Neste link, encontraremos todas as abreviaturas do modelo, para que possamos usar algo diferente do XGBoost. A seguir, vamos ver visualmente como nosso modelo se sai.

Visualizando o desempenho dos modelos

Podemos usar a função plot_model() para visualizar o desempenho do modelo:

plot_model(xgb)

Ele mostra o gráfico de curvas ROC por padrão, mas isso é fácil de mudar. Para usar outra métrica de desempenho, podemos usar matriz de confusão:

plot_model(xgb, ‘confusion_matrix’

Ou o relatório de classificação:

plot_model(xgb, ‘class_report’)

Aqui está o link para todas as visualizações que podemos fazer. Vamos continuar com a interpretação do modelo.

Interpretação do modelo com SHAP

SHAP, ou explicações aditivas SHapley, é uma maneira de explicar as saídas de um modelo de aprendizado de máquina. Podemos usá-lo para ver quais recursos são mais importantes, plotando os valores SHAP de cada recurso para cada amostra:

interpret_model(xgb)

O plot acima classifica características pela soma das magnitudes de valor SHAP sobre todas as amostras e usa valores SHAP para mostrar a distribuição dos impactos que cada recurso tem na saída do modelo[2]. A cor representa o valor do recurso — vermelho sendo alto e azul sendo baixo.

Em poucas palavras, afirma que os níveis mais altos de concentração de glicose plasmática, levam a maiores chances (devido à cor vermelha) para diabetes.

Avaliação de modelos e previsões

PyCaret dividiu os dados automaticamente em partes de treinamento e teste (70:30) após o carregamento, então não precisamos fazê-lo manualmente.

Agora podemos avaliar o modelo em dados inéditos:

predictions = predict_model(xgb)

O código acima produz os seguintes resultados:

Ok, tendo os valores em mãos, vamos ver como salvar e carregar o modelo.

Salvando e carregando os modelos

Antes de salvar o modelo, precisamos finalizá-lo:

finalize_model(xgb)

Adivinha como é simples salvar o modelo:

save_model(xgb, ‘diabetes_xgboost’

O modelo é salvo no formato pickles.

Tente adivinhar o nome da função para carregar modelos salvos:

model = load_model(‘diabetes_xgboost’)

E você está pronto para usar o modelo novamente.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store