机器学习模型持久性选项

2024-05-19 20:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

对于坚持和重复使用经过训练的机器学习模型有什么建议/最佳实践?在Python开发中,这些模型必须是不可用的。例如,有一个logistic回归模型训练在R。现在新的观察需要根据这个模型评分。计分引擎必须是快速和可扩展的。我考虑过

  1. PMML(http://en.wikipedia.org/wiki/Predictive_Model_Markup_Language)。将R中开发的大多数模型转换为pmml是很容易的。然而,我找不到一个有用的PMML模型评分引擎。例如,有augustus(https://code.google.com/p/augustus/),但它只实现了3-4个模型。

  2. 在Python中使用pickle序列化模型,并用Python编写使用者。

对正确的方法有什么想法/建议吗?在


Tags: org模型引擎机器httpwikiwikipedia评分
2条回答

可以使用python中的pickle保存和加载模型,如下所示:

import pickle
s = pickle.dumps(clf)
clf2 = pickle.loads(s)

另一种方法是使用joblib,它对于内部携带大型numy数组的对象更有效,就像fitted scikit learn估计器的情况一样。在

^{pr2}$

然后,可以将此模型作为restfulapi部署到生产中。在

Scikit-learn,这个领域的一个成熟的库,使用pickle for its persistence of models。我想您是在编写自己的函数来训练模型,但是查看已建立的库可以告诉您最佳实践。在

另一方面,JSON可以从多种语言中读取。这是它的主要优势。如果您的模型服务计划来自另一种语言,并且您的模型是相当简单的Python对象,那么将它们序列化为JSON应该很容易。在

相关问题 更多 >