保存没有数据集的 scikit-learn 模型
Save scikit-learn model without datasets
我用 sklearn 库训练了一个 RandomForestClassifier 模型,并用 joblib 保存了它。现在,我有一个将近 1GB 的 joblib 文件,我正在 Nginx/Flask/Guincorn 堆栈上部署它。问题是我必须找到一种有效的方法来从文件加载此模型并为 API 请求提供服务。执行时是否可以在没有数据集的情况下保存模型:
joblib.dump(model, '/kaggle/working/mymodel.joblib')
print("random classifier saved")
Scikit-Learn 估计器的持久表示不 包括任何训练数据。
谈到决策树及其集成(例如随机森林),然后估计器对象的大小与决策树的深度(即 max_depth
参数)呈二次方关系。之所以如此,是因为决策树配置是使用 (max_depth, max_depth)
矩阵(float64
数据类型)表示的。
您可以通过限制 max_depth
参数来缩小您的随机森林对象。如果您担心预测性能的潜在损失,您可以增加子估计器的数量。
从长远来看,您可能希望探索 Scikit-Learn 模型的替代表示。例如,使用 SkLearn2PMML 包将它们转换为 PMML 数据格式。
我用 sklearn 库训练了一个 RandomForestClassifier 模型,并用 joblib 保存了它。现在,我有一个将近 1GB 的 joblib 文件,我正在 Nginx/Flask/Guincorn 堆栈上部署它。问题是我必须找到一种有效的方法来从文件加载此模型并为 API 请求提供服务。执行时是否可以在没有数据集的情况下保存模型:
joblib.dump(model, '/kaggle/working/mymodel.joblib')
print("random classifier saved")
Scikit-Learn 估计器的持久表示不 包括任何训练数据。
谈到决策树及其集成(例如随机森林),然后估计器对象的大小与决策树的深度(即 max_depth
参数)呈二次方关系。之所以如此,是因为决策树配置是使用 (max_depth, max_depth)
矩阵(float64
数据类型)表示的。
您可以通过限制 max_depth
参数来缩小您的随机森林对象。如果您担心预测性能的潜在损失,您可以增加子估计器的数量。
从长远来看,您可能希望探索 Scikit-Learn 模型的替代表示。例如,使用 SkLearn2PMML 包将它们转换为 PMML 数据格式。