【机器学习】K-Means聚类及其变体

其他机器学习系列文章见于专题:机器学习进阶之路——学习笔记整理,欢迎大家关注。

1. 聚类

  聚类就是对未知标记的数据,按照其内部规律,将数据划分为多个不同类别(亦称“簇”,cluster),使簇内数据比较相似,而簇间数据差别较大。

  聚类和分类的区别:

  1. 分类是有监督学习,它基于有标记数据进行算法模型构建;

  2. 聚类属于无监督学习,基于无标记数据。

2. K-Means原理

  K-Means算法(又称K均值算法),是最简单经典的聚类算法。

  在所有的聚类算法中,我们都希望簇内样本距离近,簇间样本距离远。K-Means选取欧式距离作为距离度量。

  给定样本集 D = { x 1 , x 2 , … , x m } D = \left\{ \boldsymbol { x } _ { 1 } , \boldsymbol { x } _ { 2 } , \ldots , \boldsymbol { x } _ { m } \right\} D={ x1,x2,,xm},我们的目标是最小化聚类所得簇 C = { C 1 , C 2 , … , C k } \mathcal { C } = \left\{ C _ { 1 } , C _ { 2 } , \ldots , C _ { k } \right\} C={ C1,C2,,Ck}的总簇内距离:
E = ∑ i = 1 k ∑ x ∈ C i ∥ x − μ i ∥ 2 2 E = \sum _ { i = 1 } ^ { k } \sum _ { \boldsymbol { x } \in C _ { i } } \left\| \boldsymbol { x } - \boldsymbol { \mu } _ { i } \right\| _ { 2 } ^ { 2 } E=i=1kxCixμi22

  其中, μ i \mu _ { i } μi是簇 C i C _ { i } Ci的聚类中心,也称质心:
μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \boldsymbol { \mu } _ { i } = \frac { 1 } { \left| C _ { i } \right| } \sum _ { \boldsymbol { x } \in C _ { i } } \boldsymbol { x } μi=Ci1xCix

  最小化总簇内距离是一个NP难问题,因此K-Means采用了贪心策略,通过启发式的迭代优化近似求解。

3. K-Means算法

【机器学习】K-Means聚类及其变体_第1张图片

4. K-Means++算法

  K-Means算法中,随机选取的k个初始聚类中心影响很大,可能会导致收敛很慢,运行时间很长。K-Means++就是对K-Means随机初始化聚类中心的优化。K-Means++选取k个初始聚类中心的思想如下:假设已经选取了 n ( 0 < n < k ) n(0<n<k) n(0<n<k)个初始聚类中心,则在选取第 n + 1 n+1 n+1个聚类中心时,距离当前 n n n个聚类中心越远的点有更高的概率被选为第 n + 1 n+1 n+1个聚类中心。
【机器学习】K-Means聚类及其变体_第2张图片

5. ISODATA算法

  K-Means算法中,k值需要人为设定,并无法更改。ISODATA(Iterative selforganizing data analysis,迭代自组织数据分析法)针对k值选取的问题做了改进,思想如下:

  当属于某个类别的样本数过少时,把这个类别去除;当属于某个类别的样本数过多,分散程度大时,把这个类别分为两个子类别。具体算法实现可见参考文献2。

6. Mini Batch K-Means算法

  在K-Means中,要计算所有样本点到所有聚类中心的距离,十分耗时。

  Mini Batch(小批量)只用数据集中一部分样本来进行K-Means聚类,这时算法收敛速度大大加快,聚类准确度只比标准K-Means略差。

7. K-Means优缺点

  优点:

    1. 原理简单,易于实现;

    2. 可解释性强。

  缺点:

    1. k值需要人为设定;

    2. 对非凸数据集,较难收敛;

    3. 对不平衡数据,聚类效果较差;

    4. 初始聚类中心和特殊值敏感;

    5. 采用迭代方法,得到的聚类结果只是局部最优;

参考文献:

  1. 《机器学习》第九章聚类——周志华
  2. K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比
  3. 机器学习sklearn19.0聚类算法——Kmeans算法
  4. K-Means聚类算法原理

你可能感兴趣的:(机器学习,机器学习进阶之路,KMeans,KMeans++,聚类,机器学习,K均值)