Использование Joblib для хранения конвейера машинного обучения в файле

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

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

Joblib — это библиотека Python с открытым исходным кодом, которая помогает сохранять пайплайны в файл и использовать их по мере необходимости. Это легко реализовать и работает отлично.

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

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

Установка необходимых библиотек

Мы начнем с установки библиотеки Joblib с помощью pip. Приведенная ниже команда сделает это.

!pip install joblib

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

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

import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
import joblib

Загрузка набора данных

В этой статье мы будем использовать знаменитый набор данных Titanic, который мы получим от Kaggle.

cols = ['Embarked', 'Sex']
df = pd.read_csv('http://bit.ly/kaggletrain', nrows=10)
X = df[cols]
y = df['Survived']
df_new = pd.read_csv('http://bit.ly/kaggletest', nrows=10)
X_new = df_new[cols]
df.head()

Моделирование

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

ohe = OneHotEncoder()
logreg = LogisticRegression(solver='liblinear', random_state=1)
pipe = make_pipeline(ohe, logreg)
pipe.fit(X, y)
pipe.predict(X_new)

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

# save the pipeline to a file
joblib.dump(pipe, 'pipe.joblib')

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

# load the pipeline from a file
same_pipe = joblib.load('pipe.joblib')
# use it to make the same predictions
same_pipe.predict(X_new)

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

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

Эта статья подготовлена ​​в сотрудничестве с Пиюшем Ингале.

Перед тем, как ты уйдешь

Спасибо за прочтение! Если вы хотите связаться со мной, не стесняйтесь обращаться ко мне по адресу [email protected] или в мой профиль LinkedIn. Вы можете просмотреть мой профиль Github для различных проектов по науке о данных и руководств по пакетам. Кроме того, не стесняйтесь просматривать мой профиль и читать различные статьи, которые я написал, связанные с наукой о данных.