2

我有一个obj64 维的高斯混合分布对象,想把它放在pdf函数中找出某个点的概率。

然而,当我输入pdf(obj,obj.mu(1,:))测试对象时,它会产生非常高的概率(如 2.4845e+069)

这没有意义,因为概率应该介于零和一之间。

我的matlab有问题吗?

ps 甚至pdf(obj,obj.mu(1,:)+obj.Sigma(1,1)*rand())产生高概率 (2.1682e+069)

4

1 回答 1

2

首先要做的事情是:概率密度函数并不总是评估为 1,它只是在其域上积分为 1。

此外,您看到的是拟合高斯混合模型时的奇点问题(参见第 434 页,图 9.7)。某些组件崩溃到单个数据点不可避免地会导致方差变为 0 并且 PDF 爆炸。这在高斯混合模型中经常遇到,因为它不是对数凸的,并且似然函数中有很多局部最大值。我们试图找到一个表现良好的、表现良好的局部最大值,而奇点是特别糟糕的情况。

当您看到这一点时,您将希望以不同的起点重新运行算法或减少您正在使用的组件数量。上面的书还建议将特定组件重置为不同的值。

另一种方法是使用贝叶斯方法,对参数采用先验或正则化项,这将惩罚古怪的值,例如 0 sigma 参数。

您可以使用不同的起始值间接控制第一部分gmdistribution.fit。对于第二部分,您可以使用Regularize参数: http: //www.mathworks.com/help/stats/gmdistribution.fit.html

于 2013-03-22T05:18:50.830 回答