Работа PyCaret

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

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

Давайте погрузимся в работу PyCaret.

1. Установка:

Установка PyCaret очень проста. Это как и любая другая библиотека Python. Его можно установить, выполнив следующую команду в командной строке:

pip install pycaret

Если вы используете Google Collab, PyCaret можно установить, используя:

!pip install pycaret

Установка PyCaret автоматически установит для вас все следующие зависимости.

Вам не нужно беспокоиться, если вы не знаете об этих зависимостях, поскольку PyCaret работает с ними.

После того, как вы установили PyCaret, вы можете импортировать его в свой блокнот jupyter, используя: import pycaret

import pycaret

2. Подготовка данных

После импорта PyCaret мы должны подготовить данные для построения наших моделей. Мы можем загрузить данные двумя способами:

1. Фрейм данных Pandas

2. Данные из репозитория PyCaret

Давайте сначала обсудим, как данные могут быть загружены с помощью фрейма данных Pandas. Pycaret поддерживает фреймворк pandas, и данные можно легко загрузить, используя read_csv с путем к файлу.

import pandas as pd
data = pd.read_csv("data/train.csv")
data.head()

Аналогичным образом мы можем загрузить все другие типы данных, поддерживаемые пандами.

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

from pycaret.datasets import get_data
nba = get_data('nba')

3. Настройка среды

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

PyCaret поддерживает следующие 6 модулей.

Основная настройка среды Pycaret заключается в функции с именем setup ().

Функция setup () запускает среду и конвейер для обработки данных для моделирования и развертывания. Эта функция должна быть запущена перед выполнением других функций в PyCaret.

Существует около 50 параметров, которые необходимо передать в функцию setup (), но нам не о чем беспокоиться, поскольку большинство параметров установлены по умолчанию и являются необязательными. Необходимо указать только два обязательных параметра, и это фрейм данных {массивная разреженная матрица} и целевой столбец.

Функция setup () автоматически выполняет предварительную обработку данных и выборку данных в фоновом режиме. Он работает с параметрами по умолчанию, но эти параметры могут быть изменены по желанию.

В нашем примере мы берем набор данных с именем «nba», где целевая переменная - «TARGET_5Yrs», и это проблема двоичной классификации. Следовательно, мы импортируем модуль классификации, используя:

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs')

После выполнения указанной выше команды ваш набор данных будет настроен как модель классификации, и вы увидите выходное сообщение о том, что «установка успешно завершена!», и вы увидите набор параметров вместе с их Описание и Значение, соответствующее ему.

Давайте теперь рассмотрим функциональность функции setup ():

Функция setup () выполняет предварительную обработку данных во входном фрейме данных. В любой ML-модели предварительная обработка данных играет жизненно важную роль в построении ML-модели. Итак, в функции setup () PyCaret подготавливает данные с более чем 20 функциями для машинного обучения. Конвейер машинного обучения построен на основе параметров, определенных в функции setup (). Теперь я подробно объясню этапы предварительной обработки, связанные с функцией setup (). Не паникуйте, если вы не знаете об этом, поскольку наш друг PyCaret делает это за нас.

Функции предварительной обработки, которые PyCaret выполняет за вас:

- Выборка и разделение

- Масштабирование и преобразование

- Подготовка данных

- Разработка функций

- Без присмотра

Позвольте мне подробно рассказать об этапах предварительной обработки, которые может выполнять PyCaret.

  • Выборка и разделение

(i) Обучающий тестовый сплит:

Любой набор данных в машинном обучении делится на набор данных для обучения и тестирования. Это сделано потому, что важно знать, как работает модель машинного обучения, когда предоставляются невидимые данные. В PyCaret 70% данных принадлежит набору обучающих данных, а 30% данных по умолчанию принадлежит набору данных тестирования.

from pycaret.classification import *
reg1 = setup(data = nba, target = 'TARGET_5Yrs')

Выход:

Однако размеры этих наборов данных можно изменить, просто передав параметр train_size в функцию.

Параметр: train_size

from pycaret.classification import *
reg1 = setup(data = nba, target = 'TARGET_5Yrs', train_size = 0.6)

Данные после разделения (при split = 60%):

Выход:

(ii) Выборка:

Если выборки / точки данных в наборе данных велики, то есть если они превышают 25000 выборок, тогда выборка выполняется автоматически PyCaret. Строится базовый оценщик с различными размерами выборки и строится график, показывающий показатели производительности для каждой выборки. Затем в текстовое поле можно ввести желаемый размер выборки. Выборка - это логический параметр, значение по умолчанию - True.

