Введение в PyCaret
PyCaret — это библиотека машинного обучения с открытым исходным кодом на Python, которая автоматизирует рабочие процессы машинного обучения. Это комплексный инструмент машинного обучения и управления моделями, который экспоненциально ускоряет цикл экспериментов и повышает вашу продуктивность. Это готовая к развертыванию библиотека на Python, что означает, что все шаги, выполняемые в эксперименте ML, могут быть воспроизведены с использованием конвейера, который воспроизводим и гарантирован для производства. Конвейер можно сохранить в формате двоичного файла, который можно передавать из одной среды в другую.
PyCaret — это, по сути, оболочка Python для нескольких библиотек и фреймворков машинного обучения, таких как scikit-learn, XGBoost, LightGBM, CatBoost, spaCy и многих других.
Обзор
PyCaret — это модульная библиотека, разделенная на модули, и каждый модуль представляет собой вариант использования машинного обучения. Ниже приведены существующие в настоящее время модули.
- Контролируемое ОД
– Классификация
– Регрессия - Неконтролируемое машинное обучение
- Кластеризация
- Обнаружение аномалий
- Обработка естественного языка
- Анализ правил ассоциации - Временные ряды (бета)
- Наборы данных
В этом блоге я покажу, как PyCaret использует двоичную классификацию для Набора данных клиентов кредитных карт по умолчанию.
Начиная
PyCaret можно установить с помощью менеджера пакетов Python pip.
pip install pycaret #for full version installation pip install pycaret[full]
Давайте сначала импортируем PyCaret.
import pycaret
В PyCaret есть несколько предварительно загруженных наборов данных, которые мы могли бы использовать.
# loading the dataset from pycaret.datasets import get_data data = get_data('credit')
Теперь, в зависимости от типа эксперимента, над которым мы работаем, мы можем импортировать соответствующие модули.
#for Regression from pycaret.regression import * #for Classification from pycaret.classification import * #for Clustering from pycaret.clustering import * #for Anomaly Detection from pycaret.anomaly import * #for NLP from pycaret.nlp import * #for association rule mining from pycaret.arules import *
Теперь следующий шаг — инициализация установки. Это необходимо сделать перед любым экспериментом по машинному обучению.
model = setup(data = dataframe_name, target = 'target_variable')
Итак, для нашей модели у нас будет следующий код для настройки.
# init setup from pycaret.classification import * s = setup(data = data, target = ‘default’, session_id=123)
Сравнить модели
Эта функция сравнивает каждую модель, представленную в PyCaret, в зависимости от постановки задачи.
Обучение каждой модели выполняется с использованием гиперпараметров по умолчанию, а показатели производительности оцениваются с помощью перекрестной проверки.
Результатом функции является таблица, показывающая средний балл всех моделей по складкам. Количество складок можно определить с помощью параметров fold в функции compare_models. По умолчанию для кратности установлено значение 10. Таблица сортируется (от большего к меньшему) по выбранному показателю и может быть определена с помощью параметра sort. По умолчанию таблица отсортированы по точности для экспериментов по классификации и R2 для экспериментов по регрессии. Некоторые модели исключены для сравнения из-за их более длительного времени работы. Чтобы обойти это ограничение, для параметра turbo можно установить значение False.
Чтобы выбрать первые n номеров модели, включите гиперпараметр n_select в функцию compare_models. Мы даже можем отсортировать его по метрикам.
best_model = compare_models(n_select = n, sort ‘ AUC’)
На данный момент мы продолжим с параметрами по умолчанию и посмотрим на эффективность различных моделей классификации в нашем наборе данных.
#get the model performances best_model = compare_models()
Создайте и настройте модель
Как следует из названия, функция create_model
обучает и оценивает модель с помощью перекрестной проверки, которую можно установить с помощью параметра fold
. На выходе распечатывается оценочная сетка, которая показывает точность, AUC, полноту, точность, F1, каппа и MCC в кратном порядке.
Для демонстрационной цели мы просто продолжим и создадим модель случайного классификатора леса.
#create model rf = create_model('rf')
Когда модель создается с помощью функции create_model
, она использует гиперпараметры по умолчанию для обучения модели. Для настройки гиперпараметров используется функция tune_model
. Эта функция автоматически настраивает гиперпараметры модели, используя случайный поиск по сетке в заранее определенном пространстве поиска. Мы также можем использовать пользовательскую сетку поиска, передав параметр custom_grid
в функцию tune_model
.
#tune model tuned_rf = tune_model(rf)
Модель участка
PyCaret также имеет функцию plot_model
, которую можно использовать для анализа производительности по различным аспектам, таким как AUC, матрица путаницы, граница решения и т. д. Она принимает объект обученной модели в качестве аргумента и возвращает соответствующий график.
# check the residuals of trained model plot_model(best_model, plot = 'auc')
# check the residuals of trained model plot_model(best_model, plot = 'pr')
# check the residuals of trained model plot_model(best_model, plot = 'feature')
# check feature importance plot_model(best_model, plot = 'confusion_matrix')
Завершить и сохранить пайплайн
Давайте теперь доработаем лучшую модель, т. е. обучим лучшую модель на всем наборе данных, включая тестовый набор, а затем сохраним конвейер как файл рассола.
# finalize the model final_best = finalize_model(best_model) # save model to disk save_model(final_best, 'Binary Classification Model PyCaret')
save_model
сохранит весь конвейер (включая модель) в виде файла рассола на локальном диске. По умолчанию он сохранит файл в той же папке, что и ваш блокнот или скрипт, но вы также можете указать полный путь, если хотите:
save_model(final_best, 'path/Binary-Classification-Model-PyCaret'
На этом мы подошли к концу этого вводного блога о PyCaret. Мы рассмотрели весь конвейер машинного обучения, начиная с приема данных, предварительной обработки, модели обучения, настройки гиперпараметров, анализа графиков и сохранения модели для последующего использования.
Надеюсь, поможет!