機械学習モデルの永続性-pickleとjoblib

             シナリオ:トレーニング済みモデルをローカルディスクまたはメモリに保存する

 

漬物

pickleモジュールとそのピアモジュールcPickleは、Pythonにpickleサポートを提供します。後者はCでコーディングされているため、パフォーマンスが向上します。ほとんどのアプリケーションでは、このモジュールをお勧めします。

joblib

joblibはscikit-learnの外部ライブラリです。ビッグデータの場合、joblibはpickleよりも効率的ですが、joblibはオブジェクトをディスクファイルにのみ保存でき、文字列としては保存できません。

 

  • joblibを介してモデルの永続性を実装する
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'Seven'

from sklearn.tree import DecisionTreeClassifier
from sklearn.externals import joblib

# 构建简单数据集
# x = [[2, 3, 4], [4, 6, 5]]
# y = [1, 0]
# 构建决策树模型
clf = DecisionTreeClassifier()
# 模型训练
# res = clf.fit(x, y)

# 可以通过print查看训练后模型的参数
print(res)


# 保存至本地磁盘
# joblib.dump(clf, 'model.pkl')
# 从本地磁盘加载模型
model_joblib = joblib.load('model.pkl')
# 加载出来的模型可以进行predict等功能
print(model_joblib.predict([[4, 6, 10]]))

動作効果は以下のとおりです。

  • 漬物によるモデルの永続性
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'Seven'

from sklearn.tree import DecisionTreeClassifier
import pickle

# 构建简单数据集
x = [[2, 3, 4], [4, 6, 5]]
y = [1, 0]
# 构建决策树模型
clf = DecisionTreeClassifier()
# 模型训练
res = clf.fit(x, y)

# 可以通过print查看训练后模型的参数
print(res)


# 保存至本地磁盘
# with open('model.pkl', 'wb') as file:
#     pickle.dump(clf, file)
# 从本地磁盘加载模型
with open('model.pkl', 'rb') as file:
    model_joblib = pickle.load(file)
    # 加载出来的模型可以进行predict等功能
    print(model_joblib.predict([[4, 6, 10]]))

# pickle还可以保存至内存
s = pickle.dumps(clf)
model = pickle.loads(s)
print(model.predict([[4, 6, 10]]))

動作効果は以下のとおりです。

 

おすすめ

転載: blog.csdn.net/gf19960103/article/details/90041125