我正在使用mclust函数运行集群。需要获得算法用于获得答案的迭代次数。我似乎无法在任何地方找到它。我不介意使用其他能够使用EM执行“高斯混合模式”的函数,如果它将为我提供迭代次数作为其输出的一部分。
答案 0 :(得分:0)
据我所知,似乎没有明确的方法来提取这个。这是一个非常黑客和近似的方式来获得它。
您可以使用control
参数
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次迭代才能达到退出条件(使用默认的容差参数)。