您好,我正在使用 Spark ML 优化朴素贝叶斯多类分类器。
我有大约 300 个类别,我正在对文本文档进行分类。训练集足够平衡,每个类别大约有 300 个训练样例。
一切看起来都很好,并且分类器在看不见的文档上以可接受的精度工作。但是我注意到,通常在对新文档进行分类时,分类器通常将非常高的概率分配给其中一个类别(预测概率几乎等于 1),而其他类别的概率非常低(接近于零) )。
这种现象的可能原因是什么?
- 我能想到一个可能的原因,就是某些文档中的所有单词都没有出现在训练数据集中的某些类别中?但我并不完全相信这一点,特别是对于大多数结果,总是有一个类别具有很高的概率,而所有其他类别的概率都非常低。
- 还有其他解释或理由吗?
我想补充一点,在 SPARK ML 中有一种叫做“原始预测”的东西,当我查看它时,我可以看到负数,但它们或多或少具有可比较的幅度,因此即使是高概率的类别也具有可比较的原始预测分数,但我在解释这个分数时发现困难。