Пример выборки:

from pycaret.datasets import get_data
income = get_data('income')
from pycaret.classification import *
model = setup(data = income, target = 'income >50K')

Эта функция доступна только в модулях pycaret.classification и pycaret.regression.

  • Подготовка данных

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

(i) Вменение отсутствующего значения:

Отсутствующие записи в данных очень распространены, и эта проблема не может быть решена с помощью алгоритмов машинного обучения по умолчанию. PyCaret автоматически вменяет отсутствующие значения. Метод вменения по умолчанию, используемый для числовых признаков, - «среднее значение», а значение по умолчанию, используемое для категориальных признаков, - «Постоянное». Названия параметров в функции setup ():

Параметры:

numeric_imputation: строка, по умолчанию = «среднее»

category_imputation: строка, по умолчанию = «константа»

Эти параметры можно изменить в зависимости от проблемы, просто указав параметр в функции setup ().

#import the hepatitis dataset from PyCaret repository
from pycaret.datasets import get_data
nba = get_data('hepatitis')

Перед запуском setup ():

После запуска setup ():

(ii) Изменение типов данных:

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

Параметры:

numeric_features = [‘имя_столбца’]

category_features = [‘column_name’] или date_features = ‘date_column_name

ignore_features = [‘имя_столбца’]

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

Пример: если функция «GP» является категориальной, но PyCaret интерпретирует ее как числовую, то ее можно перезаписать.

Фрагмент кода (от числового к категориальному):

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs', categorical_features = ['GP'])

Выход:

Пример ignore_features:

Здесь мы проигнорируем столбец MIN фрейма данных.

Фрагмент кода (без учета столбца «MIN» в наборе данных):

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs', ignore_features = ['MIN'])

Вывод (столбец «MIN» был проигнорирован):

(iii) Одно горячее кодирование:

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

Пример:

Здесь имя - категориальный признак. Следовательно, PyCaret кодирует его.

Вывод (столбец «Имя» был закодирован горячим способом):

(iv) Порядковое кодирование:

Категориальные признаки, которые следуют порядку, например «Плохо, Хорошо, Отлично», должны кодироваться иначе, чем другие категориальные признаки. Это делается PyCaret путем отправки параметра как

Параметры: ordinal_features: словарь

Значение по умолчанию - none.

Код:

from pycaret.datasets import get_data
emp = get_data('employee')

from pycaret.classification import *
model = setup(data = emp, target = 'left', ordinal_features = {'salary' : ['low', 'medium', 'high']})

Выход:

model[0]

(v) Кардинальное кодирование:

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

Параметр: high_cardinality_features: строка, по умолчанию = None

Код:

from pycaret.datasets import get_data
inc = get_data('income')

from pycaret.classification import *
model = setup(data = inc, target = 'income >50K', high_cardinality_features = ['native-country'])

Выход:

(vi) Обработка неизвестных уровней:

Мы много раз сталкивались с ситуацией, когда тестовые данные имели новые уровни, которых не было в обученных данных. PyCaret обрабатывает это автоматически, задавая значение «наиболее часто» или «наименее часто». Параметры в функции setup ():

Параметры:

handle_unknown_categorical: bool, по умолчанию = True

unknown_categorical_method: string, по умолчанию = «less_frequent»

  • Масштабирование и преобразование

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

(i) Нормализовать:

Нормализация - это очень важный шаг предварительной обработки, который гарантирует, что числовые значения не так сильно разбросаны. PyCaret выполняет нормализацию, когда для параметра normalize установлено значение true. Есть несколько способов нормализовать данные. Значение по умолчанию для параметра normalize_method - это z-оценка, где среднее значение равно 0, а стандартное отклонение - 1. Другие значения - min-max (диапазон значений от 0 до 1). , maxabs (гарантирует, что максимальное абсолютное значение каждого признака равно 1), устойчивый (нормализуется в соответствии с межквартильным диапазоном, и лучше, когда есть выбросы).

Параметры: normalize, normalize_method

Пример нормализации (с использованием метода normalize_method по умолчанию: Z-оценка):

Код:

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs', normalize = True)

Выход:

Пример для normalize_method:

Код (с использованием метода «minmax» для нормализации):

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs', normalize = True, normalize_method = 'minmax')

Выход:

pycar[0]

(ii) Преобразование:

