Мнение

Каждый специалист по данным должен использовать PyCaret

Вот почему ... универсальный магазин для машинного обучения

Оглавление

  1. Вступление
  2. Импорт библиотек и чтение данных
  3. Установка параметров модели
  4. Сравнение алгоритмов машинного обучения
  5. Создание, интерпретация и прогнозирование окончательной модели
  6. Резюме
  7. использованная литература

Вступление

В то время как в прошлом специалистам по обработке данных приходилось использовать довольно много кода для тестирования, сравнения и оценки алгоритмов машинного обучения, недавно в Python появились библиотеки, которые значительно сокращают эту работу. Одна из таких библиотек - PyCaret [2] от Моэза Али, библиотека с открытым исходным кодом, требующая небольшого количества кода, которая в конечном итоге позволяет вам быстро подготовить данные для развертывания вашей окончательной модели за считанные минуты. Есть несколько преимуществ, присущих функциям PyCaret. Некоторые из этих преимуществ включают простоту использования, эффективность и изучение новых алгоритмов машинного обучения. В дополнение к этим дополнительным преимуществам платы, есть также около четырех основных шагов, которым следуют все модели PyCaret, которые служат простыми способами выполнения процесса, который в противном случае мог бы занять больше времени без этой библиотеки. С учетом вышесказанного, я буду обсуждать четыре шага вместе с их соответствующими преимуществами и преимуществами ниже.

Импорт библиотек и чтение данных

Как и в большинстве проектов по науке о данных, вы импортируете соответствующие библиотеки и прочитаете свои данные. Конечно, мы будем использовать основную библиотеку PyCaret, а также другую популярную библиотеку.

# import libraries
from pycaret.regression import *
import pandas as pd

В этом коде вы просто импортируете библиотеку PyCaret и модуль регрессии, а также панды для чтения ваших данных. Эти несколько строк кода являются началом того, что большая часть процесса обработки данных находится в ваших руках с точки зрения кода Python.

# read in your data
data = pd.read_csv(‘file location of your data on your computer.csv’)

Другие модули, которые вы можете импортировать, включают классификацию, кластеризацию, обнаружение аномалий, обработку естественного языка и анализ ассоциативных правил. Как видите, эта библиотека охватывает большинство типов тем по науке о данных и конкретных алгоритмов машинного обучения.

В этом модуле регрессии вы можете сравнить следующие алгоритмы:

Linear Regression
Lasso Regression
Ridge Regression
Elastic Net
Orthogonal Matching Pursuit
Bayesian Ridge
Gradient Boosting Regressor
Extreme Gradient Boosting
Random Forest Regressor
Decision Tree Regressor
CatBoost Regressor
Light Gradient Boosting Machine
Extra Trees Regressor
AdaBoost Regressor
K Neighbors Regressor
Lasso Least Angle Regression
Huber Regressor
Passive Aggressive Regressor
Least Angle Regression

Преимущества

Преимущество импорта этого модуля - впечатляющее количество опций без необходимости беспокоиться об отдельном импорте каждого алгоритма, один за другим, что в конечном итоге экономит время и удаляет ненужный код.

Установка параметров модели

Теперь, когда мы знаем, какой тип алгоритма мы используем, мы можем запустить функцию настройки PyCaret. Эта функция включает в себя такие задачи, как определение типа данных, очистка и предварительная обработка данных, выборка данных, разделение на обучение и тест и назначение идентификатора сеанса для воспроизводимости.

  • Определение типа данных

Функция настройки может позволить вам включить ваши данные и цель, что является наиболее фундаментальным аспектом науки о данных и алгоритмов машинного обучения. Примеры типов данных включают categorical, numeric и ваш label. Вы можете просто проверить и подтвердить типы данных ваших столбцов / функций, нажав клавишу ВВОД после запуска настройки.

  • Очистка и предварительная обработка данных

На этом этапе автоматически применяется вменение пропущенных значений, а также категориальное кодирование. Для числовых функций среднее значение заполняется для отсутствующих значений, тогда как для категориальных функций отсутствующие значения заполняются в соответствии с режимом этой функции.

- дополнительная предварительная обработка включает порядковое кодирование, кардинальное кодирование, исправление дисбалансов, нормализацию, функции преобразования

- для проектирования функций есть целевое преобразование, функции групп взаимодействия функций, группирование числовых функций и комбинирование функций редких уровней.

  • Выборка данных

Эта функция совершенно уникальна среди библиотек, которые работают над улучшением процессов обработки данных. Если размер выборки превышает 25000, будет построена линейная модель, чтобы показать, как размер влияет на производительность модели.

  • Тренировка и тестирование

Обычную функцию PyCaret включает на этапе настройки. По умолчанию коэффициент разделения составляет 70:30.

  • Идентификатор сеанса

Другое слово или фраза для этой функции - случайное начальное или иногда случайное состояние. Он включен, поэтому, если используется другая среда или вы работаете над этим проектом в будущем, вы можете воспроизвести свои результаты.

# setup your regression parameters 
regression = setup(data = data, 
 target = 'what you are trying to predict’,
 session_id = 200, 
 )

Как видите, приведенный выше код прост, и вы уже почти наполовину закончили свое моделирование науки о данных, уже имея всего лишь две части кода.

Преимущества

  • Основное преимущество заключается в том, как вы можете увидеть влияние размера выборки данных на общие показатели, такие как точность, AUC, отзыв, точность и F1.
  • Автоматический вывод типов данных без необходимости преобразования (иногда)
  • Вменение отсутствующих значений как для числовых, так и для категориальных признаков

