Python技术博文 2019-05-30
点击上方关注,All in AI中国
当运行一个预测模型时,无论是在Kaggle竞赛中还是在现实世界中,你都需要一个具有代表性的验证集来检查你正在训练的模型是否很好。也就是说,模型能够对它以前从未见过的数据做出很好的预测。
那么我所说的"代表性"是什么意思呢?实际上,这意味着你的训练和验证的数据集是相似的,即遵循相同的分布或模式。如果不是这样,那么你就用苹果来训练你的模型,然后试着用橙子来预测。结果将是非常糟糕的预测。
你可以进行大量探索性数据分析(EDA),并检查两个数据集中每个特性的行为是否相似。但这真的很费时。测试是否具有代表性或良好验证集的一种简洁快捷的方法是运行随机森林分类器。
在这个Kaggle内核中我完全做到了。我首先准备了训练和验证数据,然后添加了一个额外的列'train',当数据训练数据时取值为1,当验证数据时取值为0。这是随机森林分类器要预测的目标。
下一步是准备好您的独立(X)和从属(y)功能,设置随机森林分类器,并运行交叉验证。
我使用的是度量标准ROC AUC,它是分类任务的常用度量标准。 如果指标是1,那么说明你就完美地预测了。 如果得分为0.5,那么它就像基线一样好,如果你总是预测最常见的结果,你将得到这个分数。 如果分数低于0.5,那么说明你做错了。
现在,如果训练和验证集的行为相同,你认为ROC AUC应该是什么?……没错,0.5 !如果分数是0.5,那么这意味着训练和验证数据是无法区分的,这正是我们想要的。
我们进行了交叉验证,分数确实是0.5。这意味着Kaggle主机为我们建立了一个具有代表性的验证集。有时情况并非如此,所以这是一个很好的快速检查方法。然而,在实际生活中,你必须自己创建一个验证集,希望这可以确保你设置了正确的验证集。
编译出品