Преобразование используется для преобразования данных в гауссово или приближенное гауссово распределение. PyCaret выполняет нормализацию, когда для параметра трансформация установлено значение true. Есть несколько способов преобразования данных. Значение по умолчанию для параметра transform_method - yeo-johnson. Другое значение трансформации_метод - квантиль.

Параметры: трансформация, метод_ трансформации

Пример:

from pycaret.classification import *
pycar = setup(nba, target = 'TARGET_5Yrs', transformation = True)
pycar[0]

Выход:

  • Разработка функций

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

(i) Взаимодействие с функциями:

PyCaret позволяет создавать новые функции, используя существующие. Две функции могут быть умножены или разделены друг с другом, чтобы сформировать новые функции. Используемые параметры: feature_interaction (умножение), feature_ratio (деление). Для обоих этих параметров по умолчанию установлено значение false. Эти параметры можно изменить в функции setup (), чтобы получить взаимодействие с функциями.

Параметры:

feature_interaction: bool, по умолчанию = False

feature_ratio: bool, по умолчанию = False

Interaction_threshold: bool, по умолчанию = 0,01

Пример:

Импорт набора данных «кровь» из репозитория PyCaret

Код:

from pycaret.classification import *
model = setup(data, target = 'Class',feature_interaction = True, feature_ratio = True)
model[0]

Выход:

(ii) Полиномиальные характеристики:

Как и при взаимодействии функций, новые функции создаются с использованием степени полинома (a²). Используемые параметры: polynomial_features, для которого по умолчанию установлено значение false, polynomial_degree - целое число, значение которого по умолчанию равно 2. Эти параметры можно изменить в функции setup () для получения полиномиальных характеристик.

Параметры:

polynomial_features: bool, по умолчанию = False

polynomial_degree: int, по умолчанию = 2

polynomial_threshold: float, по умолчанию = 0,1

Пример:

Импорт набора данных «кровь» из репозитория PyCaret

Код:

from pycaret.classification import *
model = setup(data, target = 'Class', polynomial_features = True)
model[0]

Выход:

(iii) Особенности тригонометрии:

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

Параметр: trigonometry_features: bool, по умолчанию = False

(iv) Групповые характеристики:

Когда функции связаны друг с другом, эти функции можно сгруппировать с помощью параметра group_features в функции setup (). Такая информация, как среднее значение, медиана, получается с использованием этого параметра. Список возможностей передается в параметре group_features.

Параметры:

group_features: список или список списка, по умолчанию = Нет

group_names: list, по умолчанию = None

(v) Числовые характеристики корзины:

Иногда непрерывные объекты могут иметь широкий диапазон значений. В таких случаях мы используем объединение функций. В функции setup () используется параметр bin_numeric_features, который используется для объединения числовых функций.

Параметр: bin_numeric_features: list, по умолчанию = None

(vi) Комбинируйте редкие уровни:

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

Параметры:

Combine_rare_levels: bool, по умолчанию = False

Red_level_threshold: число с плавающей запятой, по умолчанию = 0,1

  • Выбор функций

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

(i) Важность функции:

Он используется для определения функций, которые наиболее важны для прогнозирования целевой переменной. В функции setup () используется параметр feature_selection, который по умолчанию имеет значение false. Другой параметр, называемый feature_selection_threshold, присутствует и должен использоваться, особенно когда используется многочлен или взаимодействие функций. Значение по умолчанию - 0,8.

Параметры:

feature_selection: bool, по умолчанию = False

feature_selection_threshold: float, по умолчанию = 0.8

(ii) Убрать мультиколлинеарность:

Мультиколлинеарность существует, когда один объект сильно коррелирован с другим. Это приведет к нестабильным моделям. Следовательно, это можно удалить с помощью параметра remove_multicollinearity, для которого по умолчанию установлено значение false в функции setup (). Пороговое значение для снижения количества признака можно установить с помощью параметра multicollinearity_threshold, который по умолчанию равен 0,9.

Параметры:

remove_multicollinearity: bool, по умолчанию = False

multicollinearity_threshold: float, по умолчанию = 0.9

(iii) Анализ основных компонентов:

Это в основном используется для уменьшения размерности. Он используется, когда набор данных состоит из множества измерений. Но при использовании PCA происходит потеря информации. Здесь используются следующие параметры: pca_method, значение по умолчанию линейное. Другие методы, которые можно использовать, - это RBF и инкрементный. Следующий параметр - pca_components, который может принимать значения как int, так и float. Если задано целочисленное значение, это означает количество функций, которые должны присутствовать, а если значение с плавающей запятой присутствует, то это означает, что процент информации, которая должна быть сохранена.

