【问题标题】:Expectation Maximization in Matlab on Missing DataMatlab中缺失数据的期望最大化
【发布时间】:2011-11-11 04:22:51
【问题描述】:

我必须使用 EM 来估计两个类中每个类的高斯分布的均值和协方差。它们也缺少一些属性。

每个对象的类是已知的。因此问题基本上归结为拟合缺少元素的高斯模型。

最好使用哪个库?

ECM算法与EM算法有何不同?

【问题讨论】:

    标签: matlab machine-learning data-mining gaussian expectation-maximization


    【解决方案1】:

    谢谢大家。但是我使用ecmnmle 来估计参数,然后获得marginals 的分布,稍后在贝叶斯分类中使用。它在 2 个类上以 0.9 和 0.69 的精度工作得很好。

    【讨论】:

      【解决方案2】:

      如果您有权访问统计工具箱,则可以使用 GMDISTRIBUTION 类使用 EM 算法拟合高斯混合模型。

      这是一个例子:

      %# sample dataset
      load fisheriris
      data = meas(:,1:2);
      label = species;
      
      %# fit GMM using EM
      K = 2;
      obj = gmdistribution.fit(data, K);
      
      %# assign points to mixtures: argmax_k P(M(k)|data)
      P = posterior(obj, data);
      [~,mIDX] = max(P,[],2);
      
      %# GMM components
      obj.mu             %# means
      obj.Sigma          %# covariances
      obj.PComponents    %# mixture weights
      
      %# visualize original data clusters
      figure
      gscatter(data(:,1), data(:,2), label)
      
      %# visualize mixtures found
      figure
      gscatter(data(:,1), data(:,2), mIDX), hold on
      ezcontour(@(x,y)pdf(obj,[x y]), xlim(), ylim())
      

      如果没有,请查看出色的 Netlab Toolbox,因为它具有 GMM 实现。

      【讨论】:

      • 我认为如果类不知道应该使用这个。因为我知道这些类,所以最好分别将高斯拟合到它们。希望后者能在我的情况下给出更好的结果。
      【解决方案3】:

      请看PMTK toolkit

      这里是EM implementation(适合数据可能包含 NaN 条目的高斯混合)

      【讨论】:

      • ??? 'cell' 类型的输入参数的未定义函数或方法 'process_options'。 ==> mixGaussMissingFitEm 在 12 时出错 [model.cpd.mu, model.cpd.Sigma, model.mixWeight, model.doMap, model.diagCov, EMargs] = ...
      猜你喜欢
      • 2021-05-31
      • 2013-12-09
      • 2013-05-23
      • 2021-05-03
      • 2016-09-07
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2013-01-26
      相关资源
      最近更新 更多