我使用sklearn的MultinomialNB获取一些文本数据 数据包含12个类 及其分类任务 将 MultinomialNB 应用于 CounterVectorizer 后,我检查了几个示例的预测类概率。由于某些原因,一个类显示 1.0概率。
[[3.91049692e-23,2.50074669e-28,1.85836050e-36,
4.29028609e-37,9.58721828e-35,4.20270658e-38,
1.21649822e-39,8.09756242e-39,1.09065133e-39,
1.00000000e + 00,7.31365410e-22,1.68756182e-37]]
这是一些例子的概率, 10级给出1.0概率。我不知道这是怎么可能的。
我还在这个例子中检查了类10的特定特征概率(p(x / class10),其中x∈class10)。并且它的非零(当然是因为MultinomialNB中的平滑)。
如果有人知道为什么会出现这种情况,请分享。评论是否需要有关代码的更多信息。
PS:模型也正确预测了大量数据(其中73%)。大多数错误的预测数据都有1.0概率等级。