保存机器学习模型的最佳实践,包括缩放和其他重用所需的信息

我不是一个优秀的程序员,但我努力提升自己的技能,并尝试使用更好的结构和实践方法。

我正在从事机器学习工作,并使用Keras。我试图找到保存结果的最佳方法。我有一个模型,x和y模拟数据的缩放参数,原始特征和Y。保存所有这些信息数据的最佳实践是什么?是否可以或是一个好主意将我的模型和缩放参数一起保存?我读取csv文件并将其转换为pandas DataFrame,是否最好保存DataFrame以便下次直接使用它,还是继续读取csv文件?

非常感谢您的建议和对新手的耐心。PS:对不起我的英语不好,我也在努力改进。


回答:

您使用的是Keras,而不仅仅是scikit-learn,所以我建议构建一个管道并分别保存它们。

from keras.models import load_modelfrom sklearn.externals import joblibpipeline = Pipeline([    ('scaler', StandardScaler()),    ('estimator', KerasClassifier(build_model))])pipeline.fit(X_train, y_train)# 保存Keras模型pipeline.named_steps['estimator'].model.save('keras_model.h5')# 保存管道pipeline.named_steps['estimator'].model = Nonejoblib.dump(pipeline, 'sklearn_pipeline.pkl')# 反序列化pipeline = joblib.load('sklearn_pipeline.pkl')# 添加Keras模型pipeline.named_steps['estimator'].model = load_model('keras_model.h5')

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注