Таблица содержания
- Что такое PyCaret?
- Зачем использовать PyCaret?
- Предпосылки:
- Начиная
- Пикарет:
- Панды:
- Загрузка набора данных
- Получение набора данных — способ 2
- Обучение и оценка модели
- Тестирование модели
- Прогноз по набору данных
- Сохранение модели
- Загрузить модель
- Заключение
Что такое PyCaret?
PyCaret
— это библиотека машинного обучения с открытым исходным кодом, вдохновленная пакетом CARET
в R
, написанным в Python
. Его цель — использовать минимальный код и меньшие гипотезы, чтобы получить представление в ходе цикла исследования и разработки машинного обучения. С помощью этой библиотеки мы можем быстро и эффективно проводить сквозные эксперименты по машинному обучению.
Зачем использовать PyCaret?
Использование этой библиотеки требует минимального программирования для запуска любого эксперимента по машинному обучению. Мы можем гибко проводить сложные эксперименты по машинному обучению благодаря функциям PyCaret
.
Операции, использующие эту библиотеку, автоматизированы и хранятся в PyCaret Pipeline
, который полностью координируется и предназначен для него. Эта библиотека также позволяет нам быстро перейти от анализа данных к построению и развертыванию модели. Это также помогает автоматизировать различные задачи, такие как изменение категорийных данных или добавление отсутствующих значений, разработка существующих функций или улучшение гиперпараметров в существующих данных моделей.
Мы поэкспериментируем с вариантом использования классификации с PyCaret
в наборе данных «По умолчанию клиента кредитной карты» из Kaggle
, чтобы предсказать, будет ли Customer
по умолчанию или нет. Этот прогноз будет определяться рядом функций, которые мы рассмотрим в этом руководстве.
Предпосылки:
- Блокнот Jupyter или Visual Studio с расширением Jupyter
- Версия Python 3.6+
- Последнюю версию PyCaret и примечания к выпуску можно найти здесь.
Начиная
В качестве первого шага к нашему процессу мы установим необходимые библиотеки для выполнения наших операций, и наши зависимости включают
Пикарет:
Это будет наш главный козырь, который позволит нам использовать ML
конвейеров для сквозного выполнения.
Панды:
Pandas
— это программная библиотека с открытым исходным кодом, созданная на основе языка программирования Python
для анализа, очистки, исследования и управления данными.
Давайте теперь включим эти зависимости с помощью команд pip.
pip install pycaret pandas
На следующем шаге мы импортируем зависимости для выполнения различных операций.
import pandas as pd
from pycaret.classification import *
Загрузка набора данных
Набор данных Credit card
, который мы будем использовать, можно загрузить с here
. Загрузите набор данных в папку, над которой вы работаете.
После завершения загрузки мы можем загрузить набор данных, используя Pandas
.
df = pd.read_csv(UCI_Credit_Card.csv)
Здесь мы назначаем загруженный набор данных переменной с именем df
(фрейм данных), что является общепринятым соглашением об именах, используемым разработчиками. Вы имеете полное право использовать свое собственное имя переменной в соответствии с вашим удобством.
Чтобы убедиться, что набор данных загружен и просмотреть его, мы будем использовать
df.head()
При использовании метода head Python
по умолчанию отображаются пять верхних строк фрейма данных. Он принимает только один параметр — количество строк. Этот параметр позволяет указать количество отображаемых строк.
df.tail()
Здесь df.tail()
выводит детали последних пяти строк
Получение набора данных — способ 2
Мы также можем получить тщательно подобранные наборы данных из PyCaret Data repository
, которые состоят из пятидесяти шести популярных наборов данных для различных вариантов использования, таких как классификация, регрессия, кластеризация, НЛП и т. д. Имейте в виду, что для вашего собственного набора данных вы не можете использовать этот метод. . Вы можете просмотреть список и характеристики этих наборов данных всего двумя строками кода.
from pycaret.datasets import get_data
all_datasets = pycaret.datasets.get_data('index')
6-й показывает наш набор данных Credit card
, который можно загрузить,
dataset_name = 'credit'
data = pycaret.datasets.get_data(dataset_name)
Обучение и оценка модели
Мы будем использовать функцию setup()
для обучения и оценки нашей модели.
PyCaret
автоматизирует многочисленные трудоемкие задачи предварительной обработки, стандартизируя и легко объединяя базовые процедуры подготовки данных в повторяемые рабочие процессы, экономящие время. У пользователей есть возможность автоматизировать очистку, разделить данные на обучающие и тестовые наборы, некоторые аспекты проектирования функций и обучения. Например, путем обработки пропущенных значений одним из доступных методов вменения. Хотя многие из элементов, созданных в ходе этого процесса, не отображаются пользователю четко (например, наборы train
и test
или векторы label
), более опытные специалисты могут получить к ним доступ при необходимости или желании.
clf = setup(data = credit_dataset, target='default', session_id=123)
Приведенный выше код отображает информацию о конвейере предварительной обработки, который был включен при введении в действие setup()
.
Мы также использовали опцию session id = 123
в нашем эксперименте. Наша цель – добиться воспроизводимости. Его не обязательно использовать, но если это не так, вместо него будет создано случайное число.
Теперь все готово для финального шоу, которое является нашей модельной тренировкой.
best_model = compare_models()
Приведенный выше код будет обучать нашу модель, и именно функция compare_models()
делает за нас магию.
Показатели классификации Accuracy
, AUC
, Recall
, Precision
, F1
и Kappa
используются для оценки каждой модели в библиотеке моделей с помощью этой функции. Результаты предоставляют список наиболее эффективных моделей в определенный момент.
В данном случае Ridge Classifier
— наша лучшая модель. В список включены различные алгоритмы обучения. Однако нас интересует только тот алгоритм обучения, который работает лучше всего. Мы отпускаем остальных.
Тестирование модели
predict_model(best_model)
Точность теста, полученная после тестирования модели, составляет 0,8159, что сопоставимо с тем, что мы получили в результатах обучения. Тем не менее, это снижение может быть связано с некоторыми проблемами переобучения, которые необходимо проверить. Эту проблему можно решить, применяя такие методы, как dropout
и early stopping
, тем самым сокращая разрыв между результатами поезда и теста.
Прогноз по набору данных
Далее мы выполним прогноз для набора кредитных данных, который мы запускаем:
prediction = predict_model(best_model, data = credit_dataset) prediction.tail()
Теперь вы можете видеть, что в конце набора данных добавлен новый столбец, который указывает на наш прогноз. Value 1
означает «Верно» — клиент будет по умолчанию, а Value 0
означает «ложь» — клиенты не будут использовать по умолчанию. Мы можем использовать функции head
и tail
по нашему желанию, а для полного предсказания просто удалите функцию head/tail
.
Сохранение модели
Заключительным шагом в этом сквозном конвейере ML
является сохранение модели в нашей локальной системе. Для этого запуска:
save_model(best_model, model_name='ridge-model')
Загрузить модель
Введите код ниже, чтобы загрузить нашу сохраненную модель:
model = load_model('ridge-model')
Вуаля!!! Таким образом, менее чем за двадцать строк кода мы смогли выполнить весь конвейер классификации ML
.
Заключение
PyCaret
определенно станет самым любимым пакетом в экосистеме данных; новые функции и интеграции выпускаются ежедневно. Это экономит много времени, а простота исполнения помогает в значительной степени демократизировать ML Data Science Life Cycle
. Освоение PyCaret
, а также scikit-learn
, pandas
, TensorFlow
, PyTorch
и т. д., безусловно, повысит ценность арсенала каждого ML
разработчика.