O(logk)竞争复杂性的含义

时间:2017-03-28 06:27:55

标签: algorithm performance k-means

我正在研究现有算法以提高其复杂性。现有的算法使用K-means进行聚类,而我选择使用K-means ++来做同样的事情。

选择K-means ++是因为与K-mean相比,它主要具有更快,更准确的聚类结果。

现在,在最后,我必须比较新算法和现有算法的复杂性,我发现我无法理解K-means ++具有 O(logk)的复杂性这一事实竞争性

我试过在网上到处寻找解释,包括堆栈溢出。

我唯一理解的是,竞争力与“在线”和“离线”算法有关。有人可以解释一下它在这里适用的方法吗?

1 个答案:

答案 0 :(得分:1)

你正在读的完整句子说的是" k-means ++聚类是O(log k) - 与最佳k-means解决方案竞争"。

关于其算法复杂性的陈述。它是关于其有效性的声明。您可以将O-notation用于其他事情。

K-意味着尽量减少潜力"计算为点集中心点的平方距离之和。

对于任何特定的群集问题,K-means ++解决方案的预期潜力最多可能是最佳解决方案的潜力的8(ln k + 2)倍。为简洁起见,8(ln k + 2)缩短为O(log k)

k-means ++解决方案为O(log k) - 竞争性的语句的确切含义是存在一些常数C,使得k-means ++潜力与最佳潜力之间的预期比率对于所有足够大的k,小于C *(log k)。

最小的这样的常数约为8