Использование 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 для различных проектов по науке о данных и руководств по пакетам. Кроме того, не стесняйтесь просматривать мой профиль и читать различные статьи, которые я написал, связанные с наукой о данных.