将sklearn scaler对象保存为json而不是pickle



我很想知道是否有一个可以接受的解决方案来保存sklearn对象到json,而不是pickle它们。

我对此很感兴趣,因为保存到json将占用更少的存储空间,并使保存对象到数据库,如redis更直接。

特别地,对于像ColumnTransformer这样的东西,我所需要的只是特定特性的平均值和std。这样,我就可以轻松地重新构建转换器,但是当从保存的json对象重新构建转换器对象时,我必须手动设置学习属性和私有属性,这感觉很粗糙。

我发现最接近的是这篇文章:https://stackabuse.com/scikit-learn-save-and-restore-models/

其他人都是这么做的吗?

是什么阻止sklearn将这个功能构建到库中?

谢谢!

认为这个包就是你要找的https://pypi.org/project/sklearn-json/

将scikit-learn模型文件导出为JSON,以便安心地共享或部署预测模型。

这个代码片段来自上面的链接,展示了如何将sklearn模型导出到json:

import sklearn_json as skljson
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=10, max_depth=5, random_state=0).fit(X, y)
skljson.to_json(model, file_name)
deserialized_model = skljson.from_json(file_name)
deserialized_model.predict(X)

进一步回答json和pickle的问题,这可能是有帮助的Pickle还是json?

最新更新