【问题标题】:R using mclust for gaussian mixture mode how to get number of iterationsR使用mclust进行高斯混合模式如何获得迭代次数
【发布时间】:2014-12-20 08:44:07
【问题描述】:

我正在使用 mclust 函数运行集群。需要得到迭代次数的算法用来得到答案。我似乎在任何地方都找不到它。我不介意使用其他将使用 EM 执行“高斯混合模式”的函数,如果它会为我提供迭代次数作为其输出的一部分。

【问题讨论】:

    标签: r iteration cluster-analysis


    【解决方案1】:

    据我所知,似乎没有明确的方法来提取它。不过,这里有一个非常老套和近似的方法。

    您可以使用control 参数设置 EM 的最大迭代次数,

    x<-c(rnorm(100),rnorm(100,10,1))
    mod<-Mclust(x,control = emControl(itmax=100))
    

    这些默认设置为Inf,因此只有当对数似然度以小于容差的增量变化时,EM才会终止。如果设置itmax,EM 将终止,但会发出警告,指出算法在达到容差界限之前停止。

    因此,您可以调整 itmax 几次,以了解在 EM 自然终止之前需要多少次迭代。例如,

    mod<-Mclust(x,control = emControl(itmax=102))
    

    抛出警告但

    mod<-Mclust(x,control = emControl(itmax=103))
    

    没有。

    所以似乎需要 103 次迭代才能达到退出条件(使用默认容差参数)。

    【讨论】:

    • 谢谢基根。我想到了这一点,但据我了解,itmax 限制了所有模型名称的迭代次数。这意味着,对于某些模型,它可能是限制器,而对于某些模型则不是。我仍然无法理解总共执行了多少次迭代。如果我错了,请纠正我。
    猜你喜欢
    • 2014-03-27
    • 2015-01-02
    • 2019-08-05
    • 2015-03-30
    • 2018-07-16
    • 2014-01-09
    • 1970-01-01
    • 2021-12-28
    • 2015-05-09
    相关资源
    最近更新 更多