“public test” data 用于当比赛进行时计算成绩,并显示在 public leaderboard 上;在比赛结束之后,参赛者是通过
    “private test” data 的成绩进行排名的。

    具体而言,Kaggle 竞赛由模型在测试数据集上的性能决定。 Kaggle 拥有此数据集的答案,但不提供答案以与你的预测进行比较。public test score 是您在每次提交时获得的分数(分数是使用统计评估指标计算的,该指标始终在“评估”页面上进行描述)。但是,你的公开分数仅由测试数据集的一小部分确定——通常在25-33%之间。这是公共排行榜,它显示了比赛中的一些相对表现。

    比赛结束后,Kaggle 将选择您提交的意见书(见下文),并根据测试集的剩余部分或私有部分对你的预测进行评分。你永远不会收到有关此部分分数的持续反馈,因此它是 private leaderboard。最终比赛结果基于 private leaderboard,获胜者是 private leaderboard 顶部的人。为什么?将测试集分为公共部分和私有部分的这种方式确保了最准确但通用化的模型才是赢得挑战的模型。如果仅基于能够不断提供反馈的数据来建立模型,则存在模型过拟合该数据中特定噪声的危险。数据科学中的艰巨挑战之一就是通过使模型灵活地适应样本外数据来避免过度拟合。

    简单来说,这是因为在比赛过程中,参赛者可以通过不断提交自己的数据,经由系统评判后来获得反馈的成绩,所以,参赛者可能故意或者下意识地以此为依据来修改模型或特征工程,来“讨好”测试集数据,从而在测试集上获得更好的分数,最终导致过拟合。

    实际上,尽管给出了 test data,我们使用自己的模型对其进行预测并提交后, public leaderboard 仅展示小部分数据的预测准确性的成绩,大部分数据的准确性成绩我们也是不知道的。参赛者在比赛中可以进行多次提交,最终选择自己认为的最好的一份提交数据作为最终提交数据,Kaggle 会将其的 private test成绩作为最终成绩。

    总体而言,public test score 与 private test score 是呈正相关的,参赛者也正是凭借一次次提交数据后的 public test score 来作为反馈修改模型。但如果做得不好,很容易导致过拟合,最终尽管 public leaderboard 成绩很高,但 private leaderboard 成绩很糟糕。