Сравнение алгоритмов машинного обучения

В этой функции PyCaret действительно сияет, позволяя сравнивать несколько алгоритмов машинного обучения, в том числе те, о которых вы, возможно, еще не слышали. Некоторые из них были упомянуты выше в первом разделе, и вы можете рассчитывать на сравнение подобных алгоритмов - параллельно с показателями точности и ошибок, выделяя лучшие алгоритмы. Вот некоторые из этих показателей:

Классификационные сравнения

  • Точность, AUC, отзыв, точность, F1, а также Каппа и MCC

Регрессионные сравнения

  • MAE, MSE, RMSE, R2, RMSLE, MAPE

Некоторые важные особенности функции compare_models(): n_select, sort, include и exlucde.

  • n_select: позволяет возвращать только лучшие модели на основе такого показателя, как точность.
  • sort: позволяет сортировать по вашему показателю, например MAE.
  • включить: используйте для сравнения только определенные алгоритмы - если вы знаете, что некоторые алгоритмы занимают больше времени и не так полезны, вы можете использовать следующий параметр ниже
  • исключить: удалите ненужные или более длинные обучающие модели из анализа.
# compare models
compare_models(n_select = 3, sort = 'MAE')

Выше приведен пример блока кода, показывающий, как применить эти параметры к функции сравнения моделей.

Преимущества

  • Сократите время на изоляцию или удаление определенных алгоритмов, которые вам известны (из предыдущего опыта или из выборки ваших данных) - поскольку сравнение, скажем, 20 алгоритмов может занять часы, в зависимости от того, какие из них включены.
  • Простая сортировка для сравнения (PyCaret должен автоматически выделять лучшую модель)

Создание, интерпретация и прогнозирование окончательной модели

В последней части процесса PyCaret вы можете создать модель, которая была лучшей после того, как вы увидели сравнение нескольких моделей (для точности, времени на обучение - это в конечном итоге зависит от вас, что _9 _ ).

Некоторые критические параметры функции создания модели:

  • складывать
  • перекрестная проверка
  • Learning_rate
  • Максимальная глубина
  • и т.п.

Имена модели или машинного обучения упрощены, например, дерево решений - это 'dt', поэтому в этом случае давайте представим, что мы выбираем это для нашего создания, прогнозирования и интерпретации нашей окончательной модели. .

При интерпретации модели вы можете использовать множество функций, в том числе:

  • Сводный график
  • График корреляции
  • График причин на уровне наблюдения

Эти графики созданы на основе популярной библиотеки SHAP (которая, на мой взгляд, является лучшей библиотекой объяснения функций)

# create a model
dectrees = create_model('dt')
# interpreting model
interpret_model(dectrees)
# predict on test set
predictions = predict_model(dectrees)

Преимущества

  • Вы легко можете выбрать, какую модель хотите создать.
  • Вы можете легко получить доступ к функциям SHAP и соответствующим графикам

Всего в нескольких строках кода вы можете выбрать модель, которую хотите использовать, интерпретировать функции и результаты и, наконец, сделать прогноз на основе некоторых тестовых данных. Вы даже можете развернуть модель с PyCaret с AWS. Также есть полезная интеграция с AutoML и MLFlow.

Резюме

Как видите, каждый основной шаг PyCaret имеет соответствующие преимущества. Хотя эта статья длинная для объяснения. Код, который я использовал, был очень минимальным для сравнения нескольких моделей и прогнозирования на основе тестовых данных.

Подводя итог, мы рассмотрели несколько шагов, в том числе:

  • Импорт библиотек и чтение данных
  • Установка параметров модели
  • Сравнение алгоритмов машинного обучения
  • Создание, интерпретация и прогнозирование окончательной модели

Те же шаги сформулированы в приведенном ниже коде:

# import libraries
from pycaret.regression import *
import pandas as pd
# read in your data
spotify = pd.read_csv(‘file location of your data on your computer.csv’)
# setup your regression parameters
regression = setup(data = data, 
 target = 'what you are trying to predict’,
 session_id = 200, 
 )
# compare models
compare_models()
# create a model
dectrees = create_model('dt')
# predict on test set
predictions = predict_model(dectrees)
# interpreting model
interpret_model(dectrees)

Некоторые другие полезные функции (поскольку я не охватил все аспекты PyCaret), включают, помимо прочего, удаление мультиколлинеарности, принципиальный компетентный анализ, игнорирование низкой дисперсии и удаление выбросов.

Надеюсь, вам понравилась эта статья о библиотеке PyCaret, которую все должны знать. А теперь я задам вам несколько вопросов. Вы использовали эту библиотеку раньше - почему или почему нет? Ты слышал об этом? Вам нравится процесс науки о данных в более ручном, но, возможно, более конкретном смысле, без библиотек, которые являются скорее универсальным магазином? Какие еще преимущества вы испытали от использования этой мощной библиотеки для науки о данных и машинного обучения? Спасибо, что прочитали, я ценю это!

Не стесняйтесь проверить мой профиль и другие статьи, Мэтт Пшибила, , а также свяжитесь со мной в LinkedIn.

Я не связан ни с одной из упомянутых компаний.

использованная литература

[1] Фото Пабло Арройо на Unsplash, (2021 г.)

[2] Моэз Али, Домашняя страница PyCaret, (2021 г.)

[3] Фото NASA на Unsplash, (2015)

[4] Фото Джошуа Арагон на Unsplash, (2019)

[5] М.Прибыла, Скриншот сравнения моделей, (2021 г.)

[6] М.Прибыла, Пример снимка экрана с графиком интерпретации SHAP, (2021 г.)