NMF方法简介和聚类应用
来源:互联网 发布:金凤凰软件 编辑:程序博客网 时间:2024/06/07 05:47
1、NMF方法简介
NMF(Non-negative Matrix Factorization,非负矩阵分解)是一种矩阵分解方法,最早是在1999年Nature杂志刊登的由D.D.Lee和H.S.Seung两位科学家提出的一个对非负矩阵研究的成果。
NMF的目标:
给定一个所有元素均为非负的矩阵V,维数为n*m。要寻找到两个非负矩阵W和H,使得尽可能满足V=WH。其中W维数为n*r,H维数为r*m。
NMF的算法思想:
NMF的目标不是找到使得V=WH严格成立的矩阵分解,而是使得V和WH尽可能接近。这就需要构造一个代价函数J(V,W,H),满足V和WH越接近,J越小。然后可以根据J本身的连续性、凹凸性等特征,使用恰当的优化方法,最终得到符合条件的W和H。
其中,代价函数J可以取很多种,这里介绍两种:
(1)2范数距离:J=||V-WH||。
2范数距离定义如下:
使用拉格朗日KKT方法来寻找最优解,每次迭代公式如下:
当W和H是一个稳定点时,迭代收敛。
(2)KL距离:J=D(V||WH)。
KL距离定义如下:
使用拉格朗日KKT方法来寻找最优解,每次迭代公式如下:
当W和H是一个稳定点时,迭代收敛。
2、NMF聚类应用
有一个数据集,共m个样本,每个样本维度为n,构成了矩阵X,大小为n*m,即每一列为一个样本。
使用NMF方法,寻找到了W和H,使得X=WH。其中,X的第i列,就等于W乘以H的第i列,可以这样理解,H的第i列的第j个元素,相当于W的第j列的权重,X的第i列就是W的每一列与权重的乘积的求和。或者说,W的每一列相当于一个基向量,H的每一列相当于坐标向量。这样,就将原本样本的n维,转换成了r 维,r 维的每个元素对应一个基向量的坐标。因此,将原本对X聚类的问题,通过降维,转化为了对H聚类的问题。接下来就可以使用经典的聚类方法,比如k均值等。
参考文献:
Lee D D, Seung H S. Algorithms for non-negative matrix factorization[C]//Advances in neural information processing systems. 2001: 556-562.
Lee D D, Seung H S. Learning the parts of objects by non-negative matrix factorization[J]. Nature, 1999, 401(6755): 788-791.
- NMF方法简介和聚类应用
- NMF在文档聚类中的应用
- NMF 方法及其实例
- 一个使用 latent space clustering model 和 NMF 进行Bicluster 聚类的实例
- NMF
- 6. NMF方法及实例
- Python机器学习应用 | 降维——NMF方法及实例
- 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
- 矩阵分解在推荐系统中的应用:NMF和经典SVD实战(2)
- 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
- 转载 感谢原作者 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
- 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
- NMF算法简介及python实现
- 非负矩阵分解(NMF)简介
- sigslot简介和应用
- JSON 简介和应用
- qsort简介和应用
- NMF算法简介及python实现(gradient descent)
- 内部类
- 红黑树 面试 常见问题
- 啊三大法撒的风未发撒法的
- win8酷我音乐文件夹位置
- Android杂谈-RelativeLayout中的baseline是什么?
- NMF方法简介和聚类应用
- 啊撒的风未发撒反对违法
- Java缓存框架的介绍
- 九度OJ—题目1021:统计字符
- 啊是地方违法所得发生地方
- 微信利用PHP创建自定义菜单的方法
- C语言数组方法处理围圈报数
- pom.xml--SSM框架搭建时利用Maven导入所需要的jar包
- XUnzip 封装实现解压函数