Параметры:

pca: bool, по умолчанию = False

pca_method: string, по умолчанию = "linear"

pca_components: int / float, по умолчанию = 0,99

(iv) Игнорировать низкую дисперсию:

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

Прежде чем игнорировать функцию, должны быть выполнены следующие критерии (Ссылка) :

- Подсчет уникальных значений в объекте / размере выборки ‹10%

- Подсчет наиболее распространенного значения / Подсчет второго наиболее распространенного значения ›20 раз.

Параметры: ignore_low_variance: bool, по умолчанию = False

  • Без присмотра

(i) Создайте кластеры:

Кластеры очень важны для обучения без учителя. Если для параметра create_cluster задано значение true, каждая точка в наборе данных назначается конкретному кластеру, и каждый кластер используется как новый объект. Параметр Cluster_iter используется для управления количеством итераций, используемых для формирования одного кластера.

Параметры:

create_clusters: bool, по умолчанию = False

cluster_iter: int, по умолчанию = 20

(ii) Удалить выбросы:

Выбросы могут повлиять на производительность модели и, следовательно, должны быть удалены. PyCaret удаляет выбросы с помощью PCA с помощью SVD. Выбросы можно удалить, установив для параметра remove_outliers значение true. Процент выбросов можно контролировать с помощью параметра outlier_threshold, значение по умолчанию которого равно 0,5.

Параметры:

remove_outliers: bool, по умолчанию = False

outliers_threshold: с плавающей точкой, по умолчанию = 0,05

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

настройка (данные, цель, train_size = 0,7, sampling = True, sample_estimator = None, category_features = None ,ategorical_imputation = 'constant', ordinal_features = None, high_cardinality_features = Нет, high_cardinality_method = 'частота', numeric_features = None, numeric_imputation = 'mean', date_features = None, ignore_features = None, normalize = False, normalize_method = 'zscore', transformation = False, transformation_method = 'yeo-johnnson' = Истина, unknown_categorical_method = 'least_frequent', pca = False, pca_method = 'linear', pca_components = None, ignore_low_variance = False ,common_rare_levels = False, Red_level_threshold = 0.10, bin_numeric_features = None, False_features = None, , multicollinearity_threshold = 0.9, create_clusters = False, cluster_iter = 20, polynomial_features = False, polynomial_degree = 2, trigonometry_features = False, po lynomial_threshold = 0.1, group_features = None, group_names = None, feature_selection = False, feature_selection_threshold = 0.8, feature_interaction = False, feature_ratio = False, Interaction_threshold = 0.01, session_id = None, silent = False, profile = False)

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

настройка (данные, цель)

4. Сравнение моделей

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

compare_models ()

compare_models()

Результат. Функция возвращает таблицу оценок, в которой указаны лучшие модели для каждого показателя производительности.

Метрики производительности, используемые для классификации: Accuracy, AUC, Recall, Precision, F1, Kappa.

Метрики производительности, используемые для регрессии: MAE, MSE, RMSE, R2, RMSLE, MAPE.

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

5. Создание модели

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

create_model («название модели»)

Результатом является модель Knn и оценочная сетка, которая иллюстрирует значения Accuracy, AUC, Recall, Precision, F1 и kappa.

knn_model = create_model('knn')

Результат:

Я построил модель K-NN, используя представление «knn» в функции create_model («knn»). Аналогичным образом вы можете строить другие модели, используя любое из представленных ниже представлений в create_model («название модели»).

По умолчанию модель создается с использованием 10-кратного резюме. Вместо этого мы можем изменить его, используя параметр fold.

Создать модель (с использованием 7-кратного резюме):

knn_model = create_model (‘knn’, fold = 7)

knn_model = create_model('knn',fold = 7)

Результат: Полученная в результате knn_model будет обучена 7-кратной перекрестной проверке.

Создать модель (округлить до двух десятичных знаков):

Мы можем округлить показатели производительности, используя параметр round в функции создания модели.

knn_model = create_model (‘knn’, round = 2)

knn_model = create_model('knn',round = 2)

Результат: показатели в таблице очков будут округлены до 2 цифр.

6. Настройте модель

Как видно из названия, мы можем настроить модель с помощью функции tune_model (), в функции create_model () модель создается с использованием гиперпараметров по умолчанию. Функциональность функции tune_mode () заключается в том, что она самостоятельно настраивает гиперпараметры модели и создает на выходе сетку оценок.

Перед настройкой:

knn_model = create_model('knn')

После настройки:

