我正在浏览k-means 维基百科页面。基于算法,我认为复杂度是O(n*k*i)
(n
=总元素,k
=集群迭代次数)
那么有人可以向我解释一下来自维基百科的这个声明,这个 NP 有多难?
如果
k
和d
(维度)是固定的,则问题可以及时准确地解决,其中是要聚类的实体数。O(ndk+1 log n)
n
我正在浏览k-means 维基百科页面。基于算法,我认为复杂度是O(n*k*i)
(n
=总元素,k
=集群迭代次数)
那么有人可以向我解释一下来自维基百科的这个声明,这个 NP 有多难?
如果
k
和d
(维度)是固定的,则问题可以及时准确地解决,其中是要聚类的实体数。O(ndk+1 log n)
n
在这个答案中,请注意,i
在 k-means 目标公式中i
使用的和在 k-means 的时间复杂度分析中使用的(即,直到收敛所需的迭代次数)是不同的。
问题是 NP-Hard,因为有另一个众所周知的 NP 难题可以简化为(平面)k-means 问题。查看论文The Planar k-means Problem is NP-hard (by Mahajan et al.) 了解更多信息。