机器学习中的常见问题——K-Means算法与矩阵分解的等价

一、K-Means算法的基本原理

K-Means算法是较为经典的聚类算法,假设训练数据集 X X 为:{x1,x2,,xn},其中,每一个样本 xj x j m m 维的向量。此时的样本为一个m×n的矩阵:

Xm×n=(x1x2xn)=x1,1x2,1xm,1x1,2x2,2xm,2x1,nx2,nxm,nm×n X m × n = ( x 1 x 2 ⋯ x n ) = ( x 1 , 1 x 1 , 2 ⋯ x 1 , n x 2 , 1 x 2 , 2 ⋯ x 2 , n ⋮ ⋮ ⋮ x m , 1 x m , 2 ⋯ x m , n ) m × n

假设有 k k 个类,分别为:{C1,,Ck}。k-Means算法通过欧式距离的度量方法计算每一个样本 xj x j 到质心之间的距离,并将其划分到较近的质心所属的类别中并重新计算质心,重复以上的过程,直到质心不再改变为止,上述的过程可以总结为:

  • 初始化常数K,随机选取初始点为质心
  • 重复计算以下过程,直到质心不再改变
    • 计算样本与每个质心之间的相似度,将样本归类到最相似的类中
    • 重新计算质心
  • 输出最终的质心以及每个类

二、K-Means与矩阵分解的等价

2.1、K-Means的目标函数

K-Means的目标使得每一个样本 xj x j 被划分到离质心 ui u i 最近的类别中,而质心为:

ui=xjCixj#(xjCi) u i = ∑ x j ∈ C i x j # ( x j ∈ C i )

其中, xjCixj ∑ x j ∈ C i x j 表示的是所有 Ci C i 类中的所有的样本的和, #(xjCi) # ( x j ∈ C i ) 表示的是类别 Ci C i 中的样本的个数。

最终使得质心不再改变,这就意味着每一个样本被划分到了最近的质心所属的类别中,即:

mini=1kj=1nzijxjui2 m i n ∑ i = 1 k ∑ j = 1 n z i j ‖ x j − u i ‖ 2

其中,样本 xj x j 是数据集 Xm×n X m × n 的第 j j 列。ui表示的是第 i i 个类别的聚类中心。假设Mm×k为聚类中心构成的矩阵。矩阵 Zk×n Z k × n 是由 zij z i j 构成的0-1矩阵, zij z i j 为:

zij={10 if xiCi otherwise  z i j = { 1  if  x i ∈ C i 0  otherwise 

上述的优化目标可以表示成:(在下面会做证明)

minXMZ2 m i n ‖ X − M Z ‖ 2

2.2、矩阵分解的等价

2.2.1、优化目标一

对于上述的最小化问题:

mini=1kj=1nzijxjui2 m i n ∑ i = 1 k ∑ j = 1 n z i j ‖ x j − u i ‖ 2

则有:

i,jzijxjui2=i,jzij(xTjxj2xTjui+uTiui)=i,jzijxTjxj2i,jzijxTjui+i,jzijuTiui ∑ i , j z i j ‖ x j − u i ‖ 2 = ∑ i , j z i j ( x j T x j − 2 x j T u i + u i T u i ) = ∑ i , j z i j x j T x j − 2 ∑ i , j z i j x j T u i + ∑ i , j z i j u i T u i

下面分别对上式中的三项进行计算:

  • 对于 i,jzijxTjxj ∑ i , j z i j x j T x j

i,jzijxTjxj=i,jzijxj2=jxj2=tr[XTX] ∑ i , j z i j x j T x j = ∑ i , j z i j ‖ x j ‖ 2 = ∑ j ‖ x j ‖ 2 = t r [ X T X ]

已知: izij=1 ∑ i z i j = 1

  • 对于 i,jzijxTjui ∑ i , j z i j x j T u i

i,jzijxTjui=i,jzijlxljuli=j,lxljiulizij=j,lxlj(MZ)lj=jl(XT)jl(MZ)lj=j(XTMZ)jj=tr[XTMZ] ∑ i , j z i j x j T u i = ∑ i , j z i j ∑ l x l j u l i = ∑ j , l x l j ∑ i u l i z i j = ∑ j , l x l j ( M Z ) l j = ∑ j ∑ l ( X T ) j l ( M Z ) l j = ∑ j ( X T M Z ) j j = t r [ X T M Z ]

  • 对于 i,juTiui ∑ i , j u i T u i

i,jzijuTiui=i,jzijui2=iui2ni ∑ i , j z i j u i T u i = ∑ i , j z i j ‖ u i ‖ 2 = ∑ i ‖ u i ‖ 2 n i

最终:

i,jzijxjui2=tr[XTX]2tr[XTMZ]+iui2ni ∑ i , j z i j ‖ x j − u i ‖ 2 = t r [ X T X ] − 2 t r [ X T M Z ] + ∑ i ‖ u i ‖ 2 n i

2.2.2、优化目标二

对于上述的优化目标的矩阵写法:

minXMZ2 m i n ‖ X − M Z ‖ 2

则有:

XMZ2=tr[(XMZ)T(XMZ)]=tr[XTX]2tr[XTMZ]+tr[ZTMTMZ] ‖ X − M Z ‖ 2 = t r [ ( X − M Z ) T ( X − M Z ) ] = t r [ X T X ] − 2 t r [ X T M Z ] + t r [ Z T M T M Z ]

对于 tr[ZTMTMZ] t r [ Z T M T M Z ]

tr[ZTMTMZ]=tr[MTMZZT]=i(MTMZZT)ii=il(MTM)il(ZZT)li=i(MTM)ii(ZZT)ii=iui2ni t r [ Z T M T M Z ] = t r [ M T M Z Z T ] = ∑ i ( M T M Z Z T ) i i = ∑ i ∑ l ( M T M ) i l ( Z Z T ) l i = ∑ i ( M T M ) i i ( Z Z T ) i i = ∑ i ‖ u i ‖ 2 n i

因此得证,两种优化目标等价。

2.2.3、求最优的矩阵 M M

最终的目标是求得聚类中心,因此,对矩阵M求偏导数:

MXMZ2=M[tr[XTX]2tr[XTMZ]+tr[ZTMTMZ]]=2(MZZTXZT) ∂ ∂ M ‖ X − M Z ‖ 2 = ∂ ∂ M [ t r [ X T X ] − 2 t r [ X T M Z ] + t r [ Z T M T M Z ] ] = 2 ( M Z Z T − X Z T )

令其为 0 0

M=XZT(ZZT)1

即可得:

ui=jzijxjjzij=1nixjCixj u i = ∑ j z i j x j ∑ j z i j = 1 n i ∑ x j ∈ C i x j

三、结论

K-Means算法等价于求下述问题的最小值:

minZXXZT(ZZT)1Z2 m i n Z ‖ X − X Z T ( Z Z T ) − 1 Z ‖ 2

s.t.zij{0,1},jzij=1 s . t . z i j ∈ { 0 , 1 } , ∑ j z i j = 1

参考文献

  • 《k-Means Clustering Is Matrix Factorization》
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值