gpt4 book ai didi

matlab - MATLAB 中的 GMM 对于同一文件给出不同的结果

转载 作者:行者123 更新时间:2023-11-30 09:22:39 25 4
gpt4 key购买 nike

我使用数据集在 Matlab 中构建了一个高斯混合模型:

model = gmdistribution.fit(data,M,'Replicates',5);

具有M = 3高斯分量。我测试了新数据:

[P, l] = posterior(model,new_data);

我多次运行该程序,但没有得到相同的结果。每次运行都会产生不同的对数似然值。我使用对数似然来做出决策,并且每次运行时相同数据 (new_data) 的该值都不同。它取决于什么?我该如何解决这个问题?

最佳答案

首先,假设您使用的是 Matlab 的新版本gmdistribution.fit文档表明 fit 方法已被弃用,并且 fitgmdist应该使用。请参阅here举个例子。

其次,gmdistribution.fit 的文档表明,如果 'Replicates' 选项大于 1,则 'randSample' 启动方法将用于产生初始参数。这可能是您观察到的变异性的原因(或至少原因之一)。

最后,您还可以尝试使用 rng在调用 gmdistribution.fit 来设置全局随机数流的种子之前(假设该函数在内部不使用它自己的流)。或者,您可以尝试指定 'Options'参数通过 statset :

seed = 1;
s = RandStream('mt19937ar','Seed',seed);
opts = statset('Streams',s);
model = gmdistribution.fit(data,M,'Replicates',5,'Options',opts);

我自己无法完全测试这一点 - 请参阅 gmdistribution类文档以获取更多详细信息。

关于matlab - MATLAB 中的 GMM 对于同一文件给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794049/

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