python - 是否可以加载一次模型并在 python 中再次重用它?

标签 python scikit-learn

我已经训练了 scikit 学习模型,现在我想在我的 python 代码中使用。 有没有办法可以重复使用相同的模型实例? 以一种简单的方式,我可以在需要时再次加载模型,但由于我的需求更频繁,我想加载一次模型并再次使用它。

有什么方法可以在 python 中实现吗?

这是 prediction.py 中一个线程的代码:

clf = joblib.load('trainedsgdhuberclassifier.pkl')
clf.predict(userid)

现在对于另一个用户,我不想再次启动 prediction.py 并花时间加载模型。有没有办法,我可以简单地写。

new_recommendations = prediction(userid)

我应该在这里使用多处理吗?我不确定!!

最佳答案

根据 Scikit-learn 文档,以下代码可能对您有所帮助:

from sklearn import svm
from sklearn import datasets
clf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X, y)  
import pickle
s = pickle.dumps(clf)
clf2 = pickle.loads(s)
clf2.predict(X[0])

在 scikit 的特定情况下,使用 joblib 的 pickle 替换(joblib.dump 和 joblib.load)可能更有趣,这对于内部携带大型 numpy 数组的对象更有效,这通常是适合 scikit-learn 估计器,但只能腌制到磁盘而不是字符串:

from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl') 

稍后您可以加载回已腌制的模型(可能在另一个 Python 进程中):

clf = joblib.load('filename.pkl') 

再次加载模型后。您可以重复使用它而无需重新训练它。

clf.predict(X[0])

来源:http://scikit-learn.org/stable/modules/model_persistence.html

关于python - 是否可以加载一次模型并在 python 中再次重用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26493003/

相关文章:

python-social-auth + 移动应用

python - 了解 Python 中的迭代器和生成器

python - 更新拟合的 sklearn 随机森林模型

python - 将 CountVectorizer 和 TfidfTransformer 稀疏矩阵转换为单独的 Pandas Dataframe 行

python - 如何让Python决策树更容易理解?

python - 这两种为 sklearn 分类器过滤 Pandas 数据帧的方法有什么区别?

python - NearestCentroid、python、集群的问题

python - 每个单元格中带有字典的二维数组

python - 后台的无限 While True 循环(Python)

python - Windows 阻止对 HKLM 进行注册查询;改为返回 HKCU