我的具有 5 个最大特征的 RandomForest 模型的结果如下:
84% 训练准确率
76% 测试准确率
具有 10 个最大特征的结果:
79% 训练准确率
77% 测试准确率
我应该支持哪个结果?我是否会说第二个结果更好,因为即使训练准确度较低,测试准确度也更高?最终,您希望模型在测试(看不见的)数据上表现最佳?
我的具有 5 个最大特征的 RandomForest 模型的结果如下:
84% 训练准确率
76% 测试准确率
具有 10 个最大特征的结果:
79% 训练准确率
77% 测试准确率
我应该支持哪个结果?我是否会说第二个结果更好,因为即使训练准确度较低,测试准确度也更高?最终,您希望模型在测试(看不见的)数据上表现最佳?
测试准确度更好地反映了泛化误差,因此您需要测试准确度更高的那个。在您的第一个设置中,较高的训练准确度表明过度拟合,因为它明显高于训练准确度。这也是为什么它的泛化不如第二个。
你问了两个问题:
1) 你是否根据训练或测试性能来决定模型的优越性?
2)您应该喜欢哪种型号?
两个我都会回答。
1) 首先,访问Cross Validated(Stack Exchange 统计和类似主题的站点,与该站点有一些重叠)并查看 Frank Harrell 对作为性能度量的准确性(甚至 AUC)所说的话(对于例如,他的论点总结在这个问题的公认答案中)。我认为他有点过分了,但他反对这些指标的论点是令人信服的。但是,假设这种准确性确实适合您。然后,正如其他答案所报告的那样,您将根据样本外的表现来判断模型的优越性。
2)准确性的差异是如此之小,以至于我认为您不能说任何一种方式。模型 2 在其他训练集上是否始终表现更好?除非你能证明这一点,否则我不会看到令人信服的证据来支持这两种模式。事实上,我倾向于使用第一个模型,因为它似乎更简单。
最后一点:它可以帮助查看错误率而不是准确性。如果你有 98% 的准确率和 99% 的准确率,那可能看起来不像是这样的改进。然而,这些对应于 2% 的错误分类和 1% 的错误分类,这意味着具有 99% 准确率的模型可以被认为是准确率的两倍(错误的频率是一半)。