如何使用 sklearn post-cross_val_predict 模型对另一个缩放数据集进行预测?以及模型是不是可以序列化?
Posted
技术标签:
【中文标题】如何使用 sklearn post-cross_val_predict 模型对另一个缩放数据集进行预测?以及模型是不是可以序列化?【英文标题】:How to take a sklearn post-cross_val_predict model to do prediction on another scaled data set? And whether the model can be serialized?如何使用 sklearn post-cross_val_predict 模型对另一个缩放数据集进行预测?以及模型是否可以序列化? 【发布时间】:2019-05-04 01:41:06 【问题描述】:我在处理具有严重不平衡数据的 sklearn ML 案例时遇到了这个问题。下面的行提供了从混淆指标和精确召回的角度评估模型的基础,但是......它是一种训练/预测组合方法:
y_pred = model_selection.cross_val_predict(model, X, Y, cv=kfold)
问题是我如何利用这种“交叉验证训练”模型来:
1) 预测另一个数据集(缩放)而不是每次都训练/预测?
2) 导出/序列化/部署模型以预测实时数据?
model.predict() #--> nope. need a fit() first
model.fit() #--> nope. a different model which does not take advantage of the cross_val_xxx methods
感谢任何帮助。
【问题讨论】:
【参考方案1】:您可以使用数据fit
一个新模型。
交叉验证方面是关于验证模型的构建方式,而不是模型本身。所以如果交叉验证没问题,那么你就可以用所有数据训练一个新模型。
(更多详情请参见我的回复Fitting sklearn GridSearchCV model)
【讨论】:
我正在使用 bagging 和 boosting 算法来避免由于严重的不平衡而偏向多数类。然而,这些算法需要调用 model_selection.cross_val_xxx 方法才能进行评分或预测。如果我执行 model.fit() 它是单次通过并且不能解决偏差问题 - 如果我理解不正确,请告诉我? 谢谢你,Matthieu,我明白了。模型是基于提供的参数的。交叉验证不会为模型增加价值,而只是对其嗤之以鼻。 抱歉,之前没有看到您的消息。我想你明白了,是的。以上是关于如何使用 sklearn post-cross_val_predict 模型对另一个缩放数据集进行预测?以及模型是不是可以序列化?的主要内容,如果未能解决你的问题,请参考以下文章