(《机器学习》完整版系列)第9章 聚类——9.2 k均值算法、学习向量量化算法(在类标记的指导下进行聚类)

k k k均值算法时,我们是找质心作为簇的代表,同样,这里我们也要找簇的“代表”(称为原型向量)
若样本有类别标记,则可以在类标记的指导下进行聚类

原型聚类

k k k均值算法

将每个样本视为一个点,每一个类(簇)有一个质心(借用一个物理概念),把聚类过程视为找质心的过程,质心以 μ i ,   ( i = 1 , 2 , ⋯   , k ) \boldsymbol{\mu }_i,\, (i=1,2,\cdots,k) μi,(i=1,2,,k)表示,其中, k k k为超参数,即聚成几类(簇)。

【西瓜书图9.2】的 k k k均值算法中实际上是循环做两大步:

  • 已知各类的质心 μ i \boldsymbol{\mu }_i μi,依“就近”原则,将 D D D中的样本归到各类(第4-8句);
  • 对各类重新计算质心,更新质心(第9-16句),并不要求其质心一定是 D D D中的样本。

当然,为启动该循环需要初始化质心(第1句)。

需要注意的是:虽然用到的公式是固定的(第5句和第10句),但初始化质心具有随机性(第1句),因此,聚类结果可能不唯一。 如,三个样本 { x 1 = 1 , x 2 = 5 , x 3 = 6 } \{x_1=1,x_2=5,x_3=6\} {x1=1,x2=5,x3=6},当初始化质心为 μ 1 = 5 , μ 2 = 6 {\mu }_1=5,{\mu }_2=6 μ1=5,μ2=6时,则聚类结果为 { x 1 = 1 , x 2 = 5 } , { x 3 = 6 } \{x_1=1,x_2=5\},\{x_3=6\} {x1=1,x2=5},{x3=6},训练后质心为 μ 1 = 3 , μ 2 = 6 {\mu }_1=3,{\mu }_2=6 μ1=3,μ2=6;当初始化质心为 μ 1 = 1 , μ 2 = 5 {\mu }_1=1,{\mu }_2=5 μ1=1,μ2=5时,则聚类结果为 { x 1 = 1 } , { x 2 = 5 , x 3 = 6 } \{x_1=1\},\{x_2=5,x_3=6\} {x1=1},{x2=5,x3=6},训练后质心为 μ 1 = 1 , μ 2 = 5.5 {\mu }_1=1,{\mu }_2=5.5 μ1=1,μ2=5.5

学习向量量化算法

若样本有类别标记,则可以在类标记的指导下进行聚类,设训练集 D = { x i , y i } i = 1 m D=\{\boldsymbol{x}_i,y_i\}_{i=1}^m D={xi,yi}i=1m,样本 x i \boldsymbol{x}_i xi聚类的结果为 x i ∈ C λ i \boldsymbol{x}_i\in C_{\lambda _i} xiCλi,则对每个样本 x i \boldsymbol{x}_i xi有三元组 ( x i , y i , λ i ) (\boldsymbol{x}_i,y_i,{\lambda}_i) (xi,yi,λi),其中, y i ∈ Y , λ i ∈ Y y_i\in \mathcal{Y}, {\lambda _i}\in \mathcal{Y} yiY,λiY

k k k均值算法时,我们是找质心作为簇的代表,同样,这里我们也要找簇的“代表”(称为原型向量),假定聚类 q q q个簇,各簇的原型向量分别为 p 1 , p 2 , ⋯   , p q \boldsymbol{p}_1,\boldsymbol{p}_2,\cdots,\boldsymbol{p}_q p1,p2,,pq,其簇标记依次为 t 1 , t 2 , ⋯   , t q t_1,t_2,\cdots,t_q t1,t2,,tq

同样地,【西瓜书图9.4】的学习向量量化算法(LVQ)也是循环做两大步,为

  • 已知各类的原型向量 p i \boldsymbol{p }_i pi,依“就近”原则,找到向量 x j \boldsymbol{x }_j xj的“代表” p i ∗ \boldsymbol{p }_{i^*} pi,属于 t i ∗ t_{i^*} ti簇,形成的三元组为 ( x j , y j , t i ∗ ) (\boldsymbol{x}_j,y_j,t_{i^*}) (xj,yj,ti)(第3-5句);
  • 针对三元组 ( x j , y j , t i ∗ ) (\boldsymbol{x}_j,y_j,t_{i^*}) (xj,yj,ti),若簇标记 t i ∗ t_{i^*} ti与类标记 y j y_j yj相同,说明该样本 x j \boldsymbol{x}_j xj支持对应的“代表” p i ∗ \boldsymbol{p }_{i^*} pi,让 p i ∗ \boldsymbol{p }_{i^*} pi x j \boldsymbol{x}_j xj靠拢一步;反之,不支持,则让 p i ∗ \boldsymbol{p }_{i^*} pi后退一步,这就是类标记 y j y_j yj的指导作用(第6-11句)。

当然,为启动该循环需要初始化“代表”(第1句),但是它没有给出初始化的具体方法,正因为如此,这就给了我们自由度,例如,为“好瓜”找3个簇,为“坏瓜”找2个簇,在此约束下找5个样本作为初始化“代表”,即【西瓜书图9.5】的初始化,你也可以给出其他约束来求解。

比较 k k k均值算法与LVQ算法的循环体,前者用的是“for(所有样本)”,是批量方式,而后者用的是“repeat(单个样本)”,是单个方式:循环体中处理一个样本(第3句)。

LVQ算法实际上学得了一组“代表”点,即原型向量 p 1 , p 2 , ⋯   , p q \boldsymbol{p}_1,\boldsymbol{p}_2,\cdots,\boldsymbol{p}_q p1,p2,,pq,由此可对样本空间进行剖分(各剖分线为两原型向量的“中垂线(面)”),【西瓜书图9.5】所示,而依该剖分可以对新样本进行簇别预测,当然,它也给出了类别的预测。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:9.1 聚类的概念与度量
下一篇:9.3 高斯混合聚类算法(男生和女生依比例形成男女混合成绩模型)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值