首页 理论教育 Python中文文本分析:非负矩阵分解原理

Python中文文本分析:非负矩阵分解原理

时间:2023-11-06 理论教育 版权反馈
【摘要】:线性数据分析是通过适当的数据变换和分解,抽取了原始数据向量的特征,将高维的数据向量表示成低维数据向量的线性组合,NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法,是一种线性的、非负逼近的数据表示。NMF算法提供了基于简单迭代的计算A和S的方法,该方法具有收敛速度快,左右非负矩阵存储空间小,实现比较简单,其分解矩阵具有良好的可解释性等特点。采用NMF算法实现矩阵Xm×n的分解,生成矩阵Am×k和Sk×n。

Python中文文本分析:非负矩阵分解原理

线性数据分析是通过适当的数据变换和分解,抽取了原始数据向量的特征,将高维的数据向量表示成低维数据向量的线性组合,NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法,是一种线性的、非负逼近的数据表示。

则非负数据向量的数学模型为:

即x(i)=As(i)

其中,A是为基矩阵,s为系数向量。因此,将一个非负的数据矩阵分解为一个非负的基矩阵和非负的系数矩阵的乘积,即

X=AS

非负矩阵本质上是一种最优化问题,常采用散度(divergence)作为代价函数,常用的散度有Kullback-Leibler散度和Alpha-Beta(AB)散度。NMF算法提供了基于简单迭代的计算A和S的方法,该方法具有收敛速度快,左右非负矩阵存储空间小,实现比较简单,其分解矩阵具有良好的可解释性等特点。同时由于其将高维数据映射到一个低维的空间中,有利于大规模的数据处理,利用NMF进行文本、图像大规模数据的分析方法,较传统的处理算法速度更快、更便捷。(www.xing528.com)

对于含有n个类别和m个文本的文本数据集合D,采用NMF进行数据维度缩减过程如下:

(1)首先实现文本分词、去掉停用词等预处理。

(2)用文本表示特征词的集合,并获取文本数据集D中包含n个特征的词典dict(D)。

(3)根据dict(D),采用TF-IDF实现样本集中,样本的特征-文档矩阵表示,即把文本文档表示成数学模型。但随着数据规模的增长,包含在dict(D)内词的数量增加,即文本数据表示特征-文档矩阵的维度就会增大,矩阵更加稀疏。

(4)把所有的样本表示成此特征空间中的向量并对向量进行归一化处理,建立文本特征向量矩阵Xm×n

(5)采用NMF算法实现矩阵Xm×n的分解,生成矩阵Am×k和Sk×n

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