我一直在环顾四周,似乎无法找到这个问题的答案:
如果我训练朴素贝叶斯成为某些数据的分类器。然后我重新使用这个训练数据作为测试数据。我不应该获得 100% 的分类成功吗?谢谢阅读!
编辑:似乎我激发了超出我理解水平的讨论。因此,我不认为我应该承担“接受”答案的角色。但是,我很感谢您的意见,并会阅读所有答案。
最佳答案
实际上,尽管被接受了答案,@flyingmeatball 的答案在这种特殊情况下(至少部分)是错误的。它描述了相关现象,但显然不是所给情况的关键。
您所描述的是一种情况,您希望您的模型具有 100% 的训练准确率,但事实并非如此。这与“数据不能充分表达现象”无关 - 这对于高 泛化 错误是正确的,而不是 训练一个 。
小于 100% 的训练错误意味着,数据本身可能太嘈杂而无法建模(这在 flymeatball 建议),但实际上,对于训练集,情况是 当且仅当有两个完全相同的点具有不同的标签 .如果情况并非如此(并且可能不是),则实际的“问题”是您选择的模型具有一些内部 偏差 。简单来说 - 将其视为 对数据的假设 ,甚至是约束,即使数据明显不遵循 ,您的模型 也不会改变。特别地,朴素贝叶斯有两个这样的假设:
那我们为什么要做这样的假设呢?嗯,有很多原因,但其中一个是 因为我们关心泛化而不是训练 ,因此它是一种以“欠拟合”训练集为代价防止我们的模型过度拟合的方法。这也有助于处理噪音,简化优化并制作许多其他精彩的东西:-)
希望这可以帮助。
关于machine-learning - 理解朴素贝叶斯,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37118156/