Автор|ЛАКШАЙ АРОРА Компилировать|ВКонтакте Источник | Аналитика Видья
Обзор
-
PyCaret — очень полезная библиотека Python для выполнения нескольких задач машинного обучения за короткий промежуток времени.
-
Узнайте, как создавать сложные модели машинного обучения с помощью нескольких строк кода с использованием PyCaret.
вводить
Первая созданная мной модель машинного обучения представляла собой довольно громоздкий блок кода. Я до сих пор помню, как создавал ансамблевую модель, для которой требовалось много строк кода, и действительно нужен был мастер, чтобы распутать этот беспорядок!
Когда дело доходит до создания интерпретируемых моделей машинного обучения, особенно в промышленности, написание эффективного кода является ключом к успеху. Поэтому я настоятельно рекомендую использовать библиотеку PyCaret.
Я бы хотел, чтобы PyCaret появился в мои новые дни машинного обучения! Это очень гибкая и полезная библиотека, на которую я стал полагаться в последние месяцы. Я твердо верю, что любой, кто стремится стать профессионалом в области науки о данных или аналитике, получит большую пользу от использования PyCaret.
Мы увидим, что такое PyCaret, в том числе как установить его на свой компьютер, а затем мы углубимся в то, как использовать PyCaret для создания интерпретируемых моделей машинного обучения, включая ансамблевые модели.
содержание
-
Что такое Пикарет? Зачем это использовать?
-
Установите Пикарет
-
Ознакомьтесь с PyCaret
-
Обучите нашу модель машинного обучения с помощью PyCaret
-
Построение ансамблевой модели с помощью PyCaret
-
Аналитическая модель
-
делать предсказания
-
Сохраните и загрузите модель
Что такое Пикарет? Зачем это использовать?
PyCaret — это библиотека машинного обучения с открытым исходным кодом на Python, которая помогает вам от подготовки данных до развертывания модели. Он прост в использовании, и вы можете выполнить практически любую задачу проекта по науке о данных с помощью одной строки кода.
Я нахожу PyCaret очень удобным. Вот две основные причины:
-
PyCaret — это кодовая база, которая делает вас более продуктивным. Вы можете тратить меньше времени на программирование и больше экспериментировать
-
Это простая в использовании библиотека машинного обучения, которая поможет вам проводить комплексные эксперименты по машинному обучению, будь то ввод пропущенных значений, кодирование категорийных данных, разработка функций, настройка гиперпараметров или построение ансамблевых моделей.
Установите Пикарет
Это самое прямое. Первую стабильную версию PyCaret v1.0.0 можно установить напрямую с помощью pip. Просто запустите следующую команду в Jupyter Notebook, чтобы начать:
!pip3 install pycaret
Ознакомьтесь с PyCaret
Постановка задачи и набор данных
В этой статье мы решим задачу классификации. У нас есть набор банковских данных, который включает возраст клиента, опыт, доход, образование и наличие у него кредитной карты. Банк хочет создать модель машинного обучения, которая поможет им выявлять потенциальных клиентов, которые с большей вероятностью купят личный кредит.
Набор данных имеет 5000 строк, мы зарезервировали 4000 строк для обучения модели и оставшиеся 1000 строк для тестирования модели. Вы можете найти полный код и набор данных, использованные в этой статье, здесь.
Начнем с чтения набора данных с помощью библиотеки Pandas:
# 导入panda以读取CSV文件
import pandas as pd
# 读取数据
data_classification = pd.read_csv('datasets/loan_train_data.csv')
# 查看数据的顶行
data_classification.head()
Первым шагом перед запуском проекта машинного обучения в PyCaret является настройка среды. Это всего лишь двухэтапный процесс:
- модуль импорта: В зависимости от типа проблемы, которую вы хотите решить, вам сначала нужно импортировать модуль. В первой версии PyCaret доступно 6 различных модулей: Регрессия, Классификация, Кластеризация, Обработка естественного языка (NLP), Обнаружение аномалий и Правила анализа ассоциаций. В этой статье мы будем решать задачу классификации, поэтому импортируем модуль классификации
- Инициализировать настройки: на этом этапе PyCaret выполняет некоторые основные задачи предварительной обработки, такие как игнорирование столбцов id и Date, заполнение пропущенных значений, кодирование категориальных переменных и разделение набора данных на обучающий тест на оставшихся этапах моделирования. Когда вы запускаете функцию настройки, она сначала подтвердит тип данных, а затем, если вы нажмете Enter, она создаст среду.
# 导入分类模块
from pycaret import classification
# 设置环境
classification_setup = classification.setup(data= data_classification, target='Personal Loan')
Мы все готовы исследовать PyCaret!
Обучите нашу модель машинного обучения с помощью PyCaret
Обучите модель
Обучить модель с помощью PyCaret очень просто. Вам просто нужно использовать функцию create_model, которая принимает только один параметр (модель сокращенно строка).
Здесь мы сначала обучим модель дерева решений, мы должны пройти "dt", которая возвращает таблицу с k-кратными показателями перекрестной проверки для общих показателей оценки, используемых для моделей классификации.
Ниже приведены метрики оценки, используемые для контролируемого обучения:
- Классификация: Точность, AUC, отзыв, точность, F1, каппа
- возвращение: MAE, MSE, RMSE, R2, RMSLE, MAPE
Вы можете проверить страницу документации PyCaret для получения дополнительных сокращений.
# 建立决策树模型
classification_dt = classification.create_model('dt')
Аналогичным образом, чтобы обучить модель XGBoost, просто передайте строку «XGBoost»:
# 构建xgboost模型
classification_xgb = classification.create_model('xgboost')
Настройка гиперпараметров
Мы можем настроить гиперпараметры модели машинного обучения с помощью функции tune_model, которая принимает один параметр — строку аббревиатуры модели (то же самое, что мы использовали в функции create_model).
PyCaret дает нам большую гибкость. Например, мы можем определить количество сгибов, используя параметр fold в функции tune_model. Или мы можем изменить количество итераций, используя параметр n_iter. Увеличение параметра nòiter значительно увеличит время тренировки, обеспечивая лучшую производительность.
Давайте обучим модель CatBoost:
# 构建和调优catboost模型
tune_catboost = classification.tune_model('catboost')
Построение ансамблевой модели с помощью PyCaret
Модели ансамбля в машинном обучении объединяют решения из нескольких моделей для повышения общей производительности.
В PyCaret мы можем создавать ансамблевые модели пакетирования, повышения, смешивания и стекирования с помощью одной строки кода.
Давайте обучим модель ансамбля здесь. Он также вернет таблицу с k-кратными показателями перекрестной проверки для общих показателей оценки:
# boosting
boosting = classification.ensemble_model(classification_dt, method= 'Boosting')
Еще одним очень известным методом синтеза является смешивание. Вам просто нужно передать модель, созданную в списке функций blend_models.
# blending
blender = classification.blend_models(estimator_list=[classification_dt, classification_xgb])
это все! Вы можете выполнить большую часть работы всего одной строкой кода в PyCaret.
Сравнить модели
Это еще одна полезная функция библиотеки PyCaret. Если вы не хотите пробовать разные модели одну за другой, вы можете использовать функцию сравнения моделей, которая будет обучать и сравнивать общую оценочную метрику для всех доступных моделей.
Эта функция есть только в модулях pycaret.classification и pycaret.regression.
# 比较不同分类模型的性能
classification.compare_models()
Аналитическая модель
Теперь, после обучения модели, следующим шагом будет анализ результатов. Это особенно полезно с точки зрения бизнеса, верно? Анализировать модели в PyCaret также просто. С помощью всего одной строки кода вы можете сделать следующее:
- Постройте результаты модели: Анализ производительности модели и запись в PyCaret.plot_modelТак же просто. Границы решений, кривые точности, кривые проверки, остаточные графики и т. д. могут быть построены. Кроме того, для кластерной модели могут быть построены локтевые и контурные графики. Для текстовых данных могут быть построены графики облаков слов, графики биграмм, графики частоты триграмм и т. д.
- Интерпретируйте результаты: интерпретация результатов модели помогает отладить модель путем анализа важных характеристик. Это важный шаг в проекте машинного обучения промышленного масштаба. В PyCaret мы можем интерпретировать модель со значениями SHAP и коррелограммами в одной строке кода.
Постройте результаты модели
Результаты модели можно распечатать, указав объект модели в качестве параметра и желаемый тип печати. Постройте кривую AUC-ROC и границу решения:
# AUC-ROC 图
classification.plot_model(classification_dt, plot = 'auc')
# 决策边界
classification.plot_model(classification_dt, plot = 'boundary')
Постройте кривые точного отзыва и проверки для обученной модели:
# Precision Recall 曲线
classification.plot_model(classification_dt, plot = 'pr')
# 验证曲线
classification.plot_model(classification_dt, plot = 'vc')
Оцените нашу модель
Если вы не хотите рисовать все эти визуализации по отдельности, в библиотеке PyCaret есть еще одна замечательная функция —evaluate_model. В этой функции вы просто передаете объект модели, и PyCaret создаст интерактивное окно для просмотра и анализа модели всеми возможными способами:
# 评估模型
classification.evaluate_model(classification_dt)
Объясните нашу модель
В большинстве проектов машинного обучения интерпретация сложных моделей очень важна. Это помогает отлаживать модель, анализируя, что модель считает важным. В PyCaret этот шаг так же прост, как написание объяснительной модели для получения значений Шепли.
# 解释模型:SHAP
classification.interpret_model(classification_xgb)
Попробуем построить зависимость:
# 解释模型:相关性
classification.interpret_model(classification_xgb,plot='correlation')
делать предсказания
Наконец, мы будем делать прогнозы на невидимых данных. Для этого нам просто нужно передать модель, которую мы будем использовать для прогнозирования и набора данных. Убедитесь, что он имеет тот же формат, который мы указали ранее при настройке среды.
PyCaret строит конвейер со всеми шагами и передает невидимые данные в конвейер и выдает результат.
Давайте посмотрим, как предсказать метки данных:
# 读取测试数据
test_data_classification = pd.read_csv('datasets/loan_test_data.csv')
# 做出预测
predictions = classification.predict_model(classification_dt, data=test_data_classification)
# 查看预测
predictions
Сохраните и загрузите модель
Теперь, когда модель построена и протестирована, мы можем сохранить ее в файле pickle с помощью функции save_model. Передайте модель и имя файла для сохранения, т.е.:
# 保存模型
classification.save_model(classification_dt, 'decision_tree_1')
Мы можем загрузить эту модель позже и предсказать метки для данных:
# 加载模型
dt_model = classification.load_model(model_name='decision_tree_1')
конец
Его действительно легко использовать. Я лично нахожу PyCaret очень полезным для быстрого получения результатов в критических по времени ситуациях.
Практикуйтесь в использовании его на различных типах наборов данных — чем больше вы извлечете из него максимум пользы, тем больше вы сможете понять его полезность! Он даже поддерживает развертывание модели в облачных сервисах, таких как AWS, с помощью всего одной строки кода.
Оригинальная ссылка:Woohoo.Со слов аналитиков vi.com/blog/2020/0…
Добро пожаловать на сайт блога Panchuang AI:panchuang.net/
sklearn машинное обучение китайские официальные документы:sklearn123.com/
Добро пожаловать на станцию сводки ресурсов блога Panchuang:docs.panchuang.net/