【机器学习】K-Means 聚类是特殊的矩阵分解问题
来源:互联网 发布:什么是数据保全 编辑:程序博客网 时间:2024/05/16 11:29
【机器学习】K-Means 聚类是特殊的矩阵分解(Matrix Factorization)问题
原文是:《k-Means Clustering Is Matrix Factorization》
本博客是该论文的阅读笔记,不免有很多细节不对之处。
还望各位看官能够见谅,欢迎批评指正。
更多相关博客请猛戳:http://blog.csdn.net/cyh_24
如需转载,请附上本文链接:http://blog.csdn.net/cyh_24/article/details/50408884
论文证明了传统的K-Means算法的目标函数可以被表达成数据矩阵与其低阶数据矩阵之间差异的Frobenius范数。
简要的说,K-Means 聚类其实是一种矩阵分解问题。
K-Means的推导,我想大家都已经很清楚了,这里不细说。它的目标函数,可以定义如下:
如果能够把目标函数表达成如下形式,那么也就证明了K-Means聚类是特殊的矩阵分解问题。
先不用深究,下文会详细介绍,先注意几个变量的意义:
数据集
数学符号说明
xi 表示矩阵X 的第j -th列向量(好像与平常的相反了);X 的第(l,j) 的元素可以写成xlj 或者(X)lj ;||x|| 表示欧式距离,||X|| 则表示矩阵的 Frobenius 范数,- 其Frobenius 范数平方形式定义如下:
||X||2=∑l,jx2lj=∑j||xj||2=∑jxTjxj=∑j(XTX)jj=tr[XTX]
推导过程
假设,数据集
那么,显然可以得到:
而每行总和刚好是这个类中的样本个数:
由于
因此,
Step 1: 将目标函数左边展开
Step 2: 将目标函数中间项展开
接下来,我们看目标函数的中间项。作为矩阵Frobenius范数的平方,它可以按如下方式写:
从之前的结论中,我们可以快速发现:
来看一下
在上面的推导中,我们用到了
Step 3: 消除矩阵 M
现在的任务就是证明第二个等式。
回顾一下我们的目的,就是讲目标函数最小化, 因为已经证明了第一个等式,所以,其实也就是让
令偏导等于0,可以得到:
代入目标函数第二个等式,就证明完毕了。
结论
我们在上面用了一大堆令人眩晕的代数表达式,终于说明了K-Means聚类问题可以被理解成是如下的受约束的矩阵分解问题:
- 【机器学习】K-Means 聚类是特殊的矩阵分解问题
- 深度学习(二十四)矩阵分解之基于k-means的特征表达学习
- 深度学习(二十四)矩阵分解之基于k-means的特征表达学习
- 深度学习(二十四)矩阵分解之基于k-means的特征表达学习
- 深度学习--矩阵分解之基于k-means的特征表达学习
- K-Means算法与矩阵分解的等价
- k-means 机器学习
- 机器学习-K-means实践
- 机器学习--K-means算法
- 【机器学习】K-means聚类
- 机器学习--K-means算法
- 【机器学习】K-Means算法
- 【机器学习】01-K-means
- 机器学习:k-means算法
- 机器学习实战K-means
- 机器学习之K-means算法:深入浅出K-Means算法
- 机器学习-- K-Means 的介绍与实现
- 机器学习算法 之 K-Means聚类
- linux上安装zookeeper
- Linux常用命令
- linux下从spi中读取一张logo图片并显示
- Linux Is Not Matrix——Nginx做成linux服务
- I'm back.
- 【机器学习】K-Means 聚类是特殊的矩阵分解问题
- 去哪儿APP设计总结
- Spring idref标签和ref的区别
- 【oracle】揭开oracle神秘面纱之Sequence
- 群集的未预留容量不足,无法满足 vSphere HA 接入控制的配置级别
- 【设计模式】—工厂之家
- 数据结构中桟的定义
- jsp编译错误:code too large for try statement
- [leetcode] 301. Remove Invalid Parentheses 解题报告