- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 this thread 的后续内容。 ,我使用 GaussianNB 分类器得到了错误的结果,结果是因为我在进行实验的 Linux VM 上安装了 scikit-learn v0.10。我最终使用了 Bernoulli 和 Multinomial NB 分类器,但是当我(最终)在我的 MacBook 上安装了 scipy 时,我获取的 scikit-learn 版本是 0.13,这是撰写本文时的最新版本。现在我遇到了一个新问题:
有谁知道版本之间发生了什么变化?我查看了 repo 历史记录,但没有看到任何可以解释这种准确性变化的内容。由于我使用 BernoulliNB v0.10 获得了非常好的结果,因此我显然想使用它们,但如果没有对版本之间的冲突结果有更多的了解,我对此犹豫不决。
我尝试设置(较新的)class_prior 属性,但这并没有改变 0.13 的结果。
编辑:由于缺乏一个可行的示例(我会继续研究),0.13 的结果存在严重偏差,这不是我对贝叶斯分类器的期望,这让我相信这可能是对类(class)先前计算的回归,尽管我还没有找到它。例如:
0.10:
T\P F M
F 120 18
M 19 175
0.13:
T\P F M
F 119 19
M 59 135
编辑2:
我手工完成了一些示例。 0.13版本肯定是正确的,0.10版本肯定不是,这是我既怀疑又害怕的。 0.10 的误差似乎属于先前计算的类中。 _count
函数存在 bug,特别是 this line of the file ,类计数完全错误:与 the 0.13 branch 相比,忽略两个分支在不同位置引入平滑因子。
我必须更多地考虑这个问题,为什么糟糕的特征计数会在我的数据上产生如此好的性能,而且我仍然有点不确定为什么设置类先验不起作用。也许这是对源文件中已经存在的男性偏见的惩罚?
编辑3:
我相信这正是它正在做的事情。 _count
函数以及 fit
中特征先验的计算不会使该参数生效,因此虽然在 predict 中考虑了 class_priors
,它们在训练期间不用于构建模型。不确定这是否是故意的 - 您想忽略在测试时构建模型的先验吗?
最佳答案
总结我的结果,该错误存在于 BernoulliNB 分类器的 0.10 版本中,它在计算特征先验时扭曲了类计数,并且显然使结果模型产生偏差以产生更好的结果。我设法调整了它正在做的部分内容,并最终在 0.13 版本中获得了与(正确的)MultinomialNB 相同的性能。
关于machine-learning - Scikit-learn:BernoulliNB,v0.10 与 v0.13:结果截然不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16376587/
我有一个性别表单,第一个按钮如下所示 name=radio_43 第二个按钮显示如下: xpath=(//input[@name='radio_43'])[2] 为什么固定按钮名为 radio_43
我使用when.js作为 Mongoose 的 promise 库,并尝试获取不同的集合文件并返回结果作为 promise mongoose.Promise= require("when"); f
除了 Delta Manager 复制到所有 Tomcat 节点(即使在没有托管应用程序的节点上)并且在较小的集群中工作得更好以及 Backup Manager 仅复制到另一个 Tomcat 节点并在
Pytorch 提供了一个 lstsq函数,但它返回的结果与 numpy 的版本截然不同。这是一个示例输入及其两个结果: import numpy as np import torch a = tor
当有人发布的 jsperf 基准测试与我之前运行的几乎相同的基准测试冲突时,我遇到了一个非常有趣的问题。 Chrome 在这两行之间做了一些截然不同的事情: new Array(99999); //
我是一名优秀的程序员,十分优秀!