赞
踩
经过这几天面试后,我发现数据降维这一块在工业界用的很多或者说必不可少,因此,这方面需要重点关注。今天,我将数据降维总结于此,包括他人成果,这里对他们的内容表示感谢。
对数据降维作用有多个角度的理解。吴恩达在他的视频中说,降维是用于数据压缩,降低噪声,防止运行太慢内存太小;当降到2或3维可以可视化操作,便于数据分析;不要将降维用于防止过拟合,容易去掉和标签有关的重要特征。但是数据为何需要压缩,除了占用内存以外还有没有别的原因——“维度灾难”问题:维度越高,你的数据在每个特征维度上的分布就越稀疏,这对机器学习算法基本都是灾难性的。最后导致的可能是每个样本都有自己的特征,无法形成区别是正例还是负例的统一特征。还有另外一个情况当特征多于样本量时,一些分类算法(SVM)是失效的,这与分类算法原理有关。
主成分分析(PCA)和判别分析方法(LDA)
关于PCA的理解:
1、PCA可以理解为高维数据投影到低维,并使得投影误差最小。是一种无监督将为方法。
2、还可以理解为对坐标旋转和平移(对应着坐标变换和去中心化),从而使得n维空间能在n-1维分析,同时去掉方差小的特征(方差小,不确定度小,信息量小)
3、PCA的推导
4、PCA与SVD的联系
(从矩阵分解角度理解PCA)
5、PCA降维的应用
6、PCA 的缺点:
(1)pca是线性降维方法,有时候数据之间的非线性关系是很重要的,这时候我们用pca会得到很差的结果。所有接下来我们引入核方法的pca。
(2)主成分分析法只在样本点服从高斯分布的时候比较有效。
(3) 存在不平衡数据的降维可以采用代价敏感PCA(CSPCA)
(4)特征根的大小决定了我们感兴趣信息的多少。即小特征根往往代表了噪声,但实际上,向小一点的特征根方向投影也有可能包括我们感兴趣的数据;
(5)特征向量的方向是互相正交(orthogonal)的,这种正交性使得PCA容易受到Outlier的影响
(6)难于解释结果。例如在建立线性回归模型(Linear Regression Model)分析因变量(response)和第一个主成份的关系时,我们得到的回归系数(Coefficiency)不是某一个自变量(covariate)的贡献,而是对所有自变量的某个线性组合(Linear Combination)的贡献。
(7)原始的pca算法会把所有的数据一次性的放入内存中,这在大数据集的情况下有可能会遇到问题,所以有人提出了增量式的pca,这在sklearn中是有实现
关于LDA的理解:
1、判别分析:Discriminant Analysis就是根据研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。
根据判别标准不同,可以分为距离判别、Fisher判别、Bayes判别法等。比如在KNN中用的就是距离判别,当然这里的“距离”又有好几种:欧氏距离、街区距离、甚至可以用皮尔森相关系数等。朴素贝叶斯分类用的就是Bayes判别法。本文要讲的线性判别分析就是用是Fisher判别式。
根据判别函数的形式,可以分为线性判别和非线性判别。
2、优化目标是类间距离尽量大,类内距离尽量小,最终使得可区分度大。
3、是一种有监督的降维方法
4、类间距离和类内距离的理解
5、LDA推导:从二类到多类
6、LDA的应用:主题模型
两个方法是最主要的线性降维方法,共同点都是以投影的方式,低维表示高维,都是转化成求特征向量问题(谱(Spectral)方法)
两者区别可以参考:
图的左边是PCA,它所作的只是将整组数据整体映射到最方便表示这组数据的坐标轴上,映射时没有利用任何数据内部的分类信息。因此,虽然做了PCA后,整组数据在表示上更加方便(降低了维数并将信息损失降到最低),但在分类上也许会变得更加困难;图的右边是LDA,可以明显看出,在增加了分类信息之后,两组输入映射到了另外一个坐标轴上,有了这样一个映射,两组数据之间的就变得更易区分了(在低维上就可以区分,减少了很大的运算量)。
线性降维方法,有时候数据之间的非线性关系是很重要的,这时候我们用线性降维会得到很差的结果。对于图像、文本、金融等高维数据,特征之间存在着极为复杂的非线性关系,简单的线性分析无法挖掘出特征之间的蕴含的关联,因此,有必要对内蕴特征进行探讨!
基于核函数的非线性降维方法:KPCA KICA KDA
基于特征值的非线性降维方法(流型学习):ISOMAP LLE LE LPP LTSA MVU
基于神经网络的非线性降维:自编码器、降噪自编码、CNN(卷积池化法)等
具体原理待续。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。