问题标签 [bernoulli-probability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - Scikit-learn:BernoulliNB,v0.10 与 v0.13:非常不同的结果
这是该线程的后续内容,在那里我使用 GaussianNB 分类器得到了错误的结果,结果证明这是因为我在我正在做实验的 linux VM 上安装了 scikit-learn v0.10。我最终改用了 Bernoulli 和 Multinomial NB 分类器,但是当我(最终)在我的 macbook 上安装了 scipy 时,我抓取的 scikit-learn 版本是 0.13,这是撰写本文时的最新版本。我现在遇到了一个新问题:
- 在 v0.10 上,我使用 BernoulliNB 分类器在我的一个功能集上获得了超过 90% 的准确率,这是迄今为止我获得的唯一显着改进。
- 在 v0.13 上,大约 67% 使用完全相同的代码
有谁知道版本之间有什么变化?我查看了回购历史,但没有看到任何可以解释这种准确性变化的原因。由于我使用 BernoulliNB v0.10 获得了非常好的结果,我显然很想使用它们,但我很犹豫是否这样做,而不是对版本之间的冲突结果有更多的了解。
我尝试设置(较新的)class_prior 属性,但这并没有改变 0.13 的结果。
编辑:没有提出一个可行的例子(我会继续努力),0.13的结果有很大的偏差,这不是我对贝叶斯分类器的期望,让我相信它可能有是对类先前计算的回归,尽管我还没有找到它。例如:
编辑2:
我手工完成了几个例子。0.13版肯定是对的,0.10版肯定不是,这是我既怀疑又害怕的。0.10 中的错误似乎在类先验计算中。该_count
函数存在错误,特别是在文件的这一行,类计数完全错误:与0.13 分支相比,忽略了两个分支在不同位置引入了平滑因子。
我必须更多地考虑这一点,为什么拙劣的特征计数会导致我的数据表现如此出色,我仍然有点不确定为什么设置类先验不起作用。也许这是对源文件中已经存在的男性偏见的惩罚?
编辑3:
我相信这正是它正在做的事情。该_count
函数,以及因此在 内的特征先验的计算fit
,不会使该参数生效,因此虽然在 内考虑了 class_priors predict
,但它们不用于在训练期间构建模型。不确定这是否是故意的——你想在测试时忽略用于构建模型的先验吗?
r - 为活着的人数生成随机值以及如何在 R 中转置数据
我有一个关于生成随机样本的问题。我对 R 很陌生,并尝试过自己的模拟,但我不确定它是否正确。真的希望有人可以帮助我。
例如,目前有 100 人活着。基本上,每个人要么在现在和下一个时期之间以 0.5 的概率死亡,要么以 0.5 的概率存活到下一个时期 --> 即伯努利试验,成功概率为 0.5。
我想生成 20 个样本来获取明年活着的人数。所以我做了以下事情。
这样对吗?
以及如何在 R 中转置我的数据?目前我的数据在行;看起来像这样:-
如何将其更改为列,如下所示:
distribution - 如何获得因伯努利变量之和的分布
我有 N 个伯努利变量,X1
, ...,XN
和,对于每个,和Xi~B(1, pi)
,都是已知的, 现在我需要得到 的分布。pi
Xi
Y=X1+...XN
Y
如果Xi
和Xj
时 是独立i!=j
的,那么我可以使用模拟:
但是现在Xi
和Xj
是依赖的,所以我还需要考虑相关性,假设什么corr(Xi, Xj)=0.2
时候i!=j
,我怎样才能将相关性插入到模拟中?或者通过其他方式得到 Y 的分布?
感谢您的帮助和建议。
r - 需要帮助构建蒙特卡罗模拟并使用 R 找到结果的百分位数
我有一个包含一组事件(约 40 个项目)的 CSV 文件,所有这些事件都可能发生或不发生,具体取决于给定的概率。列:事件名称、产量大小、概率。
我对这些数据感兴趣的是集合的总收益大小(集合的所有收益的总和),可能还有每个事件的收益总和。因此,由于事件可能不会发生,因此集合的总产量大小可能不同,我需要对集合进行蒙特卡罗模拟,对概率列进行伯努利试验。
最后,我需要计算整个集合的产量总和的百分位数或所有蒙特卡洛模拟迭代(场景)的特定事件。
我很难写下来..(我还在学习 R,我更习惯于 Java/C# 等)
我目前制作的代码:
输出如下:
但是我不知道如何对每个场景确实存在的事件(Exists == 1)求和 Yield,更不用说在总和上找到一个百分位数(带有分位数函数)。你会怎么做呢?
关于数据结构,我有一些想法,但我不确定..
也许我应该转置预测,然后以某种方式逐一迭代 MC 场景并对数据求和?
也许我应该从结果中过滤掉不存在的事件(Exists == 0)。但是我应该如何以及在哪里做呢?
如果结果看起来像这样,它可能也会更有意义(但我也不知道如何实现这一点):
请分享你的想法!
谢谢!
matlab - 在matlab中用有偏见的硬币投掷无偏见的硬币
我有一个关于处理偏置硬币的 MATLAB 问题的问题。假设我想模拟一个偏硬币,其出现正面的概率符合以下数据集p ={0.5,0.4,0.3,0.2, 0.1}
。
我如何从这个数据集中任意选择一个假设的硬币,并确定它在 MATLAB 中是否是无偏的,因为N是100到1000步长为100的硬币翻转N次。由于我对 Matlab 的了解有限,我希望能在这个项目中得到一些帮助。我发现这个网站有一些指针http://www.wikihow.com/Simulate-a-Fair-Coin-Toss-With-a-Biased-Coin
我的两次抛硬币的matlab代码
我的第一个问题代码
r - 伯努利数据模型的 Rao 分数测试的 R 代码是否正确?
我是一个完整的统计菜鸟,并且是 R 的新手,因此提出了这个问题。当一个人是二元的并且每个观察都具有伯努利分布时,我试图为特定情况找到Rao 分数的实现。data
我偶然发现anova
了 R 语言,但不明白如何使用它。因此,我自己尝试为这个特殊情况实施 Rao 分数:
我很确定我的代码中有一个错误,因为它在以下场景中只产生两个不同的 p 值:
有人可以告诉我问题出在哪里吗?您能否向我指出 R 中的内置解决方案?
java - `org.apache.commons.math3.distribution.BinomialDistribution(1,p)` 会带来很多性能开销吗?
伯努利分布等价于只有 1 次试验的二项分布,即BinomialDistribution(1,p)
来自 Apache Commons Math 库。伯努利分布显然比一般的二项分布要简单得多。
BernoulliDistribution(p)
如果性能很重要,我应该通过子类化自己来AbstractIntegerDistribution
实现,还是仅仅通过使用就可以获得几乎相同的性能BinomialDistribution(1,p)
?
matlab - 相关伯努利试验置信区间
我想知道是否有一种方法可以根据其历史为具有伯努利分布的随机变量建立置信区间。我的意思是,如果其状态的顺序是 11100(即让我们考虑其最后的 5 个状态),则置信区间应该与历史为 00111 的置信区间不同,因为在第二种情况下,“开启”状态是最新的,而中心的间隔必须比第一种情况更接近 1。先感谢您。
python - Python/Scipy 中的伯努利分布
我正在尝试使用伯努利分布来生成一个矩阵,其中每个行单元格的概率line_id/total_lines
为1.0
。
那是我的代码:
但是,对于生成的每个图像,我都会得到一条线(这不是第一条线),由零完成。这是最奇怪的:
这个:
只打印第一行。但是,我仍然可以在所有图像上看到三行(总是相同的行)被 0 满足。
python - PyMC Bernoulli 模型检查
我目前正在尝试使用 PyMC 进行模型检查,其中我的模型是伯努利模型,并且我之前有 Beta。我想做一个(i)gof图以及(ii)计算后验预测p值。
我已经让我的代码使用二项式模型运行,但我很难找到使伯努利模型工作的正确方法。不幸的是,在任何地方都没有我可以使用的示例。我的代码如下所示:
我遇到的主要问题是确定discrepancy
函数的预期值。仅使用p.trace()
在这里不起作用,因为这些是概率。不知何故,我需要在这里合并样本量,但我正在努力以与二项式模型类似的方式来做到这一点。我也不太确定,如果我做得gof_plot
正确。
希望有人可以在这里帮助我!谢谢!