首页 > 编程知识 正文

python非负矩阵分解,正则化非负矩阵分解

时间:2023-05-05 18:49:27 阅读:244003 作者:3122

在非负矩阵分解的过程中需要注意两点:

1.因为做的目标是聚类,所以对于存在负数的矩阵可以通过坐标平移等手段使得带有负数的矩阵能够全变为整数,这个时候使用的就是取每一个维度的最小值,该维度的所有元素减去这个最小值。当然,如果最小值太小了使得所有元素减去最小值之后的值太大了,就在所有值下面除以一个(该维度最大值-该维度最小值),使得所有值严格控制在0-1之间,这样就拥有了非负矩阵分解的第一个先决条件。

2.非负矩阵分解一共涉及四种方法,含糊的香水分布拟合的平方差的加法和乘法。泊松分布拟合的kl的加法和乘法。参考这篇论文,其余的非负矩阵分解博客写的都是垃圾,只有这位写的可以,但是其中有一些错误需要改正。

论文:Algorithms for Non-negative Matrix Factorization-2000 Lee

非负矩阵分解(1):准则函数及KL散度  https://www.cnblogs.com/xingshansi/p/6672908.html

非负矩阵分解(2):算法推导与实现      https://www.cnblogs.com/xingshansi/p/6670214.html

在第二节算法的推导部分出现了错误,粘贴正确的推导结果,以后使用。

非负矩阵分解(3):拉格朗日乘子法求解https://www.cnblogs.com/xingshansi/p/6679325.html 

非负矩阵分解(4):NMF算法和聚类算法的联系与区别 https://www.cnblogs.com/xingshansi/p/6685811.html

这里后面的公式不是同号,前面求导为负数,后面求导为正数。

 

这里的参数赋值上面分别少了一个W和H

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。