- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用PRTools MATLAB 库用于训练一些分类器、生成测试数据并测试分类器。
我有以下详细信息:
我想做:
计算并绘制错误分类的未知概率(表示为 q)的贝叶斯后验分布,即作为 q 本身的概率密度函数(因此,P(q) 将在 q 上绘制,从 0 到 1) .
我有这个(数学公式,不是 matlab 代码!):
Posterior = Likelihood * Prior / Normalization constant =
P(q|k,N) = P(k|q,N) * P(q|N) / P(k|N)
先验设置为1,所以我只需要计算似然和归一化常数。
我知道可能性可以表示为(其中 B(N,k) 是二项式系数):
P(k|q,N) = B(N,k) * q^k * (1-q)^(N-k)
...所以归一化常数只是上面后验的积分,从 0 到 1:
P(k|N) = B(N,k) * integralFromZeroToOne( q^k * (1-q)^(N-k) )
(二项式系数 ( B(N,k) )可以省略,因为它同时出现在似然性和归一化常数中)
现在,我听说归一化常数的积分应该能够作为级数进行计算......类似于:
k!(N-k)! / (N+1)!
这是正确的吗? (我有这个系列的一些讲义,但无法弄清楚它是针对归一化常数积分,还是针对错误分类(q)的整体分布)
此外,欢迎提供有关如何实际计算的提示? (阶乘很容易产生截断错误,对吗?)...以及,如何实际计算最终图(q 上的后验分布,从 0 到 1)。
最佳答案
我确实没有对贝叶斯后验分布做太多工作(并且有一段时间没有),但我会尽力帮助您提供帮助。首先,
k!(N-k)! / (N+1)! = 1 / (B(N,k) * (N + 1))
您可以使用 nchoosek() 在 Matlab 中计算二项式系数,尽管文档中确实指出大系数可能存在精度问题。 N 和 k 有多大?
其次,根据 Mathematica 的说法,
integralFromZeroToOne( q^k * (1-q)^(N-k) ) = pi * csc((k-N)*pi) * Gamma(1+k)/(Gamma(k-N) * Gamma(2+N))
其中 csc()
是余割函数,Gamma()
是 gamma function 。然而,Gamma(x) = (x-1)!我们稍后会使用它。问题是我们在底部有一个函数 Gamma(k-N) 并且 k-N 将为负。然而,reflection formula将帮助我们做到这一点,以便我们最终得到:
= (N-k)! * k! / (N+1)!
显然,您的笔记是正确的。
关于matlab - 使用 MATLAB 中的 PRTools 计算未知错误分类的后验分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908923/
我正在使用PRTools MATLAB 库用于训练一些分类器、生成测试数据并测试分类器。 我有以下详细信息: N:测试示例总数 k:# 的每个错误分类分类器和类 我想做: 计算并绘制错误分类的未知概率
我有一个带有标签和数据点的数据集,问题是我想获得线性估计器而不是分类问题,例如: dataset=prdataset([2,4,6,8]',[1,2,3,4]') testset=prdataset(
我是一名优秀的程序员,十分优秀!