EM算法的计算复杂度是多少?

时间:2012-12-27 07:40:38

标签: machine-learning time-complexity cluster-analysis data-mining space-complexity

一般而言,更具体地说是伯努利混合模型(又名潜类分析)。

3 个答案:

答案 0 :(得分:6)

EM与K-means的Lloyds变体几乎相同。因此每次迭代都需要O(n*k)个距离计算。它们是更复杂的距离计算,但最终它们是马哈拉诺比斯距离的一些变体。

然而,k-means有一个非常好的终止行为。只有k ^ n个可能的群集分配。现在,如果在每一步中,你选择一个更好的,它将不得不在尝试所有k ^ n后终止最新的。但实际上,它通常会在最多几十步之后终止。

对于EM来说,这并不容易。对象不会分配给单个群集,但是在fuzzy-c-means中相对于所有群集分配。那就是你失去这种终止保证的时候。

因此,如果没有任何停止阈值,EM将无限优化集群分配,达到无限精度(假设您将以无限精度实现它)。

因此,EM的理论运行时为:无限

任何阈值(如果它只是硬件浮点精度)将使它更早完成。但是这里的理论极限很难与O(n*k*i)不同,其中i是迭代次数(可能是无限的,但如果你没有,你也可以设置为0我想做一次迭代。)

答案 1 :(得分:1)

由于EM算法本质上是迭代的,因此您必须决定终止标准。如果修改了步数的上限,运行时分析显然很容易。对于其他终止标准(如收敛到恒定差异),必须具体分析情况。

长话短说,“EM”的描述不包括终止标准,因此问题无法回答。

答案 2 :(得分:0)

这就是我的想法: 如果我们假设EM algorithm使用linear algebra,那么它的复杂性应该是 O(m.n ^ 3),其中m是数字 迭代,n是参数的数量。

迭代次数将受起始值质量的影响。良好的起始值意味着小m。

由于收敛到本地解决方案,不太好的起始值意味着更大的m甚至失败。可以存在本地解决方案,因为EM用于nonlinear的似然函数。

良好的起始值意味着您从围绕全局最优解的轨迹的凸起的吸引区开始。