gpt4 book ai didi

matlab - 来自 matlab "fitgmdist"函数的不合理 [正] 对数似然值

转载 作者:行者123 更新时间:2023-12-02 04:44:15 26 4
gpt4 key购买 nike

我想用高斯混合模型拟合数据集,数据集包含大约 120k 个样本,每个样本有大约 130 个维度。当我使用 matlab 执行此操作时,我运行脚本(簇号为 1000):

gm = fitgmdist(data, 1000, 'Options', statset('Display', 'iter'), 'RegularizationValue', 0.01);

我得到以下输出:

  iter      log-likelihood
1 -6.66298e+07
2 -1.87763e+07
3 -5.00384e+06
4 -1.11863e+06
5 299767
6 985834
7 1.39525e+06
8 1.70956e+06
9 1.94637e+06

对数似然大于 0!我认为这是不合理的,也不知道为什么。

有人能帮帮我吗?

最佳答案

首先,这不是你的数据集有多大的问题。下面是一些使用非常小的数据集产生类似结果的代码:

options = statset('Display', 'iter');
x = ones(5,2) + (rand(5,2)-0.5)/1000;
fitgmdist(x,1,'Options',options);

这产生

iter     log-likelihood
1 64.4731
2 73.4987
3 73.4987

您当然知道对数函数(自然对数)的范围从 -inf 到 +inf。我猜你的问题是你认为日志的输入(即后验函数)应该以 [0,1] 为界。好吧,后验函数是一个 pdf 函数,这意味着对于非常密集的数据集,它的值可能会非常大。

PDF 必须是正数(这就是我们可以对它们使用对数的原因)并且必须积分为 1。但它们不受 [0,1] 的限制。

你可以通过降低上面代码中的密度来验证这一点

x = ones(5,2) + (rand(5,2)-0.5)/1;
fitgmdist(x,1,'Options',options);

这产生

iter     log-likelihood
1 -8.99083
2 -3.06465
3 -3.06465

因此,我宁愿假设您的数据集包含多个重复(或非常接近)的值。

关于matlab - 来自 matlab "fitgmdist"函数的不合理 [正] 对数似然值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34705665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com