700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 机器学习-特征抽取(主成分分析法/因子分析法/非负矩阵因子分解NMF算法)

机器学习-特征抽取(主成分分析法/因子分析法/非负矩阵因子分解NMF算法)

时间:2020-03-29 14:07:53

相关推荐

机器学习-特征抽取(主成分分析法/因子分析法/非负矩阵因子分解NMF算法)

1.特征抽取:

特征抽取是机器学习中另一种十分有用的方法,它与特性选择不同,特征抽取是对数据的特征进行概括和总结,而特性选择则主要是对数据中的不同特征进行比较和选取。

特征抽取是机器学习技术中的一个常用的方法,它是一个属性降维的过程,特征抽取实际上是变换属性。经变换了的属性,或特性,是原来属性集的线性合并。特征抽取会导致更小更精的一组属性。用特征抽取建立的模型可能是质量更好的,因为数据被更少的和更有意义的属性所描述。特征抽取将高维数据集映射到一个低维的数据集中。特征抽取对数据可视化是很有用的,当一个复杂的数据集被降维到两维或三维空间时,数据可以有效地被观测。

特征抽取的算法有很多,这里重点介绍主成分分析法、因子分析法、非负矩阵因子分解NMF法等算法。

1.主成分分析

假设待分析数据为n个k维数据,主成分分析(PCA,又称Karhunen-Loeve或K-L方法)即是搜索q个最能代表数据的k维正交向量,这里q<=k。这样将k维数据空间压缩为q维空间数据。PCA不同不同于前面讲到的相关因子计算法(选择一个较小的属性子集),PCA创建新的、数量较小的属性集合,这些新的属性是原有属性的线性组合。

主成分分析算法思想:

为了客观、全面地研究问题,需要记录多个观察指标X1,X2,X3,…,Xn。虽然这些观察指标可以提供丰富的信息,但同时也使得数据的分析工作更趋复杂化。例如,在儿童生长发育的评价中,收集到的数据包括每一个儿童的身高、体重、胸围、头围、坐高、肺活量等十多个指标。事实上,在实际工作中,所涉及的众多指标中之间经常是有相互联系和影响的。通过对原始指标相互关系的研究,找出少数几个综合指标,这些综合指标是原始指标的线性组合,它既保留了原始指标的主要信息,且又互不相关,从而达到寻找少数综合指标以概括原始指标的目的。

主成分分析算法实现:

1)将X1,X2,X3,…,Xn构成的矩阵M标准化,标准化后记为Mb,计算Mb的相关系数矩阵,记为R。

2)对于相关系数矩阵R,采用雅可比方法求解特征方程|R-lamta|=的P个非负的特征根lamta1>lamta2>lamta3>…>lamtap>=0,lamtai对应的特征向量记为vi=(vi1,vi2,…,vip),i=1,2,…,p并满足

3)选择omega个主成分,使前面omega个主分量的方差和占全部方差的比例yita=

接近于1,并使所选的这omega个主成分尽可能多地保留原来P个特征的信息,从而达到特征抽取或降维的目的。

主成分分析算法的基本过程如下:

1)对数据进行标准化。

2)PCA计算q个标准正交基。这q个标准正交基被称为主要成分,所有数据是主要成分的线性组合。

3)根据主要成分对于变异的贡献量,即变异百分比,从大到小排序。

4)当排序在前的几个因子的累积变异百分比达到一定值(比如75%)后,就可以将后面的因子去掉,达到压缩数据的目的。

PCA计算花费低,可以用于有序和无序的属性,并且可以处理稀疏和倾斜数据。PCA算法的核心,实际上是维度旋转。通过维度旋转来重新定义维度(变量),维度旋转的原则是尽可能与主要数据的特征保持同向,以达到减少维度(变量)的目的。

因子分析:

因子分析是一种变量简化技术,从分析多个原始变量的相关关系入手,主要是研究多个变量的相关矩阵,找出支配相关关系的有限个潜在变量,达到用少数变量来解释复杂问题的目的。因子分析跟主成分分析有联系也有区别,从方法学原理上看,因子分析可以看作是主成分分析的推广,因子分析主要是研究解释原始变量之间的关系,而主成分分析重点在综合原始变量的信息。

