Centroids
首先将明确什么是 centroid 质心 ,如果理解可以直接跳到第二部分。
质心(centroid) ,即质量中心的简称,在物质系统中,被认为是质量集中于此的一个假想点。举一个简单的案例:如何求三角形的质心?求三角形的质心,首先先找到每个边的中点,即
,
,
K-means Clustering
首先,明确 K-means算法 属于机器学习中非监督学习的聚类算法。所以数据集中不会包含任何 标记Label 信息,而是需要按照算法将元素进行分类。
K-means Algorithm 案例
为了理解 K-means 在干啥,举例如下:
目标:坐标系中有30个点,我们想将这30个点分为两类。
首先,我们在坐标中任意取两个点 A,B 作为质心 Centroids。
然后,这30个点根据每个点与 A B 的距离进行判断,距离哪个近就归属于哪个部分。
根据距离的判断,我们将这30个点分成了两个部分
然后我们分别计算红色范围内的质心,以及蓝色范围内的质心。更新红色质心和蓝色质心的位置。
、
然后删除圆圈,计算这更新后的两个质心距离所有点距离的远近,然后再次按照远近重新界定范围值。
重复步骤,再次计算当前两个圈内所有点的质心,然后更新这两个质心的位置到新的位置。
然后再次测量当前两个质点距离所有30个点的距离,然后按照远近再次分类:
然后再次计算圈内所有点的质心,更新 与
再次测量两个质心距离所有30个点分别的距离的时候,发现没有变化,则 K-means 结束,完成任务。
K-means 步骤
步骤一: 根据题目要求分为两个部分,则在坐标系中随意找到两个点。
步骤二: 计算距离,进行分类:
将每个点与 质心A 连线,求其距离,记为 ;
将每个点与 质心B 连线,求其距离,记为
对于每个点,判断距离哪个质心近,则分配给哪个质心,完成分类。
步骤三: 将分好类的点计算其质心,然后将之前的两个质心分别移动到新的质心的位置上。
步骤四: 重复步骤二,然后执行步骤三,直到执行步骤二时发现所有点的分配没有发生变化,则结束。
在 【ML31】Advanced K-means 中,将详细阐述 K-means 算法 的详细内容,包含如何选择k值以及python程序实现。