【发布时间】:2014-12-20 08:44:07
【问题描述】:
我正在使用 mclust 函数运行集群。需要得到迭代次数的算法用来得到答案。我似乎在任何地方都找不到它。我不介意使用其他将使用 EM 执行“高斯混合模式”的函数,如果它会为我提供迭代次数作为其输出的一部分。
【问题讨论】:
标签: r iteration cluster-analysis
我正在使用 mclust 函数运行集群。需要得到迭代次数的算法用来得到答案。我似乎在任何地方都找不到它。我不介意使用其他将使用 EM 执行“高斯混合模式”的函数,如果它会为我提供迭代次数作为其输出的一部分。
【问题讨论】:
标签: r iteration cluster-analysis
据我所知,似乎没有明确的方法来提取它。不过,这里有一个非常老套和近似的方法。
您可以使用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 次迭代才能达到退出条件(使用默认容差参数)。
【讨论】: