python Scikit-Learn?中的模型持久性

dluptydi  于 2022-12-21  发布在  Python
关注(0)|答案(1)|浏览(156)

我正在尝试保存和加载scikit-learn模型,但是当保存和加载发生在不同的python版本上时,我遇到了一些问题。
1.使用pickle在python3中保存模型并在python 2中进行反序列化。这对LR、SVM等模型有效,但对KNN无效。

>>> pickle.load(open("inPy3.pkl", 'rb')) #KNN model
ValueError: non-string names in Numpy dtype unpickling

1.另外,我尝试使用jsonpickle在json中进行序列化和反序列化,但是得到了以下错误。

data = jsonpickle.encode(lr) #lr = logisticRegression Model
jsonpickle.decode(data)
AttributeError: 'dict' object has no attribute '__name__'

另外,我想知道是否有一些实用程序可以用来将scikit-learn模型对象序列化和反序列化为人类可读的格式(json,xml,protobuf等)。

rta7y2nd

rta7y2nd1#

您可以提取并存储它们的系数,然后加载系数并使用它们初始化模型,而不是提取整个模型。
与sklearn升级question相关。类似的方法对python版本也有效。

相关问题