CH3 K-means聚类

CH3 K-means聚类

随机选取K个对象作为初始的聚类中心,然后计算每个样本与各个聚类中心之间的距离,把每个样本分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类

每分配一次样本,聚类的聚类中心会根据聚类中现有的对象被重新计算

这个过程不断重复直到满足某个终止条件,可以是没有(或最小数目)样本被重新分配给不同的聚类没有(或最小数目)聚类中心再发生变化误差平方和局部最小

在这里K就是我们想要分割的聚类个数

3.1 算法步骤

  • 输入: 数据样本 { x i } i = 1 n \{x_i\}^n_{i=1} {xi}i=1n,聚类个数K
  • 输出: 所有样本的聚类标签 { y i } i = 1 n \{y_i\}^n_{i=1} {yi}i=1n
    1. 随机生成K个聚类中心, u 1 , … , u k u_1,\ldots,u_k u1,,uk
    2. 重复如下至收敛:
      1. 计算每个样本与每一个聚类中心的距离(如欧式距离),离哪个聚类中心近,就划分到哪个聚类所属的集合
      2. 重新计算每个集合的聚类中心(集合中坐标的中心点)
    3. 返回所有样本的聚类标签

3.2 算法图解

在这里插入图片描述

3.3 目标函数

J = ∑ i = 1 n ∑ j = 1 k r i j ∣ ∣ x i − μ j ∣ ∣ 所有点到他距离中心的范数之和 J = \sum^n_{i=1}\sum^k_{j=1}r_{ij}||x_i-\mu_j||\quad\text{所有点到他距离中心的范数之和} J=i=1nj=1krij∣∣xiμj∣∣所有点到他距离中心的范数之和

范数:
∣ ∣ x i − μ j ∣ ∣ = ( x i − μ j ) T ( x i − μ j ) = ( x i T − μ j T ) ( x i − μ j ) = x i T x i − 2 x i μ j + μ j T μ j \begin{split} ||x_i-\mu_j|| &= (x_i-\mu_j)^T(x_i-\mu_j)\\ &= (x_i^T-\mu_j^T)(x_i-\mu_j)\\ &=x_i^Tx_i-2x_i\mu_j+\mu_j^T\mu_j \end{split} ∣∣xiμj∣∣=(xiμj)T(xiμj)=(xiTμjT)(xiμj)=xiTxi2xiμj+μjTμj

  • 如果 x i x_i xi被分配到第j个类簇中,则 r i j = 1 r_{ij}=1 rij=1,否则 r i j = 0 r_{ij}=0 rij=0
  • 通过对上式中 μ i \mu_i μi求导可得类簇中心更新公式:
    μ j = ∑ i = 1 n r i j x i ∑ i = 1 n r i j \mu_j = \frac{\sum^n\limits_{i=1}r_{ij}x_i}{\sum^n\limits_{i=1}r_{ij}} μj=i=1nriji=1nrijxi

3.4 例题

假设有如下8个点:(3,1), (3,2), (4,1), (4,2), (1,3), (1,4), (2,3), (2,4),使用K- means算法对其进行聚类。设初始聚类中心分别为(0,4)和(3,3),请写出详细的计算过程

1.数据

XY
A131
A232
A341
A442
A513
A614
A723
A824

2.初始聚类中心分别为D1(0,4),D2(3,3)计算各点到两中心的距离

D1(0,4)D2(3,3)
A1(3,1)4.2422
A2(3,2)3.6051
A3(4,1)52.236
A4(4,2)4.4721.414
A5(1,3)1.4142
A6(1,4)12.236
A7(2,3)2.2361
A8(2,4)21.414

3.根据上表分成两簇,{A1, A2, A3, A4, A7, A8}, {A5, A6}重新计算新的聚类中心

  • D3(3, 2.167)
    • x = (3+3+4+4+2+2)/6 = 3 (各点横坐标平均值)
    • y = (1+2+1+2+3+4)/6 = 2.167 (各点纵坐标平均值)
  • D4(1, 3.5)
    • x = (1+1)/2 = 1
    • y = (3+4)/2 = 3.5

4.计算新的距离表

D3(3, 2.167)D4(1, 3.5)
A1(3,1)1.1673.201
A2(3,2)0.1672.5
A3(4,1)1.5363.905
A4(4,2)1.1033.354
A5(1,3)2.1660.5
A6(1,4)2.7120.5
A7(2.3)1.3011.118
A8(2,4)2.0881.118

5.根据上表分成两簇,{A1, A2, A3, A4}, {A5, A6, A7, A8}重新计算新的聚类中心

  • D5(3.5, 1.5)
    • x = (3+3+4+4)/4 = 3.5
    • y = (1+2+1+2)/4 = 1.5
  • D6(1.5, 3.5)
    • x = (1+1+2+2)/4 = 1.5
    • y = (3+4+3+4)/4 = 3.5

6.计算新的距离表

D5(3.5, 1.5)D6(1.5, 3.5)
A1(3,1)0.7072.915
A2(3.2)0.7072.121
A3(4,1)0.7073.535
A4(4,2)0.7072.915
A5(1,3)2.9150.707
A6(1,4)3.5350.707
A7(2,3)2.1210.707
A8(2,4)2.9150.707

7.根据上表分成两簇,{A1, A2, A3, A4}, {A5, A6, A7, A8},和上一次分簇一致,停止计算

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值