Machine learning 过度装修总是一件坏事吗?
我目前正在参加几个机器学习比赛,因为我正在努力学习这个领域 对于回归问题,我使用了Machine learning 过度装修总是一件坏事吗?,machine-learning,regression,xgboost,kaggle,Machine Learning,Regression,Xgboost,Kaggle,我目前正在参加几个机器学习比赛,因为我正在努力学习这个领域 对于回归问题,我使用了xgboost。 以下是我使用的程序: 在特征工程之后,我像往常一样将我的数据分成两组,一组训练集和一组测试集。然后,我将我的xgboost放在训练集上,并在测试集上进行验证。以下是我得到的结果:(当我使用经过训练的算法预测提交的目标时,我还显示了公共集结果,度量是mae) 备注: 所有数据集(列车/测试/公共集)的大小大致相同,大约有200000个样本 这是一个时间序列,所以我在分割时没有洗牌数据,即使洗牌不会
xgboost
。
以下是我使用的程序:
在特征工程之后,我像往常一样将我的数据分成两组,一组训练集和一组测试集。然后,我将我的xgboost
放在训练集上,并在测试集上进行验证。以下是我得到的结果:(当我使用经过训练的算法预测提交的目标时,我还显示了公共集结果,度量是mae)
备注:
- 所有数据集(列车/测试/公共集)的大小大致相同,大约有200000个样本
- 这是一个时间序列,所以我在分割时没有洗牌数据,即使洗牌不会改变结果
- 我还尝试在暂时接近公共数据集的样本上训练xgboost,但结果并没有更好
- 当我在提交之前对所有数据(训练+测试)进行训练时,我的公共分数提高了0.35
- 我们真的可以仅仅通过观察训练和测试分数之间的差异来估计过度拟合吗?或者这仅仅是一个过度装配的指标
- 为什么我的提交分数会通过增加迭代次数而提高,即使这表明我越来越过度拟合
- 为什么提交分数的提高甚至比测试分数的提高更好
- 为什么测试分数和提交分数不接近?为什么无论超参数或“过度拟合率”如何,我在测试和提交分数之间都有很大的系统差异
我必须提到的是,即使过度拟合以及测试和公开评分之间的巨大差异,我目前仍然是排行榜上的第二名,有50人参与 首先,了解什么是过度拟合 当训练分数增加(或错误减少)而测试集分数减少(或错误增加)时,您可以看到过度拟合 过度拟合是指你的训练模型过于精确,不能概括你试图解决的问题。换言之,它太适合于训练和单独的训练,因此它无法解决/预测不同的数据集 在您的示例中,列车和测试的误差似乎都在减少,这意味着您没有过度拟合 过度装修总是一件坏事 至于你目前的问题。如果要运行多个交叉验证,或手动拆分多个培训和多个测试集的数据,可以执行以下操作:
在复杂性中有一点(10),持续训练会减少训练错误,但会增加测试错误。一些想法可能会帮助你 Kaggle竞赛的最终结果是私人排行榜,您的模型将在您尚未看到的数据上进行测试。优化您的模型以在公共排行榜(提交数据集)上预测好,然后因为拟合过度且没有交叉验证而下降10位是没有用的,因此您的模型没有很好的通用性。你必须做一些交叉验证,我建议你相信结果 请注意,以百分比计算,您的MAE下降了11.8%、1.5%和1.1%,因此您的提交分数提高最少 有时,您必须小心处理时间序列数据–数据的哪一部分与公共/私人排行榜数据最为相似?例如,如果您有一年的数据,并且您在1月至6月16日进行培训,在7月至12月16日进行测试,然后在1月至6月17日进行验证(提交),那么您可能期望提交的结果比测试数据集的结果更好。在这种情况下,您可能会完全丢弃7月至12月16日的数据,只在1月至6月16日进行训练/测试
如果你排在第二位,显然你做得对,但请记住交叉验证。在过去的比赛中,由于他们的模型没有很好的通用性,人们跌了数百个位置 查看此图像,尝试拟合数据点:
你的函数将完全符合给定的数据点,导致席的平方比低于1。
进一步见: 实质上:- 你的模型不能概括
- 在测试集上工作良好
请在获胜前后检查kaggle leader董事会。它们根据不同的数据子集进行评估。大多数领先的算法在“以前从未见过”的数据上表现不佳。谢谢您的回答。但是,如果我不是过度拟合,那么火车和测试成绩之间的区别是什么呢?让我们考虑下面的例子:(迭代,火车得分,测试分数):(50,15,15),(100,14,14.30),在这种情况下,从50到100迭代,火车得分增加1,但是测试分数仅增加。
Iteration training score testing score public score
100 8.05 12.14 17.50
150 7.10 11.96 17.30