首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >过拟合与数据分割

过拟合与数据分割
EN

Stack Overflow用户
提问于 2016-02-02 06:01:37
回答 1查看 561关注 0票数 0

假设我有一个数据文件,如:

索引,product_buying_date,col1,col2

0,2013-01-16,34,Jack

1,2013-01-12,43,莫莉

2013年2,01-21,亚当

2014-01-09,54,Peirce

2014年4月-01-17,38,戈德堡

5,2015-01-05,72,钱德勒

。。

。。

20000,2015-01-27,32,Mike

用更多的数据,我有一个目标变量y,根据你的方便来做一些假设。

现在我知道,我们把数据分成两部分,即训练和测试。然后将列车划分为70:30,用70%建立模型,用30%对模型进行验证。我们调整参数,使模型不过分适合。然后用测试数据进行预测。例如:我把2000000分成两个相等的部分。1000000是训练,我把它除以验证,即1000000的30%,即300000,70%是我建立的模型,即700000。

问:上述逻辑是否取决于原始数据的分割方式?

一般情况下,我们对数据进行洗牌,然后将其分解为训练、验证和测试。(列车+验证=列车)。(请不要在这里混淆)但是如果分裂是交替的呢?就像我先在“火车和测试”中划分它一样,我把偶数行分配给Test,把奇数行分给Train。(在这里,数据最初是基于'product_buying_date‘列排序的,所以当我将其拆分为奇数行和偶数行时,它会被一致拆分。

当我用列车建立模型时,我对它进行了过度拟合,这样我就可以用测试数据获得最大的AUC。

问:在这种情况下,过度适应不是很有用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-02 07:10:14

问:上述逻辑是否取决于原始数据的分割方式?

如果dataset很大(100,000),您可以随机拆分数据,您不应该有任何问题,但是如果dataset很小,则可以采用交叉验证等不同的方法来生成数据集。交叉验证声明,您拆分,使n个培训-验证从您的培训集。

假设您有2000个数据点,则拆分如下

1000 -训练数据集

1000 -测试数据集。

交叉验证意味着您将创建5个800/200培训/验证数据集。

问:在这种情况下,过度适应不是很有用吗?

机器学习的第一条规则是,您不接触测试数据集。这是一个冬青数据集,不应该被触及。如果您超过测试数据,以获得最大的AUC评分,那么将没有任何意义的验证数据集。任何ml算法的首要目的都是为了减小泛化误差,即算法应该能够很好地处理未见数据。如果您想调整您的算法与测试数据。你不能满足这个标准。在交叉验证中,你也不接触你的测试集.你选择你的算法.使用验证数据集对其参数进行调优,并在完成此操作之后,应用您的算法测试数据集,这是您的最终得分。

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

https://stackoverflow.com/questions/35146127

复制
相关文章

相似问题

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