我最近为初学者的房价 Kaggle 比赛整理了一个条目。我决定尝试理解和使用 XGBoost。
我将 Kaggle 的“训练”数据分为“训练”和“测试”。然后我使用 KFold CV 在新的训练数据上拟合和调整我的模型,并cross_val_score使用带有 shuffle 的 KFold 获得了 scikit 的分数。
使用此交叉验证的训练集的平均得分为 0.0168(均方对数误差)。
接下来,使用完全调优的模型,我在从未见过的“测试”集(不是 Kaggle 排行榜的最终测试集)上检查它的性能。四舍五入后得分相同。
所以,我拍拍自己的后背,因为我避免了过度拟合……或者我是这么认为的。当我提交给比赛时,我的分数变成了 0.1359,这是一个巨大的性能下降。这相当于我的房价预测出现了 25 个大错误。
如果不是过度拟合,可能是什么原因造成的?
这是我的笔记本的链接,如果有帮助的话:https ://www.kaggle.com/wesleyneill/house-prices-walk-through-with-xgboost