首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >K-means++算法

K-means++算法
EN

Stack Overflow用户
提问于 2013-07-05 09:38:12
回答 3查看 946关注 0票数 5

我读了论文k-means++: The Advantages of Careful Seeding,但不太理解提供的算法:

“设D(x)表示从数据点x到我们已经选择的最近中心的最短距离。

1a.从X中随机均匀地选择初始中心c1。

1b。选择下一个中心ci,选择ci = x‘∈X with probability (D(x')^2) / Sum_of(D(x)^2)

1c。重复步骤1b,直到我们选择了总共k个中心。

2-4。继续使用标准k-means算法。“

(最好看看上面链接中的算法)

尤其是第1b步。"selecting ci = x‘∈X with probability (D(x')^2) / Sumof(D(x)^2)“是什么意思?它们是否意味着选择具有最大比例的元素?如何进行这样的计算才能选择最优的质心?

EN

回答 3

Stack Overflow用户

发布于 2013-07-05 09:55:42

对所有点X∈X定义函数D(x)

在步骤1b中,我们必须选择某个点作为新的中心。我们将在所有点(不是中心点)之间随机选择。但我们不会给每个点一个平等的机会;在我们选择之前,我们将为不同的点分配不同的概率。这些概率的总和必须为1。

考虑D(x)^2。我们可以在每个点对其求值,并将值相加: Sum_of(D(x)^2)。

然后我们可以给每个点x‘分配一个等于D(x')^2 / Sum_of(D(x)^2)的概率。这些概率加起来为1,并且给出了远离所有现有中心的更好的机会。

票数 5
EN

Stack Overflow用户

发布于 2013-07-05 09:53:46

http://en.wikipedia.org/wiki/K-means%2B%2B

代码语言:javascript
运行
复制
   1. Choose one center uniformly at random from among the data points.
   2. For each data point x, compute D(x), the distance between x and the nearest center that has already been chosen.
   3. Choose one new data point at random as a new center, using a weighted probability distribution where a point x is chosen with probability proportional to D(x)2.
   4. Repeat Steps 2 and 3 until k centers have been chosen.
   5. Now that the initial centers have been chosen, proceed using standard k-means clustering.
票数 0
EN

Stack Overflow用户

发布于 2018-12-25 19:28:59

K-Means和K-Means++之间最大的区别是初始中心的选择方式。K-means算法随机选择初始中心。在选择初始中心之前,K-Menas++计算点和第一个中心之间的所有距离,以使所有要选择的中心彼此远离。如果选择一个中心靠近其他中心,则分配给相应中心的点需要多次迭代以分离群集。然而,如果两个中心的距离足够远,它们属于一个集群的概率很小,并且很容易将集群分开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17479973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档