tuned_knn = tune_model('knn')

Tuning_model (с использованием оптимизации):

Используемый по умолчанию метод оптимизации - это точность, но мы можем изменить это, используя параметр оптимизации функции tuned_model ().

tuned_knn = tune_model (‘knn’, optimize = ’AUC’)

tuned_knn = tune_model('knn',optimize='AUC')

Аналогичным образом мы можем использовать другие меры оптимизации, такие как «Отзыв», «Точность», «F1».

Результат. Улучшилось значение показателей эффективности.

7. Создайте ансамбль из модели

PyCaret также выполняет ансамбль моделей. Поскольку ансамбль увеличивает производительность моделей (в большинстве случаев), мы можем объединить нашу модель, используя упаковку, усиление, смешивание и укладку в PyCaret.

ensemble_model (имя_модели)

Пример: В этом примере мы построим простое дерево решений и выполним на нем ансамбль.

Создание простого дерева решений:

Код:

dt = create_model('dt')

После объединения:

код:

bag_dt = ensemble_model(dt)

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

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

8. Постройте и оцените модель:

После создания модели очень легко построить метрики производительности модели и проанализировать ее. С помощью plot_model можно выполнять различные типы визуализаций, такие как AUC, кривая точности-отзыва, граница решения и т. Д.

plot_model (имя_модели, plot = «тип»)

Код для построения:

logreg = create_model('lr')
plot_model(logreg, plot = 'boundary')

В нашем коде мы использовали plot = «граница», что указывает на границу принятия решения. Аналогичным образом мы можем использовать другие графики, используя их строковый тип. В таблице ниже представлены типы графиков, поддерживаемые PyCaret.

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

Calibrated_model (имя_модели)

Код:

#Create a simple decision tree
dt = create_model('dt')
#Calibrate the model
calib_dt = calibrate_model(dt)

Помимо этого, есть чрезвычайно полезная функция Assessment_model (model), которая используется для отображения всех визуализаций. Это работает только в интерфейсе ноутбука jupyter. Он предоставляет интерактивный пользовательский интерфейс, в котором мы можем выбрать нужный нам тип визуализации.

Код:

evaluate_model(logreg)

Вот видео-представление о том, как работает Assessment_model.

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

9. Интерпретация модели.

Интерпретация модели также возможна в PyCaret. Важность функции определяется с помощью значений формы. График значений формы состоит из осей x и y. Ось X состоит из значений формы, которые показывают положительное или отрицательное влияние объекта. Ось Y состоит из значений признаков.

model = create_model('xgboost')
interpret_model(model)

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

10. Прогнозирование модели.

Все результаты до сих пор основаны на k-кратной перекрестной проверке (набор данных для поездов). Теперь мы спрогнозируем производительность модели на тестовом наборе данных.

код:

rf_holdout_pred = predict_model(rf)

Вывод после создания модели:

Выходные данные после прогнозирования модели на тестовом наборе данных:

11. Сохранение модели.

PyCaret позволяет нам сохранить весь конвейер модели в двоичный файл pickle, используя save_model (name, model_name = ‘’). Как только модель сохранена, мы можем загружать ее в любое время, используя load_model (). Мы сохраним нашу модель xgboost, созданную на шаге 9, с именем «pycaret_model».

Код:

save_model(model, 'pycaret_model')

Мы можем просто загрузить эту сохраненную модель с помощью функции load_model ().

Код:

load_saved_model = load_model('pycaret_model')
#Now our previous model is loaded into saved_model and is ready to predict/classify. 

Вместо сохранения только модели можно сохранить весь эксперимент аналогично сохранению модели с помощью save_experiment (имя эксперимента = ‘pycaret_experiment’). Таким образом вы можете сохранить все модели и их результаты.

load_experiment(experiment_name='pycaret_experiment'

А также можно добиться загрузки эксперимента.

load_saved_exp = load_experiment(‘pycaret_experiment’)

Вот и все, ваша окончательная обученная модель / эксперимент может быть вызвана и использована с помощью одной строчки кода. У нас также есть возможность развернуть построенную модель в AWS. Таким образом, мы можем построить целую модель конвейера, используя всего несколько строк кода.

ЗАКЛЮЧЕНИЕ

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

Я хотел бы поблагодарить Моэза Али и команду PyCaret за эту библиотеку.

Спасибо, что дочитали до конца. Если есть какие-либо ошибки или предложения, не стесняйтесь комментировать.

Если вы хотите связаться, свяжитесь со мной в LinkedIn.

Ссылки: