如何解决您是否在交叉验证后预测测试数据gridsearchcv w/KFold以及如何预测?
背景:
我使用 scikit-learn 处理一个关于多类分类问题的项目。 我的数据集包含 40 个测量对象 (MO) 中每个对象的 112 个特征向量。总共 4480 个特征向量,平均分为 4 个类,533 个特征。 (有关 the data set 的更多信息,请点击此处)
方法:
在拆分数据集(train:34 MO,test:6 MO)并减少特征数量后,主要通过 PCA,我使用 gridsearchcv 对不同模型使用 KFold 调整超参数以进行比较。
问题:
- 在评估时,是否需要拆分训练数据和测试数据?我的教授说不,交叉验证本身就已经过时了。这违背了我对机器学习最佳实践和 sklearn 交叉验证 documentation 的基本理解。
- 在预测/评估时,我是否必须考虑测试集中每个 MO 的特征空间,如果是,我该怎么做?例如。对测试数据运行交叉验证样式预测,或仅对整个测试数据进行预测。
解决方法
@4.Pi.n 的评论解决了我的问题:
- 正如你的教授所说,
- 最常见的方法是存储 k 模型,然后对那里的预测进行平均,例如。
y_pred = (pred_1 + pred_2 + ... + pred_k) / k
,或 你可以使用 sklearn.model_selection.cross_val_predict
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。