暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

机器学习—降维

海涛技术漫谈 2019-10-19
1939

降维,从字面上来讲,即降低数据的维度

从狭义上讲,更为准确的是定义是:采取某种映射关系f,将原高维空间重的数据x映射到低维空间中y,本质上就是学习这个映射关系 f

本文主要是介绍机器学习中降维相关知识。先介绍为什么要降维,然后通过PCA和LDA举例介绍如何降维 

为什么要降维

1. 维数灾难

维数灾难(curse of dimensionality) 叫维度诅咒,指到了高维空间后,机器学习工作中将会面临众多难以克服的问题。

典型的有如下问题:

1.1 稀疏的样本

机器学习整个学科都是基于一个基本假设:独立同分布

即采样得到的部分样本是一定程度上能够表征整体的,而通过采样得到合适样本的前提是:样本尽可能的稠密并且均匀

通过上面的分析,我们发现,数据量和维度是成指数级别增长的,例如CTR场景,数据维度都是很高的。

所以,高维必然是会导致更为稀疏的样本

1.2 巨大数据量带来的问题

如果不降维,为了满足假设,只能增加数据量,但是数据量的上升同样会带来问题

(1) 距离的计算问题:例如KNN,每次确认类别都会和周边K个数据进行距离计算,数据一多,为了避免欠拟合,就需要增加K,距离的计算将会耗时耗力
(2) 算法的迭代:以最常用的梯度下降距离,大数据量使用SGD,mini-batch,因为使用的数据点少,使用的信息有限,所以梯度下降的路线会曲折跳跃,迟迟无法收敛

2. 降维的意义

通过上面的分析,可以发现,数据降维是十分的必要的

降维能带来如下好处:

  1. 降低空间和时间复杂度,减少不必要开销

  2. 去除数据中夹杂的噪音和冗余

  3. 实现数据的可视化

     

如何降低数据维度

1. 特征选择

特征选择是目前工业界采用较多的降低数据维度的方式,简单高效。常见的方式包括:缺失值比率,低方差滤波,高相关滤波,随机森林等。

特征选择和狭义上的降维差别在于:

  1. 特征选择仅仅保留原数据的部分特征信息,会丢失数据量

  2. 降维则是希望降低维度的同时,尽可能保留原数据的所有信息

 

2. 降维

狭义上的降维,即找到某种映射关系,将高维数据映射到低维空间。

较常见的有如下两个:主成分分析(PCA)
,线性判别分析(LDA)


2.1 Principal component analysis (PCA:主成分分析)



直观的理解下,我们如果想将数据进行降维,我们如何做到降维后数据的信息尽可能的少丢失?

  1. 高方差

  2. 低关联

这样的话,在新的数据空间中,我们的数据才能尽可能的区分开来。如果降维后样本都几乎重合到一起了,那么数据呈现出低方差,高关联的特点,降维后的数据将无法得到很好的区分。

公式推导前,简单复习几个数学概念

  1. 方差
     ,将均值归化到0后,表达式变为
     

  2. 协方差
     

  3. 协方差矩阵
    假设数据,那么它的协方差矩阵为

  4. 基的变换

4.1 投影

A向量在B向量上的投影,即|A|cos(a),即A.B/|B|,当B为单位向量的时候,投影即为A.B


4.2 基

基即坐标系,即某个向量在一组向量上的投影。例如左图的基为 (1,0 ) (0,1),然后向量(3,2)T可以表示为:

4.3 基变换

例如现在要将(3,2)T转换到 (1/sqrt(2), 1/sqrt(2)), (-1/sqrt(2), 1/sqrt(2)) 这组基上,采取的方式就是投影,也即向量的点乘:


OK,现在我们发现,协方差矩阵将方差和协方差统一到了一个矩阵中,为了让方差大,协方差趋于0,即对角线的值大,非对角线上的数值趋近于0。


现在我们将高方差,低关联换个更为准确的解释:

我们将M维的数据X降维到N维,就是我们找一个基变换矩阵P,将数据转化到N维的基(坐标系),使得原数据转化到N维基后的数据Y,数据Y尽可能保留原数据X的信息,即方差高,协方差趋于0。


假设基变化的矩阵为P,那么换基后的Y=PX,

Y的协方差矩阵为D:


所以,我们要找的基变换矩阵P不是别的矩阵,就是能够将X的协方差对角化的矩阵。


同时发现,协方差矩阵是个对称矩阵,对称矩阵有良好的数学性质,一定可以正角化,而且对称矩阵的基是正交基。


所以,我们通过计算特征值和特征向量,按照特征值大小排序,挑选出新的基,即能得到方差尽可能大的降维后结果


所以,我们得到了PCA的算法流程如下:

  1. 数据0均值化

  2. 求出协方差矩阵

  3. 求出协方差矩阵的特征值及对应的特征向量

  4. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

  5. Y=PX即为降维到k维后的数据


2.2 Linear Discriminant Analysis (LDA:线性判别分析)


LDA和PCA最大的不同在于,LDA是监督学习,需要用到样本的类别信息,于1936年由Fisher提出。[2]


LDA希望降维后的数据,不同类别的数据尽可能的分开,希望降维后的数据依然能够较好分开,类似聚类的思想,这可能意味着两点:

  1. 不同类别数据的均值距离尽可能的大

  2. 同类别的数据之间的数据尽可能的小,即类内方差小

 

如果使用PCA降维,那么PCA会选择2方向,因为投影到这个方向的数据方差更大。而考虑类别信息的LDA则会选择方向1,这样降维后,依然能够很好的完成分类。


即可得到优化目标:

其中,     表示降维后的数据均值    是降维后数据的方差。


对上诉公式进行数学变换:


其中,称为类间散度矩阵,

Sw=称为类内散度矩阵。


对J(w)求导然后令其等于0,可以得到

,忽略两边等式左侧的标量,等式改为

,两边乘以Sw的逆,得


即问题再次被转化为求特征值和特征向量问题,参考PCA方法的相关步骤


2.3 PCA和LDA的异同[3]

相同点
1)两者均可以对数据进行降维。
2)两者在降维时均使用了矩阵特征分解的思想。

不同点
1)LDA是有监督的降维方法,而PCA是无监督的降维方法
2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
3)LDA除了可以用于降维,还可以用于分类。
4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。


参考文献:
[1] https://zhuanlan.zhihu.com/p/21580949
[2] https://zhuanlan.zhihu.com/p/21580949
[3] https://www.cnblogs.com/pinard/p/6244265.html


文章转载自海涛技术漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论