商业数据分析·NMF

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

商业数据分析2016·12·01线性降维:NMF线性降维32NMFNonnegativeMatrixFactorization非负矩阵分解NMF是什么3线性降维在SVD的一些应用中,经常会出现一种情况,即:所有的元素都是大于等于0的。如上节课讲的文本处理例子,每个元素代表统计出来的词频,所以肯定都是非负的。对于这类问题,我们在进行降维的时候,可以利用他们的非负特征。这种降维方法被称为非负矩阵分解(Nonnegativematrixfactorization),英文简写为NMF。NMF是什么3线性降维NMF所涉及的矩阵分解方法,实际上是一个优化问题。也就是说,将原始的矩阵分解为两个非负矩阵的积。假设原矩阵X为一个n×p的矩阵,我们则寻找出一个n×k的矩阵W,和k×p的矩阵H,使得以下函数取得最小值:NMF是什么3线性降维简单讲,非负矩阵分解,就是将非负矩阵X分解为两个更小的非负矩阵W和H相乘,即:之所以是约等于,是因为当前解法并非精确解,而只是数值上的近似解。其中r远小于n和m,一般情况下,(n+m)rnm。NMF是什么3线性降维由公式可以看到,分解后的积并不一定完全等于原矩阵,但是要尽可能的接近,所以NMF是一种近似分解的方法。正因为如此,在计算中等式两者很难完全相等。在计算中往往是根据某更新法则迭代更新出两个乘子,当上式的距离小于我们设定的大小,停止迭代。NMF是什么3线性降维经过非负矩阵分解后的两个矩阵也有着一些有意思的性质。原矩阵X中的一列向量可以解释为对左矩阵W中所有列向量(称为基向量)的加权和,而权重系数为右矩阵H中对应列向量中的元素。这种基于基向量组合的表示形式具有很直观的语义解释,它反映了人类思维中“局部构成整体”的概念。NMF的算法实现3线性降维常用的构建非负矩阵分解的算法有以下三种:1、乘法更新算法(MultiplicativeUpdateAlgorithm)2、交替最小二乘算法(AlternatingLeastSquares)3、梯度下降算法(Gradientdescentalgorithm)这里我们介绍前两种。NMF——MultiplicativeUpdateAlgorithm2线性降维步骤:1、初始化W为一个n×k的矩阵,其中每一个元素都为0到1的随机数;2、初始化H为一个k×p的矩阵,其中每一个元素也为0到1的随机数;3、用以下公式更新H:4、用以下公式更新W:5、不断重复步骤3、4,直到收敛到一个比较稳定的值。.*表示两个矩阵对应位置元素相乘./表示两个矩阵对应位置元素相除最后的10-9是为了避免除数为0的情况NMF——MultiplicativeUpdateAlgorithm2线性降维这一算法的迭代次数和结果,很大程度上依赖于初始化的两个随机矩阵。所以每次可能会得到不同的结果。相较于之后介绍的交替最小二乘方法,它的收敛速度也会较慢,而且很依赖初始值。NMF——AlternatingLeastSquares2线性降维步骤:1、初始化W为一个n×k的矩阵,其中每一个元素都为0到1的随机数;2、用以下公式求出H:3、将H中所以负值元素重置为0;4、用以下公式求出W:5、将W中所以负值元素重置为0;6、不断重复步骤2-5,直到收敛到一个比较稳定的值。NMF实践2为了进一步说明NMF的方法,我们来看一个例子。继续沿用上次使用的数据集lsiex,通过非负矩阵分解的方式来进行信息检索。(对应文件Example2_4.m)线性降维MATLAB实例——LSI2使用数据集lsiex.mat进行实验,这里有一些文档,里面包含一个书名的列表,然后还有个术语集包含一些词汇。我们把他们变成一个矩阵,每一列是一个文件,每一行是一个术语在这个文件中出现的次数。然后将用户的搜索输入变成一个向量,包含对应术语的为1,不包含的为0。线性降维NMF的总结2在上面的例子中,我们使用了乘法更新算法(MultiplicativeUpdateAlgorithm),而且只迭代了一次。大家可以尝试使用matlab函数nnmf进行多次迭代,或者使用交替最小二乘算法(AlternatingLeastSquares)。理论上,无论是收敛速度还是结果都会更好。线性降维NMF的总结2现实的应用中有很多例子,如数字图像中的像素一般为非负数,文本分析中的单词统计也总是非负数,股票价格也总是正数等等。NMF能用于发现数据库中图像的特征,便于快速识别应用,比如实现录入恐怖分子的照片,然后在安检口对可疑人员进行盘查。在文档方面,NMF能够发现文档的语义相关度,用于信息的自动索引和提取。在生物学中,在DNA阵列分析中识别基因等。在语音识别系统中NMF也能发挥重要作用。这里,只是对NMF进行简要的介绍,在之后的聚类学习中,将会再次运用到这个方法。线性降维作业课后作业LSI的例子,尝试分别用PCA、NMF算法进行实现,并比较PCA、SVD和NMF的结果是否一致。预习预习内容1.预习2.6节。2.完成以下习题保存为txt文件,在12.8日00:00前连同上一页的课后作业打包为zip发送至助教邮箱,共占据总成绩的4%:①LDA是_______的简称,中文名为______________,是由_______提出的,是一种用于______________________的算法。②简要描述LDA的步骤。③简述LDA和PCA的区别和联系。

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功