Machine learning k-质心如何选取新质心?

Machine learning k-质心如何选取新质心?,machine-learning,cluster-analysis,data-mining,Machine Learning,Cluster Analysis,Data Mining,我对K-质心的理解是,质心是从现有点随机选取的。通过将剩余点除以最近的质心来计算簇。计算误差(绝对距离) a) 如何拾取新质心?从示例中可以看出它们是随机选取的吗?再次计算误差,看看这些新的质心是好是坏 b) 你怎么知道你需要停止拾取新的质心?值得一读k-medoid算法的原理。关于第一步随机选择的n数据点的kmedoid,您是对的 通过交换循环中的每个medoidm和每个非medoido并再次计算距离,可以拾取新的medoid。如果成本增加,则撤消交换 如果没有交换整个迭代,算法将停止。选择初

我对K-质心的理解是,质心是从现有点随机选取的。通过将剩余点除以最近的质心来计算簇。计算误差(绝对距离)

a) 如何拾取新质心?从示例中可以看出它们是随机选取的吗?再次计算误差,看看这些新的质心是好是坏

b) 你怎么知道你需要停止拾取新的质心?

值得一读k-medoid算法的原理。关于第一步随机选择的
n
数据点的
k
medoid,您是对的

通过交换循环中的每个medoid
m
和每个非medoid
o
并再次计算距离,可以拾取新的medoid。如果成本增加,则撤消交换


如果没有交换整个迭代,算法将停止。

选择初始模型的过程相当复杂。。许多人似乎只是使用随机的初始中心

在此之后,k medoid始终考虑将其中一个medoid替换为一个非medoid的所有可能变化。如果这种改变能改善结果,那么最好的改变就会被应用。如果没有进一步的改进,算法将停止


不要依赖模糊的描述。阅读原始出版物。

在回答关于k-medoids的简要说明之前,我已经在前两个步骤中说明了这一点,最后两个步骤将回答您的问题

1) k-质心的第一步是从数据集中随机选取k-质心/质心。假设您的数据集包含“n”个点,那么这些k-medoid将从这些“n”个点中选择。现在,您可以随机选择它们,也可以使用k-means++中使用的智能初始化等方法

2) 第二步是赋值步骤,在该步骤中,取数据集中的每个点,找出其与这些k-质心的距离,找到最小的一个,并将该数据点添加到与C_j质心相对应的集S_j(因为我们有k-质心C_1,C_2,…,C_k)

3) 算法的第三步是更新步骤。这将回答您关于初始化后如何拾取新质心的问题。我将用一个例子来解释更新步骤,使之更清楚。 假设数据集中有十个点 (x_1、x_2、x_3、x_4、x_5、x_6、x_7、x_8、x_9、x_10)。现在假设我们的问题是2-簇1,那么我们首先从这十个点中随机选择2-质心/质心,假设这2-质心是(x_2,x_5)。分配步骤将保持不变。现在在更新中,您将选择那些不是medoid的点(x_2、x_5之外的点),然后再次重复分配和更新步骤,以找到损失,即x_i与medoid之间距离的平方。现在,您将比较使用medoid x_2发现的损失和非medoid point发现的损失。如果损失减少,则您将与任何减少损失的非medoid点交换x_2点。如果损失未减少,则您将保留x_2作为您的medoid,并且不会交换。 因此,在更新步骤中可能会有很多交换,这也使得该算法的计算量很高

4) 最后一步将回答您的第二个问题,即何时停止拾取新质心。当您将中心点/质心点的损失与非中心点计算的损失进行比较时,如果差异非常小,您可以停止并仅将中心点作为质心。但是如果损失非常大,则您必须执行交换,直到损失减少

我希望这能回答你的问题