本周关于降维的学习主要分为五类:PCA、LDA、LLE、tSNE、ISOMAP
来进行学习
首先自己的任务是:tSNE的学习
(一)降维的基本知识点总结
1、降维方法分为线性和非线性降维,非线性降维又分为基于核函数和基于特征值的方法。
(1)线性降维:PCA、ICA、LDA、LFA、LPP
(2)非线性降维方法:①基于核函数的方法:KPCA、KICA、KDA
②基于特征值的方法:ISOMAP、LLE、LE、LPP、LTSA、MVU
或者将降维方法如下图分类:
2、降维的作用:(为什么会有这些作用?)
(1)降低时间的复杂度和空间复杂度
(2)节省了提取不必要特征的开销
(3)去掉数据集中夹杂的噪音
(4)较简单的模型在小数据集上有更强的鲁棒性
(5)当数据能有较少的特征进行解释,我们可以更好地解释数据,是的我们可以提取知识
(6)实现数据的可视化
3、降维的目的
用来进行特征选择和特征提取。
①特征选择:选择重要的特征子集,删除其余特征;
②特征提取:由原始特征形成的较少的新特征。
在特征提取中,我们要找到k个新的维度的集合,这些维度是原来k个维度的组合,这个方法可以是监督的,也可以是非监督的,如PCA是非监督的,LDA是监督的。
4、子集选择
对于n个属性,有2n个可能的子集。穷举搜索找出属性的最佳子集可能是不现实的,特别是当n和数据类的数目增加时。通常使用压缩搜索空间的启发式算法,通常这些方法是典型的贪心算法,在搜索属性空间时,总是做看上去是最佳的选择。他们的策略是局部最优选择,期望由此导致全局最优解。在实践中,这种贪心方法是有效的,并可以逼近最优解。
子集选择的缺点:
5、降维的本质:学习一个映射函数f:x到y。(x是原始数据点的表达,目前最多的是用向量来表示,Y是数据点映射后的低维向量表达。)f可能是:显示的、隐式的、线性的、非线性的。
(二)主成分分析(PCA)
将样本投影到某一维上,新的坐标的选择方式:找到第一个坐标,数据集在该坐标的方差最大(方差最大也就是我们在这个数据维度上能更好地区分不同类型的数据),然后找到第二个坐标,该坐标与原来的坐标正交。该过程会一直的重复,直到新坐标的数目和原来的特征个数相同,这时候我们会发现数据的大部分方差都在前面几个坐标上表示,这些新的维度就是我们所说的主成分。
(1)PCA的基本思想:寻找数据的主轴方向,由主轴构成一个新的坐标系,这里的维数可以比原维数低,然后数据由原坐标系向新坐标系投影,这个投影的过程就是降维的过程。
(2)PCA算法的过程
①将原始数据中的每一个样本都用向量表示,把所有样本组合起来构成样本矩阵,通常对样本矩阵进行中心化处理,得到中心化样本矩阵。
②求中心化后的样本矩阵的协方差;
③求协方差矩阵的特征值和特征向量;
④将求出的特征值按从大到小的顺序排列,并将其对应的特征向量按照此顺序组合成一个映射矩阵,根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵;
⑤用映射矩阵对数据进行映射,达到数据降维的目的。
(3)PCA实例中的小插曲:TF-IDF
TF-IDF:term freuency-inverse document frequency,它是一种用于信息检索与文本挖掘的常用加权技术,是一种统计方法,用以评估一字词对于一个文本集或一个语料库中其中一份文件的重要程度。包括两部分,词频和逆向文件频率。
(4)协方差矩阵的对角上是方差,非对角线上是协方差。协方差是衡量两个变量同时变化的变化程度。协方差大于0表示x和y中若一个增,另一个也增;小于0表示一个增一个减。
(5)PCA推导—最大方差理论
在信号处理中认为信号具有较大的方差,噪音具有较小的方差,信噪比越大越好。PCA遵循投影后的样本点间方差最大原则。
(二)LDA(Linear discriminant analysis)
线性判别式分析,也叫fisher线性判别,是模式识别中的经典算法。
是一种监督学习的降维技术,它的数据集的每个样本是有类别输出的。
思想:投影后类内距离最小,类间距离最大。
1、线性判别:将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,这是一种有效的特征提取方法,使用这个方法,能使得投影后模式样本的类间散布矩阵最大,且同时类内散布矩阵最小。
2、与PCA相比较:
(1)共同点:①都属于线性方法;
②在降维时都采用矩阵分解的方法;
③都假设数据符合高斯分布;
(2)不同点:
①LDA是有监督的;
②不能保证投影到的坐标系是正交的(根据类别的标注,关注分类能力);
③降维直接与类别的个数有关,与数据本身的维度无关(原始数据是n维的,有c个类别,降维后一般是到c-1维)
④可以用于降维,还可用于分类;
⑤选择分类性能最好的投影方向。
(三)LLE
1、属于流形学习的一种,和传统的PCA、LDA相比,不再是关注样本方差的降维方法,而是一种关注降维时保持样本局部的线性特征。
LLE是将高维流形分成很多小块,每一小块可以用平面代替,然后再在低维中重新拼合起来,且要求保留各点之间的拓扑关系不变。
2、LLE思想:
首先假设数据在较小的局部是线性的,即某一个数据能够用它邻域中的几个样本来线性表示,可以通过k-近邻的思想来找到它的近邻点。在降维之后,希望样本点对应的投影尽量保持同样的线性关系。即投影前后线性关系的权重参数不变或者改变很小。
3、LLE算法推导:
(1)首先确定邻域大小的选择;
(2)需要找到某个样本Xi和这k个最近邻之间的线性关系(找线性关系是一个回归问题)
(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值;
(4)
(四)ISOMAP(等距特征映射)
1、以线性流形学习方法MDS为理论基础,将经典MDS方法中的欧式距离替换为
(五) tSNE
TSNE是由SNE衍生出的一张算法,SNE最早出现在2002年,改变了MDN和ISOMAP中基于距离不变的思想,将高维映射到低维的同时,尽量保证相互之间的分布概率不变,SNE将高维和低维中的样本分布都看作高斯分布,而TSNE将低维中的坐标当作T分布,这样的好处是为了让距离大的簇之间距离拉大,从而解决了拥挤问题。从SNE到TSNE之间,还有一个对称SNE,其对SNE有部分改进作用。
1、SNE算法
高维数据用X表示,Xi表示第i个样本,低维数据用Y来表示,则高维中的分布概率矩阵P定义如下:
其中P(i,j)表示第i个样本分布在样本j周围的概率。delta是依据最大熵原理来决定,entropy=sum(pi*log(pi)),以每个样本点为中心的delta都需要使得最后分布的熵较小,通常以log(k)为上限,k为你所决定的邻域点的个数。低维中的分布概率矩阵计算如下:
这里我们把低维中的分布看作是均衡的,每个delta都是0.5,由此可以判断最后降维之后生成的分布也是一个相对均匀的分布。
随机给定一个初始化的Y,进行优化,使得Y的分布矩阵逼近X的分布矩阵。给定目标函数,用KL散度来定义两个不同分布之间的差距:
则可以计算梯度为:
每次梯度下降的步长可设定固定或者自适应、随机等,也可以加上一个动量的梯度,初始值一般设为1e-4的随机正态分布。
2、对称SNE
就是让高维和低维中的概率分布矩阵是对称的,能方便计算,但是对拥挤问题无法改进。
与SNE相比,只是梯度有一些变化:
3、TSNE
TSNE对高维中的分布采用对称SNE中的做法,低维中的分布则采用更一般的T分布,也是对称的,可以发现sum(P)=sum(Q)=1。
TSNE的算法如下所示: