假设我有一个数据文件,如:
索引,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。
问:在这种情况下,过度适应不是很有用吗?
发布于 2016-02-02 07:10:14
问:上述逻辑是否取决于原始数据的分割方式?
如果dataset很大(100,000),您可以随机拆分数据,您不应该有任何问题,但是如果dataset很小,则可以采用交叉验证等不同的方法来生成数据集。交叉验证声明,您拆分,使n个培训-验证从您的培训集。
假设您有2000个数据点,则拆分如下
1000 -训练数据集
1000 -测试数据集。
交叉验证意味着您将创建5个800/200培训/验证数据集。
问:在这种情况下,过度适应不是很有用吗?
机器学习的第一条规则是,您不接触测试数据集。这是一个冬青数据集,不应该被触及。如果您超过测试数据,以获得最大的AUC评分,那么将没有任何意义的验证数据集。任何ml算法的首要目的都是为了减小泛化误差,即算法应该能够很好地处理未见数据。如果您想调整您的算法与测试数据。你不能满足这个标准。在交叉验证中,你也不接触你的测试集.你选择你的算法.使用验证数据集对其参数进行调优,并在完成此操作之后,应用您的算法测试数据集,这是您的最终得分。
https://stackoverflow.com/questions/35146127
复制相似问题