因子分析算法的思想:

因子分析算法是,目标变量Y,预测变量为X1,X2,X3,…,Xn,对X1到Xn这n个特性进行重新整合,找出控制所有特性的少数公共特性Z1,Z2,…,Zm,用少数特性来解释复杂的问题。

因子分析算法实现:

因子分析算法的基本步骤如下:

1)输入原始数据X(n*p),计算均值和方差,进行标准化计算;

2)求样本相关系数矩阵R=r(ij);

3)求相关系数矩阵的特征根lamta(i)(lamta(i)>=0,i=1,2,3,…,p)和相对应的标准正交特征向量L(i);

4)确定公共因子数;

5)计算公共因子的共性方差h^2(i);

6)对载荷电路进行旋转,以求更好的解释公共因子;

7)对公共因子做出专业性的解释。

因子分析算法的实质是寻找数据中的潜在因子,并应用潜在因子来解释由原变量显示的现象。

非负矩阵因子分解:

非负矩阵因子分解(Non-negative Matrix Factorization,NMF),是一种特征抽取算法,它常用于属性很多、且属性模糊或者有很弱的可预测性的数据集。通过合并属性,NMF算法可以产生有意义的模式或主题。NMF算法通过创建用户定义的特征数来压缩多元变量数据,每一个特征是原来属性集的一个线性合并的,这些线性合并的系数是非负的。NMF算法可以简单描述为,对任意给定的一个非负矩阵V,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足V=W✖H,从而将一个非负的矩阵分解为两个非负矩阵的乘积。

NMF算法思想:

NMF算法压缩一个数据矩阵V为两个低阶矩阵W和H的积分,以近似地等于W✖H。NMF算法使用交互式过程来修改矩阵W和H的初值,以便这个乘积接近矩阵V。这个交互式过程当近似值差聚集或者达到一个给定的迭代次数时终止。NMF算法提供了基于简单迭代的求解W、H的方法,求解方法具有收敛速度块、左右非负矩阵存储空间小的特点,它能将高维的数据矩阵降维处理,适合处理大规模数据。利用NMF进行文本、图像等大规模数据的分析,较传统的处理算法速度更快、更便捷。

特征抽取的本质,是对反映实际问题的复杂矩阵进行分解,即将复杂矩阵V近似分解成两个具有较低秩的W和H的乘积:V=W✖H,前面讲过的主成分分析和因子分析也是这个思路。数学意义上的矩阵分解,因子W和H中的元素可为正或负,但是在解决文字聚类、人脸识别、计算机图像工程、基因及细胞分析等方面,负值便没有实际意义,非负矩阵因子分解NMF算法很好地解决了这些问题。

NMF算法实现:

对一个M维的随机向量v进行了N次的观测,记这些观测维v(j),j=1,2,…,N,取V=[V1,V2,…,V(N)],其中,V(j)=v(j),j=1,2,…,N,

NMF要求发现M✖L的基矩阵W=[W1,W2,…,W(N)],和L✖N的系数矩阵H=[H1,H2,…,H(N)],使得V=WH;

由于通常设定L<<min(M,N),即只用很少的基去描述大量的数据,所以只有在W包含了随机变量的本质特征时,才可能使V约等于WH。

实现NMF的过程是一个优化求解的过程,Donobo等从理论上分析了NMF存在唯一的条件,这个条件的苛刻性告诉我们:合理地构造一个目标函数,以此交替地优化W和H,从而得到NMF的一个局部最优解才是进行NMF的可行方法,这也是目前NMF算法构造的基本思想。主要步骤如下:

1)目标函数可以设为:

当且仅当V=WH时目标函数为0,得到近似分解的最优解。

2)用K-L相对熵来衡量分解的逼近程度:

当且仅当V=WH时目标为0,得到近似分解的最优解。

设立目标函数后通过迭代来寻找W和H。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。