- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用两个不同的分类器对相同的不平衡数据执行一些(二进制)文本分类。我想比较两个分类器的结果。
使用 sklearns 逻辑回归时,我可以选择设置 class_weight = 'balanced'
对于 sklearn 朴素贝叶斯,没有这样的参数可用。
我知道,我可以从较大的类中随机采样,以便最终使两个类的大小相同,但是数据丢失了。
为什么朴素贝叶斯没有这样的参数?我想这与算法的性质有关,但无法找到有关此特定问题的任何信息。我也想知道等价物是什么?如何实现类似的效果(分类器意识到不平衡的数据,并给予少数类更多的权重,而给予多数类更少的权重)?
最佳答案
我写这个部分是为了回应这里的另一个答案。
逻辑回归和朴素贝叶斯都是产生线性决策边界的线性模型。
逻辑回归是朴素贝叶斯(生成模型)的判别对应物。您解码每个模型以根据 p(label | data) 找到最佳标签。朴素贝叶斯的不同之处在于它通过贝叶斯规则做到这一点:p(label | data) ∝ p(data | label) * p(label)。
(另一个答案是正确的,根据朴素贝叶斯假设,朴素贝叶斯特征彼此独立(给定类别)。对于共线特征,这有时会导致朴素贝叶斯的概率估计错误——尽管分类是还是很不错的。)
这里的分解是朴素贝叶斯如何很好地处理类不平衡:它为每个类保留单独的书籍。每个(特征,标签)对都有一个参数。这意味着超普通类不能搞乱超稀有类,反之亦然。
不平衡可能会渗透到一个地方:p(labels) 分布。它将匹配您训练集中的经验分布:如果它是 90% 的标签 A,那么 p(A) 将为 0.9。
如果您认为标签的训练分布不能代表测试分布,您可以手动更改 p(labels) 值以匹配您对标签 A 或标签 B 等出现频率的先验信念.
关于python - class_weight = 'balanced' 相当于朴素贝叶斯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66280588/
我是一名优秀的程序员,十分优秀!