[编辑于 21.7.15 8:31 AM CEST]
我想您使用 RF 进行分类。因为在这种情况下,该算法会生成完全生长的树,其中只有一个目标类的纯终端节点。
predict(model, data=X_train)
这行编码就像一条狗在追逐自己的尾巴 [~66%]。任何训练样本的预测都是训练样本本身的类别。对于回归,如果节点中有 5 个或更少的样本或者节点是纯的,则射频停止。这里的预测误差很小,但不是 0%。
在机器学习中,我们经常使用大型假设空间。这意味着对于我们的训练集的数据结构,总会有许多尚未证伪的假设/解释/模型。在经典统计中,假设空间通常很小,因此直接模型拟合根据某些假设的概率论提供了丰富的信息。在机器学习中,直接缺乏拟合是否与模型的偏差有关。偏差是模型的“不灵活”。它不是无论如何提供一个近似的泛化能力(预测新事件的能力)。对于算法模型,交叉验证是近似泛化能力的最佳工具,因为没有制定任何理论。但是,如果独立抽样的模型假设失败,该模型可能无论如何都是无用的,即使在其他情况下表现良好的交叉验证也是如此。最后,最有力的证明是令人满意地预测了多个不同来源的外部测试集。
回到 CV:Out-of-bag 通常是一种公认的 CV 类型。我个人认为 OOB-CV 提供了与 5-fold-CV 相似的结果,但这是一个非常小的麻烦。如果将 RF 与 SVM 进行比较,那么 OOB-CV 没有用,因为我们通常会避免使用 SVM。取而代之的是,SVM 和 RF 都将嵌入完全相同的交叉验证方案中,例如 10 倍 10 重复,每个重复具有匹配的分区。通常还需要对任何特征工程步骤进行交叉验证。如果要保持清洁,则可以将整个数据管道嵌入到 CV 中。
如果你用你的测试集(或交叉验证)调整你的模型,你会再次夸大你的假设空间,并且经过验证的预测性能可能过于乐观。相反,您将需要一个校准集(或校准 CV-loop)来调整和一个测试验证集(或验证 CV-loop)来评估您的最终最佳模型。
从极端的意义上说,只有当你看到这个结果时,你从不采取行动,你的验证分数才会是公正的。这就是验证的悖论,为什么我们会获得一个只有在你不采取行动的情况下才是正确的知识。在实践中,社区愿意接受一些发表偏见,即那些随机获得过度乐观验证的研究人员比那些不幸获得过度悲观验证的研究人员更有可能发表论文。因此有时为什么不能复制其他模型。