【聚类2】原型聚类

1. 原型聚类

概念

- "原型:"
		"原型"是指样本空间中具有代表性的点。

- "别名:"
		1)基于原型的聚类
		2)英文:prototype-based clustering

- "此类算法的原理:"
		算法先对原型进行初始化,然后对原型进行迭代更新求解

- "常见的原型聚类算法:"
		1. k均值算法(k-means)
		2. 学习向量量化(LVQ)
		3. 高斯混合聚类

算法讲解

1.1 k均值算法(K-Means)

1.1.1 最小化平方误差

概 念 : 概念:
           \ \ \ \ \ \ \ \ \ \ {}            刻 画 了 簇 内 样 本 围 绕 簇 均 值 向 量 的 紧 密 程 度 , 值 越 小 则 簇 内 样 本 相 似 度 越 高 刻画了簇内样本围绕簇均值向量的紧密程度,值越小则簇内样本相似度越高 ,

前 提 : 前提:
           \ \ \ \ \ \ \ \ \ \ {}            样 本 集 D = { x 1 , x 2 , . . . , x m } 样本集D=\{x_1,x_2,...,x_m\} D={ x1,x2,...,xm}

           \ \ \ \ \ \ \ \ \ \ {}            簇 划 分 C = { C 1 , C 2 , . . . , C k } 簇划分C=\{C_1,C_2,...,C_k\} C={ C1,C2,...,Ck}

           \ \ \ \ \ \ \ \ \ \ {}            簇 C i 的 均 值 向 量 : u i = 1 ∣ C i ∣ ∑ x ∈ C i x 簇C_i的均值向量:u_i=\frac{1}{|C_i|}\sum_{x\in C_i}x Ciui=Ci1xCix

公 式 : 公式:
           \ \ \ \ \ \ \ \ \ \ {}            E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − u i ∣ ∣ 2 2 E=\sum_{i=1}^k\sum_{x\in C_i}||x-u_i||_2^2 E=i=1kxCixui22

最 优 解 : 最优解:
           \ \ \ \ \ \ \ \ \ \ {}            最 小 化 E 不 好 求 : 最 优 解 需 考 察 样 本 集 所 有 可 能 的 簇 划 分 ( N P 问 题 ) 最小化E不好求:最优解需考察样本集 所有可能的簇划分(NP问题) ENP
           \ \ \ \ \ \ \ \ \ \ {}            N P 问 题 : 找 一 个 解 很 困 难 , 但 验 证 一 个 解 很 容 易 ( 片 面 理 解 哈 ) NP问题:找一个解很困难,但验证一个解很容易(片面理解哈) NP

迭 代 法 : 迭代法:
           \ \ \ \ \ \ \ \ \ \ {}            k 均 值 算 法 采 用 了 贪 心 策 略 , 通 过 “ 迭 代 优 化 ” 来 近 似 求 解 k均值算法采用了贪心策 略,通过“迭代优化”来近似求解 k

1.1.2 k均值算法伪代码


输 入 : 输入:
           \ \ \ \ \ \ \ \ \ \ {}            样 本 集 D = x 1 , x 2 , . . . , x m 样本集D = {x_1,x_2,...,x_m} D=x1,x2,...,xm
           \ \ \ \ \ \ \ \ \ \ {}            聚 类 簇 数 k 聚类簇数k k

过 程 : 过程:
           \ \ \ \ \ \ \ \ \ \ {}            从 D 中 随 机 选 择 k 个 样 本 作 为 初 始 均 值 变 量 u 1 , u 2 , . . . , u k 从D中随机选择k个样本作为初始均值变量{u_1,u_2,...,u_k} Dku1,u2,...,uk

           \ \ \ \ \ \ \ \ \ \ {}            r e p e a t repeat repeat
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            令 C i = ∅ ( 1 ≤ i ≤ k ) 令Ci = \emptyset (1\leq i\le k) Ci=(1ik)

           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            f o r   j = 1 , 2 , . . . , m   d o for\ j = 1,2,...,m\ do for j=1,2,...,m do
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            计 算 样 本 x j 与 各 均 值 向 量 u i ( 1 ≤ i ≤ k ) 的 距 离 : d j i = ∣ ∣ x j − u i ∣ ∣ 2 ; 计算样本x_j与各均值向量u_i(1\leq i\le k)的距离:d_{ji}=||x_j-u_i||_2; xjui(1ik):dji=xjui2;
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            根 据 距 离 最 近 的 均 值 向 量 确 定 x j 的 簇 标 记 : λ j = m i n i ∈ { 1 , 2 , . . . , k } d j i 根据距离最近的均值向量确定x_j的簇标记:\lambda_j=min_{i\in\{1,2,...,k\}}d_{ji} xj:λj=mini{ 1,2,...,k}dji
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            将 样 本 x j 划 入 相 应 的 簇 : C λ j = C λ j ⋃ { x j } 将样本x_j划入相应的簇:C_{\lambda_j}=C_{\lambda_j}\bigcup\{x_j\} xj:Cλj=Cλj{ xj}
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            e n d   f o r end\ for end for

           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            f o r   i = 1 , 2 , . . . , k   d o for\ i=1,2,...,k\ do for i=1,2,...,k do
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            计 算 新 均 值 向 量 : u i ′ = 1 ∣ C i ∣ ∑ x i ∈ C i x 计算新均值向量:u'_i=\frac{1}{|C_i|}\sum_{x_i\in C_i}x ui=Ci1xiCix
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            i f   u i ′ ≠ u i   t h e n if\ u'_i\neq u_i\ then if ui=ui then
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            将 当 前 均 值 向 量 u i 更 新 为 u i ′ 将当前均值向量u_i更新为u'_i uiui
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            e l s e else else
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            保 持 当 前 均 值 向 量 不 变 保持当前均值向量不变
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            e n d   i f end\ if end if
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}            e n d   f o r end\ for end for

           \ \ \ \ \ \ \ \ \ \ {}           until
           \ \ \ \ \ \ \ \ \ \ {}                       \ \ \ \ \ \ \ \ \ \ {}           当前均值向量均未更新

