Сохраните и перезагрузите обученные модели машинного обучения в Python

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

Рекомендуется разделить ваш набор данных на три части:

  1. Обучение: 60%
  2. Проверка: 20%
  3. Тест: 20%

После обучения модели на обучающем наборе модель проверяется и тестируется на проверочном и тестовом наборе.

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

1. Если вы работаете с моделями машинного обучения StatsModel

1.1 Сохраните модель

import statsmodels.api as sm
model = sm.tsa.ARIMA([1,5,9,12], order=(1, 0, 1))  
my_model= model.fit()
my_model.save(myfile)

1.2 Загрузить модель

from statsmodels.tsa.arima_model import ARIMAResults
loaded = ARIMAResults.load(my_file)

2. Если вы работаете с моделями машинного обучения Scikit-Learn

2.1 Сохранение модели

Используйте Pickle для сериализации и сохранения моделей

from sklearn.linear_model import LogisticRegression
import pickle
model = LogisticRegression()
model.fit(xtrain, ytrain)
# save the model to disk
pickle.dump(model, open(model_file_path, 'wb'))

2.2 Загрузить модель

Используйте Pickle для десериализации и сохранения моделей

model = pickle.load(open(model_file_path, 'rb'))
result_val = model.score(xval, yval)
result_test = model.score(xtest, ytest)

2.3 Сохраните модель

Используйте JobLib для сериализации и сохранения моделей

from sklearn.linear_model import LogisticRegression
from sklearn.externals import joblib
model = LogisticRegression()
model.fit(xtrain, ytrain)
# save the model to disk
joblib.dump(model, model_file_path)

2.4 Загрузить модель

Используйте JobLib для десериализации и сохранения моделей

model = joblib.load(model_file_path)
result_val = model.score(xval, yval)
result_test = model.score(xtest, ytest)

3. Если вы работаете с моделями машинного обучения Keras

Создайте и обучите модель

from keras.models import Sequential
from keras.layers import Dense
# create model
model = Sequential()
# Fit the model
model.fit(xtrain, ytrain)

3.1 Сохраните модель

# serialize to JSON
json_file = model.to_json()
with open(json_file_path, "w") as file:
   file.write(json_file)
# serialize weights to HDF5
model.save_weights(h5_file)

3.2 Загрузить модель

from keras.models import model_from_json
# load json and create model
file = open(json_file, 'r')
model_json = file.read()
file.close()
loaded_model = model_from_json(model_json)
# load weights
loaded_model.load_weights(h5_file)

Резюме

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

Надеюсь, это поможет.