数据挖掘--非负矩阵分解

交替最小二乘法:
如果同时解下图绿色方程的两个矩阵W和H,属于非线性问题,考虑先初始化一个矩阵W,再在非负矩阵的限制下求出矩阵H,再利用求出矩阵H反过来解矩阵W,…,直到满足误差限为止,这种方法叫交替最小二乘法。
在这里插入图片描述
考虑到这样分解出的矩阵W和H是不唯一的,而且有可能会出现负元素,我们还需要对每次迭代出的结果进行标准化。
活跃集方法:
在F范数下,进行矩阵的分解,可以看作是对矩阵A的每一列在二范数意义下进行的最小二乘。
活跃集方法的缺陷在于:对进行非负矩阵分解的速度太慢。
在这里插入图片描述
在这里插入图片描述
非负矩阵分解可以用来进行分类;
在这里插入图片描述
正如前面所言,我们还需要一个初始化的矩阵W,怎么确定这个矩阵呢?
使用
基于SVD的选择运算:
基于SVD的选择运算的MATLAB实验
理论:首先对矩阵A进行SVD分解得到的第一个左奇异向量u1和第一个右奇异向量v1(的转置)分别作为矩阵W的第一列和矩阵H 的第一行。因为矩阵A是非负不可约的,所以可以保证这两个奇异向量的非负性。
A的第二个左奇异向量,和,第二个右奇异向量用来构造一个新矩阵C,将C中的负元素置零,再对C进行SVD分解,取第一个左奇异向量、右奇异向量(的转置)分别作为W的第二列、H的第二行。
A的第三个左奇异向量,和,第三个右奇异向量用来构造…………

在这里插入图片描述
试验结果:
在这里插入图片描述
可见矩阵H中的前四列(所对应的文档)能够被最初选定的Google关键词很好地表示;
对比之下,
第三列(所对应的文档)可能不能够被最初选定的Google关键词很好地表示,因为(0.5251 0)不仅有一个零元,而且其中非零元所占比重也不大。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非负矩阵分解(Non-negative Matrix Factorization,NMF)是一种在机器学习和数据挖掘领域广泛应用的算法。其核心思想是将一个非负矩阵分解为两个非负的低秩矩阵的乘积,从而发现原始矩阵的潜在结构和特征。 在MATLAB中,可以通过调用内置函数或开源工具箱来实现非负矩阵分解。一种常用的方法是使用MATLAB自带的函数`nnmf`。这个函数可以通过多种不同的算法实现非负矩阵分解,如乘法更新法、反射法等。 使用`nnmf`函数可以指定要分解的原始矩阵以及分解后的矩阵的秩。此外,还可以选择不同的代价函数和优化算法以获得更好的分解结果。函数的输出为分解后的两个非负矩阵及相应的误差。 除了`nnmf`函数外,MATLAB中还有其他一些工具箱和函数可以实现非负矩阵分解,如NMF_ARD、NMF库等。这些工具箱和函数提供了更多的参数选项和算法选择,可以根据实际需求进行调整和优化。 在使用非负矩阵分解时,需要注意选择合适的参数和算法,以及对分解结果进行合理的解释和应用。同时,也要注意数据的预处理和归一化,以提高非负矩阵分解的效果和可解释性。 总之,MATLAB提供了多种实现非负矩阵分解的函数和工具箱,可以根据需求选择合适的方法进行分解和应用。非负矩阵分解在机器学习、图像处理、文本挖掘等领域有广泛的应用前景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值