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

Pycaret - это библиотека Python с открытым исходным кодом, которая является оболочкой для нескольких других библиотек машинного обучения и API, таких как sklearn, SpaCy, XGBoost и т. Д. Она направлена ​​на сокращение времени и усилий, необходимых для подготовки данных к анализу и нахождению результата. модели машинного обучения. Его первая версия была выпущена недавно, и основным разработчиком этой библиотеки является Моэз Али. Я использовал эту библиотеку в одном из своих проектов и очень впечатлен, поэтому решил написать эту статью. Я бы продемонстрировал большинство основных функций регрессии PyCaret здесь, в этой статье.

Установка PyCaret:

Для локальной записной книжки Jupyter:

!pip install pycaret or !pip3 install pycaret

Примечание: я предполагаю, что у вас есть базовые знания о регрессии для остальной части статьи.

Давайте начнем:

Данные: данные о сельском хозяйстве Швеции со следующими столбцами:

импортировать панд как pd

Нам понадобятся панды для импорта нашего файла данных.

df = pd.read_csv (‘Agric_data.csv’)

Это столбец этого набора данных, чтобы вы могли получить представление о диапазоне данных в каждом столбце. Теперь вы импортируете модуль регрессии Pycaret, как показано ниже:

из pycaret.regression import *

После этого используйте функцию setup (), ее нужно вызвать, прежде чем вы захотите что-либо делать с Pycaret. Эта функция инициализирует среду внутри Pycaret и подготавливает данные для моделирования и развертывания. Вы можете запустить его, как показано ниже:

caret_df = setup (data = df, target = ‘kg_per_hectare’, session_id = 55 ,ategorical_features = [‘county’], ignore_features = [‘total_production’])

Внутри функции setup () обязательными являются только два параметра, а именно «data», который принимает имя фрейма данных, и «target», принимающий имя целевого столбца.

Session_id может быть любым числом, и по какой-то причине, если вы столкнулись с ошибкой на этом шаге, изменение session_id поможет.

Category_features также является необязательным, поскольку Pycaret самостоятельно определяет типы данных, но если вы хотите явно объявить столбец как категориальный, вставьте его в список, как показано в приведенном выше коде.

ignore_features принимает аргумент списка, чтобы указать среде setup () не включать эти столбцы и, следовательно, игнорировать их из дальнейшего анализа.

После запуска этого оператора вам будут представлены функции с обнаруженными ими типами данных. Если они текущие, нажмите Enter в своем блокноте Jupiter, иначе введите «выйти» в пустом поле в конце ячейки.

Для меня это было правильно, поэтому я нажал клавишу «Enter». После этого мы получим дальнейший анализ:

Это некоторые из этапов предварительной обработки, которые учитывает Pycaret. Он запрашивает «False», если эти шаги предварительной обработки не были выполнены. Некоторые из примеров - PCA, Нормализация, Биннинг, кодирование одним движением и т. Д. Он также сообщает вам, есть ли какое-то пропущенное значение в наборе данных.

Два слова:

Теперь мы будем использовать «два слова», написанные в названии, для сравнения результатов 20 регрессионных моделей. Используйте следующий код:

compare_models ()

Эта функция перечислит двадцать регрессионных моделей со значениями MAE, MSE, RMSE, R2, RMSLE, MAPE в порядке убывания R2 (R²). Эта функция предполагает, что K-кратная перекрестная проверка равна 10. Результаты, которые вы видите, являются средними для 10 экспериментов с различными наборами тестов. Вы можете явно определить значение k-кратности, используя «параметр свертки»: compare_models (fold = 10)

Это даст нам следующие результаты:

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

Создать индивидуальную модель:

Чтобы посмотреть на одну модель, скажем, «случайный лес», используйте функцию create_model (). Вам нужно использовать его с некоторыми из ваших самых эффективных моделей в соответствии с вашими критериями. Используйте его следующим образом:

forest_reg = create_model («RF»)

«Rf» обозначает случайный лес. Используйте следующий список, чтобы использовать create_model () с другими регрессорами по вашему выбору:

Estimator                     Abbreviated String
Linear Regression             'lr'                   
Lasso Regression              'lasso'            
Ridge Regression              'ridge'                
Elastic Net                   'en'                   
Least Angle Regression        'lar'                  
Lasso Least Angle Regression  'llar'                 
Orthogonal Matching Pursuit   'omp'                  
Bayesian Ridge                'br'                   
Automatic Relevance Determ.   'ard'                  
Passive Aggressive Regressor  'par'                  
Random Sample Consensus       'ransac'               
TheilSen Regressor            'tr'                   
Huber Regressor               'huber'                
Kernel Ridge                  'kr'                   
Support Vector Machine        'svm'               
K Neighbors Regressor         'knn'                  
Decision Tree                 'dt'                   
Random Forest                 'rf'                   
Extra Trees Regressor         'et'                   
AdaBoost Regressor            'ada'                  
Gradient Boosting             'gbr'                  
Multi Level Perceptron        'mlp'                  
Extreme Gradient Boosting     'xgboost'              
Light Gradient Boosting       'lightgbm'             
CatBoost Regressor            'catboost' 

Настройте гиперпараметр:

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

tuned_freg = tune_model (‘rf’)
печать (tuned_freg)

Визуализируйте свою модель:

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

оценить_модель (настроенный_рф)

Используйте серые кнопки вверху для просмотра различных графиков. Обратите внимание, что не все графики доступны для всех оценщиков. Например, важность функции недоступна для оценщика линейной регрессии. Ниже приведен остаточный график, который я получил после нажатия серой кнопки с «остаточным графиком»:

Точно так же вы можете проверить и другие графики. Лично мне график важности характеристик очень помог мне доработать мою лучшую модель.

Посмотрите на важность функции (SHAP):

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

интерпретировать_модель (настроенный_рф)

Хороший! значения county_9, county_10 и т. д. являются фиктивными переменными, создаваемыми PyCaret на этапе setup () с помощью кодирования onehot в столбце "county". Я проанализировал и другие модели, но случайный лес является лучшим, потому что он использует соответствующую функцию. Следовательно, этот график вместе с графиком важности функций очень полезен для выбора правильной модели.

Резюме:

Во всей этой статье мы никогда не видели сразу двух строк кода, написанных одновременно, и мы уже:

Получил сводку от 22 оценщиков.

Настроили гиперпараметры

Постройте 8 разных графиков в интерактивном режиме

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

Оставайтесь благословенными, оставайтесь здоровыми!