首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用测试样本来比较算法可以吗?

用测试样本来比较算法可以吗?
EN

Data Science用户
提问于 2019-04-21 16:15:45
回答 2查看 253关注 0票数 3

我正在做一个小项目,我的数据集有6k行和大约300个特性,有一个简单的二进制结果。

因为我还在学习ML,所以我想尝试所有我能找到并比较结果的算法。

正如我在教程中所读的,我将我的数据集分成一个训练样本(80%)和一个测试样本(20%),然后用交叉验证(5倍)训练我的算法。

我的计划是以这种方式训练我的所有模型,然后在测试样本上衡量它们的性能,以选择最佳的算法。

这会导致过度适应吗?如果是这样的话,由于我无法比较model_selection.GridSearchCV内部的几种模型,我如何才能防止它过度适应呢?

EN

回答 2

Data Science用户

回答已采纳

发布于 2019-04-21 19:56:18

基本上,每次你使用火车/测试分割的结果来决定一个模型--无论是调优单个模型的超参数,还是选择多个不同模型中最有效的一个,在你“冻结”你的模型并根据一部分未被触及的数据对它进行评估之前,你不能在做出这些决定之后推断出模型的性能。

解决这个问题的一般概念称为嵌套交叉验证。如果您使用列车/测试分割来为模型选择最佳参数,这是很好的。但是如果你想要评估它的性能,你需要在第二组上进行评估。

如果您然后对多个模型重复处理,并选择性能最好的模型,这是很好的,但是通过选择最佳的结果,性能度量的值本质上是有偏差的,您需要在另一个提供的集合上验证整个过程,以获得模型对未见数据的性能的无偏见估计。

票数 3
EN

Data Science用户

发布于 2019-04-21 16:18:22

不,这不是测试集的目的。测试集仅用于模型完成后的最终评估。问题是,如果将测试集包括在决策中,您的评估将不再可靠。

为了比较算法,您需要预留另一块数据,称为验证集。

下面是一些关于良好分割的信息,这取决于数据大小:

列车/开发/测试装置从改进深层神经网络:超参数调整,正则化和优化由吴国强教授。

(Andrew使用单词dev集而不是验证集)

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/49683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档