O Fantástico PyCaret 1.0.0

Uma biblioteca performática de Machine Learning de código enxuto em Python.

PyCaret, é uma biblioteca de aprendizado de máquina de código aberto em Python para treinar e implantar modelos de aprendizado de máquina supervisionados e não supervisionados em um ambiente de código enxtuo. O PyCaret permite que você deixe de gastar tempo na preparação de dados para implantar modelos em segundos a partir de sua escolha de ambiente de notebook.

Em comparação com as outras bibliotecas de aprendizado de máquina de código aberto, pyCaret é uma biblioteca que pode ser usada para substituir centenas de linhas de código apenas com poucas palavras. Isso torna os experimentos exponencialmente rápidos e eficientes. PyCaret é essencialmente um invólucro Python em torno de várias bibliotecas e frameworks de aprendizado de máquina, como scikit-learn, XGBoost, Microsoft LightGBM, spaCy e muito mais.

Começando com PyCaret

pip install pycaret

Se estiver usando notebooks Azure ou Google Colab, executar a célula de código abaixo para instalar o PyCaret.

!pip install pycaret

Quando você instala o PyCaret, todas as dependências são instaladas automaticamente.

Tutorial passo a passo

1. Obtenção de dados

O conjunto de dados está disponível no repositório github do PyCaret. A maneira mais fácil de importar o conjunto de dados diretamente do repositório é usando get_data função dos módulos pycaret.datasets.

from pycaret.datasets import get_data
diabetes = get_data('diabetes')

2. Configuração do Meio Ambiente

Uma vez que o módulo é importado, o setup() é inicializado definindo o dataframe (‘diabetes’) e a variável alvo(‘Variável classe’).

from pycaret.classification import *
exp1 = setup(diabetes, target = 'Class variable')

Todas as etapas de pré-processamento são aplicadas dentro do setup().

Com mais de 20 recursos para preparar dados para aprendizado de máquina, o PyCaret cria um pipeline de transformação com base nos parâmetros definidos na função de configuração. Ele orquestra automaticamente todas as dependências em um pipeline para que você não precise gerenciar manualmente a execução sequencial de transformações em teste ou conjunto de dados invisível. O pipeline da PyCaret pode ser facilmente transferido através de ambientes para funcionar em escala ou ser implantado em produção com facilidade. Abaixo estão os recursos de pré-processamento disponíveis no PyCaret a partir de seu primeiro lançamento.

As etapas de pré-processamento de dados que são obrigatórias para o aprendizado de máquina, como imputação de valores perdidos, codificação variável categórica, codificação de rótulos (conversão sim ou não em 1 ou 0) e divisão de teste de trem são realizadas automaticamente quando o setup() é inicializada. Clique aqui para saber mais sobre as habilidades de pré-processamento da PyCaret.

3. Compare modelos

  • Para classificação: Precisão, AUC, Recall, Precisão, F1, Kappa
  • Para regressão: MAE, MSE, RMSE, R2, RMSLE, MAPE
compare_models()
Saída a partir de compare_models()

Tabela é classificada pelo valor de precisão accuracy (Mais Alto para Menor) por padrão. Ele pode ser alterado alterando o valor do parâmetro de sort.

4. Criar modelo

adaboost = create_model('ada')

Variável ‘adaboost’ armazena um objeto modelo treinado retornado por create_model função é um estimador de scikit-learn. Atributos originais de um objeto treinado podem ser acessados usando o período ( . ) após variável. Veja o exemplo abaixo.

Atributos do objeto modelo treinado

PyCaret tem mais de 60 algoritmos prontos para uso em código aberto. Clique aqui para ver uma lista completa de estimadores/ modelos disponíveis no PyCaret.

5. Modelo de ajuste e otimização

tuned_adaboost = tune_model('ada')

6. Modelo de Conjunto

# creating a decision tree model
dt = create_model('dt') # ensembling a trained dt model
dt_bagged = ensemble_model(dt)

O método ‘bagging é usado para ensembling por padrão que pode ser alterado para ‘Boosting’ usando o parâmetro de método dentro da função ensemble_model.

PyCaret também fornecem a funcionalidade de lend_models e stack_models para conjunto de vários modelos treinados.

7. Modelo de enredo

# create a model
adaboost = create_model('ada')# AUC plot
plot_model(adaboost, plot = 'auc')# Decision Boundary
plot_model(adaboost, plot = 'boundary')# Precision Recall Curve
plot_model(adaboost, plot = 'pr')# Validation Curve
plot_model(adaboost, plot = 'vc')

Clique aqui para saber mais sobre diferentes visualizações no PyCaret.

Alternativamente, você pode usar evaluate_model função para ver plotagens via interface do usuário dentro do próprio notebook.

evaluate_model(adaboost)

A função plot_model no módulo pycaret.nlp pode ser usado para visualizar modelos de corpo de texto e tópicos semânticos. Clique aqui para saber mais sobre ele.

8. Interpretar modelo

PyCaret implementa explicações SHAP (SHapley Aditivos usando interpret_model função.

# create a model
xgboost = create_model('xgboost')# summary plot
interpret_model(xgboost)# correlation plot
interpret_model(xgboost, plot = 'correlation')

A interpretação de um determinado ponto de dados (também conhecido como argumento de razão) no conjunto de dados do teste pode ser avaliada usando o plot ‘reason’. No exemplo abaixo, estamos verificando a primeira instância em nosso conjunto de dados de teste.

interpret_model(xgboost, plot = 'reason', observation = 0)

9. Previsões do modelo

# create a model
rf = create_model('rf') # predict test / hold-out dataset
rf_holdout_pred = predict_model(rf)

predict_model função também é usada para prever o conjunto de dados invisível. Por enquanto, usaremos o mesmo conjunto de dados que usamos para treinamento como proxy para novos conjuntos de dados invisíveis. Na prática, predict_model função seria usada iterativamente, sempre com um novo conjunto de dados invisível.

predictions = predict_model(rf, data = diabetes)

A função predict_model também pode prever uma cadeia sequencial de modelos que são criados usando stack_models e função create_stacknet.

A função predict_model também pode prever diretamente do modelo hospedado no AWS S3 usando deploy_model função.

10. Implantar modelo

deploy_model(model = rf, model_name = 'rf_aws', platform = 'aws', 
authentication = {'bucket' : 'pycaret-test'})

11. Salvar modelo / salvar experimento

# creating model
adaboost = create_model('ada')# saving model
save_model
(adaboost, model_name = 'ada_for_deployment')

Você também pode salvar todo o experimento que consiste em todas as saídas intermediárias como um arquivo binário.

save_experiment(experiment_name = 'my_first_experiment')

Podemos carregar o modelo salvo e salvar o experimento usando load_model e load_experiment função disponível em todos os módulos do PyCaret.

Obrigado.

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