k-means分群

目录

非监督式学习:

监督式学习:

k-means算法的过程

分群结果的优劣判断


非监督式学习:

  • 关联规则association rules(先验演算法、FP-Growth)
  • 分群clustering(k-means)

监督式学习:

  • 分类问题classification
  • 回归问题regression

k-means算法的过程

  1. 随机选取k个中心
  2. 计算欧式距离
  3. 就近分配,即分类
  4. 计算分配后的k个新中心点坐标,若新中心点与原来的中心点相同,则算法结束,否则重复如上2-4步骤。

初始数据如下图所示(k=2),具体计算过程如下:

项目 长度/m 重量/吨
A 1 1
B 2 2
C 3 1
D 6 4
E 7 5
F 8 4

1. 随机指定两个点作为中心,如起始中心点取A(1,1),B(2,2),即C1(1,1),C2(2,2);

2. 开始计算各点与中心点的距离(欧氏距离);

C1(1,1) C2(2,2)
A 0 1.414
B 1.414 0
C 2 1.414
D 5.831 4.472
E 7.211 5.831
F 7.616 6.325

3. 将所有点按照距离分配给C1和C2,即若|PC1|<|PC2|,则将P分给C1,否则分给C2;

C1 A
C2 B、C、D、E、F

4. 分别计算以C1和C2为中心的点的虚拟中心,即求点的的横纵坐标的平均值,并更新C1和C2;

C1中:k-means分群,    k-means分群

C2中:k-means分群,     k-means分群

 更新后,C1(1,1)、C2(5.2,3.2)

5. 由于更新后的C1与C2与之前的C1和C2不同,即中心发生了移动,所以继续重复上述过程2-4,直到C1、C2不在发生变化(C1和C2两个都不变时才可结束);

第一次重复:

        1. 计算距离

C1(1,1) C2(5.2,3.2)
A 0 4.741
B 1.414 3.418
C 2 3.111
D 5.831 1.131
E 7.211 2.546
F 7.616 2.912

        2. 按照距离分配点

C1 A、B、C
C2 D、E、F

        3. 更新C1和C2

        C1中:k-means分群,    k-means分群

        C2中:k-means分群,     k-means分群

         更新后,C1(2,1.33)、C2(7,4.33)

       4.  由于更新后的C1与C2与之前的C1和C2不同,即中心发生了移动,所以继续重复;

第二次重复:

        1. 计算距离

C1(2,1.33) C2(7,4.33)
A 1.053 6.862
B 0.67 5.516
C 1.053 5.205
D 4.8093 1.053
E 6.202 0.67
F 6.567 1.053

        2. 按照距离分配点

C1 A、B、C
C2 D、E、F

        3. 更新C1和C2

        C1中:k-means分群,    k-means分群

        C2中:k-means分群,     k-means分群

         更新后,C1(2,1.33)、C2(7,4.33)

        4. 由于更新后的C1与C2与之前的C1和C2相同,即中心没有发生了移动,所以计算到此结束;

6. 综上,本题中按照k=2可以将点分为{A,B,C}和{D,E,F}。

分群结果的优劣判断

WCSS(within-cluster sum of squares):是各群集所属资料贴到群集中心距离的平方和,数值越小代表分群品质越高。   

上一篇:C程序设计语言习题2-3答案


下一篇:「机器学习算法的数学解析与Python实现」K-means聚类算法