1.K-means算法定义

《Machine Learning》第九讲 K-means算法

       首先是随机地初始化 k 个聚类中心 μ1、μ2、μ3,…,μk,这些聚类中心的维度和数据集中的 x 维度是一样的,并且聚类中心是随机的,不一定是属于数据集中的点。
       然后再迭代(重复)下面的操作:
       (1)cluster assignment(簇分配):计算数据集中的所有的点与每一个簇中心的距离,然后将该点分配给簇距离最短的一类(假设该类别为 j ) ,则 《Machine Learning》第九讲 K-means算法= j ; 举例说明,首先计算 《Machine Learning》第九讲 K-means算法 与各个聚类中心 μ1、μ2、μ3,…,μk 的距离,假设最近的距离是与μ3之间的,则 《Machine Learning》第九讲 K-means算法 = 3;
       (2)move centroid(移动聚类中心):计算同一个分类的所有点的平均值,并将该值赋给这个类的聚类中心,如图中底下蓝色的计算方式。

       最后聚类中心的点,不再发生移动时,认为聚类算法执行完毕。

2.optimization objective function

       优化目标函数,或者说最小化代价函数,二者要做的实际是同一件事情。

《Machine Learning》第九讲 K-means算法

       如图所示,优化目标 J(…)等于各个点与所在簇中心的距离的平方和的均值,实际上k-means算法的过程,就是不断减小 J(…) 的过程。

3.Random Initialization

《Machine Learning》第九讲 K-means算法

       假设将原来的数据划分为三个簇,那么当选取不同的初始簇中心时,最终稳定下来的划分的簇也不一定相同,如图所示,最终产生了三种不同的划分结果。因此,为了得到全局最优解,我们需要初始化多次簇中心,然后再运行k-means算法,最后再比较哪种算法的代价 J 最小,就选取哪种分类的方式。

具体做法如下图所示:

《Machine Learning》第九讲 K-means算法

4. 确定分类的数量 K

4.1 Elbow(手肘) method

《Machine Learning》第九讲 K-means算法

       如图所示,绘制出 cost function J 关于 K(no.of clusters)的函数图像,假如出现图中左边所示的,明显的转折点,或者称为肘的话,那么我们认为这个点对应的 K 是最合适的分类数目,当然大部分时候也有可能出现右边的情况,这个时候我们就需要采用第二种方法。

4.2 upon user’s purpose

《Machine Learning》第九讲 K-means算法

       假设你是一个衣服制造商,然后要决定到底是生产3个型号的衣服、还是5个型号的衣服,这个时候就要参考它的实际意义了,例如咨询衣服经销商关于不同尺码的销售情况,怎样销售利润高,然后再做不同的判断。

相关文章:

  • 2021-11-25
  • 2022-12-23
  • 2021-10-02
  • 2017-12-05
  • 2021-11-09
  • 2021-08-28
猜你喜欢
  • 2021-06-12
  • 2021-08-03
  • 2021-06-23
  • 2021-07-27
  • 2021-07-12
  • 2021-10-06
相关资源
相似解决方案