输 出 : 输出:
           \ \ \ \ \ \ \ \ \ \ {}           簇划分C = {C1,C2,…,Ck}


  • 1.1.3 k均值算法注意
- "最大运行轮数" + "最小调整幅度"
		1)为避免运行时间过长,通常设置一个"最大运行轮数""最小调整幅度"2)若达到最大轮数或调整幅度小于阂值,则停止运行.
  • 1.1.4 k-means聚类的缺点
- "2维k-means模型:"
		1)以每个簇的中心为圆心,簇中点到簇中心点的欧氏距离最大值为半径画一个圆。
		2)k-means要求这些簇的形状必须是圆形的。
		3)k-means模型拟合出来的簇(圆形)与实际数据分布(可能是椭圆)差别很大。
		4)应用中缺少鲁棒性(在异常和危险情况下系统生存的能力)。
  • 1.1.5 k均值算法例子

【D】
在这里插入图片描述
【k = 3】

【步骤】

第 一 步 : 随 机 选 择 第一步:随机选择
            算 法 开 始 时 随 机 选 取 三 个 样 本 x 6 , x 12 , x 27 \ \ \ \ \ \ \ \ \ \ \ 算法开始时随机选取三个样本x_6,x_{12},x_{27}            x6,x12,x27
            即 , u 1 = ( 0.403 ; 0.237 ) , u 2 = ( 0.343 ; 0.099 ) , u 3 = ( 0.532 ; 0.472 ) \ \ \ \ \ \ \ \ \ \ \ 即,u_1=(0.403;0.237),u_2=(0.343;0.099),u_3=(0.532;0.472)            u1=(0.403;0.237),u2=(0.343;0.099),u3=(0.532;0.472)

第 二 步 : 考 察 样 本 第二步:考察样本
            例 : x 1 = ( 0.697 ; 0.460 ) \ \ \ \ \ \ \ \ \ \ \ 例:x_1=(0.697;0.460)            x1=(0.697;0.460)
            一 般 用 欧 式 距 离 \ \ \ \ \ \ \ \ \ \ \ 一般用欧式距离            
            d 1 = ∑ i = 1 2 ∣ ∣ x 1 i − u 1 i ∣ ∣ 2 \ \ \ \ \ \ \ \ \ \ \ d_1=\sum_{i=1}^2||x_{1i}-u_{1i}||_2            d1=i=12x1iu1i2
            d 1 = ( 0.697 − 0.403 ) 2 + ( 0.460 − 0.237 ) 2 = 0.369 \ \ \ \ \ \ \ \ \ \ \ d_1=\sqrt{(0.697-0.403)^2+(0.460-0.237)^2}=0.369            d1=(0.6970.403)2+(0.4600.237)2 =0.369
            d 2 = ( 0.697 − 0.343 ) 2 + ( 0.460 − 0.099 ) 2 = 0.506 \ \ \ \ \ \ \ \ \ \ \ d_2=\sqrt{(0.697-0.343)^2+(0.460-0.099)^2}=0.506            d2=(0.6970.343)2+(0.4600.099)2 =0.506
            d 3 = ( 0.697 − 0.532 ) 2 + ( 0.460 − 0.472 ) 2 = 0.166 \ \ \ \ \ \ \ \ \ \ \ d_3=\sqrt{(0.697-0.532)^2+(0.460-0.472)^2}=0.166            d3=(0.6970.532)2+(0.4600.472)2 =0.166
            因 此 x 1 将 划 入 簇 C 3 中 \ \ \ \ \ \ \ \ \ \ \ 因此x_1将划入簇C_3中            x1C3

第 三 步 : 划 分 样 本 第三步:划分样本
            C 1 = { x 5 , x 6 , x 7 , x 8 , x 9 , x 10 , x 13 , x 14 , x 15 , x 17 , x 18 , x 19 , x 20 , x 23 } \ \ \ \ \ \ \ \ \ \ \ C_1=\{x_5,x_6,x_7,x_8,x_9,x_{10},x_{13},x_{14},x_{15},x_{17},x_{18},x_{19},x_{20},x_{23}\}    

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoBug.己千之

鼓励,鼓励,更加努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值