微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您是否在交叉验证后预测测试数据gridsearchcv w/KFold以及如何预测?

如何解决您是否在交叉验证后预测测试数据gridsearchcv w/KFold以及如何预测?

背景:

我使用 scikit-learn 处理一个关于多类分类问题的项目。 我的数据集包含 40 个测量对象 (MO) 中每个对象的 112 个特征向量。总共 4480 个特征向量,平均分为 4 个类,533 个特征。 (有关 the data set 的更多信息,请点击此处)

方法

在拆分数据集(train:34 MO,test:6 MO)并减少特征数量后,主要通过 PCA,我使用 gridsearchcv 对不同模型使用 KFold 调整超参数以进行比较。

问题:

  1. 在评估时,是否需要拆分训练数据和测试数据?我的教授说不,交叉验证本身就已经过时了。这违背了我对机器学习最佳实践和 sklearn 交叉验证 documentation 的基本理解。
  2. 在预测/评估时,我是否必须考虑测试集中每个 MO 的特征空间,如果是,我该怎么做?例如。对测试数据运行交叉验证样式预测,或仅对整个测试数据进行预测。

解决方法

@4.Pi.n 的评论解决了我的问题:

  1. 正如你的教授所说,
  2. 最常见的方法是存储 k 模型,然后对那里的预测进行平均,例如。 y_pred = (pred_1 + pred_2 + ... + pred_k) / k,或 你可以使用 sklearn.model_selection.cross_val_predict

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。