【问题标题】:Saving sklearn scaler objects to json instead of pickling将 sklearn 缩放器对象保存到 json 而不是酸洗
【发布时间】:2021-04-30 13:49:22
【问题描述】:

我很想知道是否有一种可接受的解决方案将 sklearn 对象保存到 json,而不是腌制它们。

我对此很感兴趣,因为保存到 json 将占用更少的存储空间,并使将对象保存到像 redis 这样的数据库更加简单。

特别是对于像 ColumnTransformer 这样的东西,我所需要的只是特定功能的均值和标准差。有了它,我可以轻松地重建转换器,但是当从保存的 json 对象重建转换器对象时,我必须手动设置学习和私有属性,这感觉很hacky。

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

其他人是这样处理的吗?

是什么阻止了 sklearn 将此功能构建到库中?

谢谢!

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

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

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

    这段代码 sn-p 来自上面的链接,展示了如何将 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 or json?

    【讨论】:

      猜你喜欢
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 2019-06-19
      • 2010-12-30
      相关资源
      最近更新 更多