Сохраните и перезагрузите обученные модели машинного обучения в Python
Одним из ключевых шагов в рабочем процессе машинного обучения является сохранение обученной модели машинного обучения. В этой статье рассказывается, как мы можем сохранить и затем загрузить обученные модели машинного обучения.
Рекомендуется разделить ваш набор данных на три части:
- Обучение: 60%
- Проверка: 20%
- Тест: 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)
Резюме
В этой статье содержится краткое описание того, как мы можем сохранить и загрузить наши предварительно обученные модели машинного обучения, чтобы сэкономить время и силы.
Надеюсь, это поможет.