一、降维
特征降维必须在特征选择做完以后才能进行。
当特征选择完成后,可以直接可以进行训练模型了,但是可能由于特征矩阵过大,导致计算量比较大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。
常见的降维方法除了基于L1的惩罚模型外,还有主成分析法(PCA) 和 线性判别分析法(LDA),这两种方法的本质都是将原始数据映射到维度更低的样本空间中;
但是采用的方式不同,PCA是为了让映射后的样本具有更大的发散性,LDA是为了让映射后的样本有最好的分类性能。
除了使用PCA和LDA降维外,还可以使用主题模型来达到降维的效果。
1.1 降维必要性
在实际的机器学习项目中,特征选择/降维是必须进行的,因为在数据中存在以下几个方面的问题:
数据的多重共线性:特征属性之间存在着相互关联关系。多重共线性会导致解的空间不稳定,从而导致模型的泛化能力弱;
高纬空间样本具有稀疏性,导致模型比较难找到数据特征;
过多的变量会妨碍模型查找规律;
仅仅考虑单个变量对于目标属性的影响可能忽略变量之间的潜在关系。
1.2 降维目的
通过降维的目的是:
减少特征属性的个数。
确保特征属性之间是相互独立的。(特征与特征之间独立)
二、降维—PCA(无监督)
主成分分析(PCA): 将高纬的特征向量合并成为低纬度的特征属性,是一种无监督的降维方法。
n_components:产生新特征的个数。
2.1 PCA原理
PCA(Principal Component Analysis)是常用的线性降维方法,是一种无监督的降维算法。算法目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并且期望在所投影的维度上数据的方差最大(最大方差理论),以此使用较少的数据维度,同时保留较多的原数据点的特性。
通俗来讲的话,如果将所有点映射到一起,那么维度一定降低下去了,但是同时也会将几乎所有的信息(包括点点之间的距离等)都丢失了,而**如果映射之后的数据具有比较大的方差,那么可以认为数据点则会比较分散,这样的话,就可以保留更多的信息。**从而我们可以看到PCA是一种丢失原始数据信息最少的无监督线性降维方式。
在PCA降维中,数据从原来的坐标系转换为新的坐标系,新坐标系的选择由数据本身的特性决定。 第一个坐标轴选择原始数据中方差最大的方向,从统计角度来讲,这个方向是最重要的方向;第二个坐标轴选择和第一个坐标轴垂直或者正交的方向;第三个坐标轴选择和第一个、第二个坐标轴都垂直或者正交的方向;该过程一直重复,直到新坐标系的维度和原始坐标系维度数目一致的时候结束计算。 而这些方向所表示的数据特征就被称为**“主成分”**。
2.2 PCA 计算
假设X是已经中心化(z-score)过的数据矩阵,每列一个样本(每行一个特征);样本点xi在新空间中的超平面上的投影是:WTxi;若所有样本点的投影能够尽可能的分开,则表示投影之后的点在各个维度上的方差应该最大化,那么投影样本点的各个维度方差和可以表示为:
2.3 PCA的执行过程
输入: 样本集X={x1,x2,…,xn};每个样本有m维特征,X是一个m行n列的矩阵。
步骤:
1、数据中心化:对X中的每一行(即一个特征属性)进行零均值化,即减去这一行的均值。(标准化)
2、求出数据中心化后矩阵X的协方差矩阵(即特征与特征之间的协方差构成的矩阵)
3、求解协方差矩阵的特征值和特征向量
4、将特征向量按照特征值从大到小按列进行排列称为矩阵,获取最前面的k列数据形成矩阵W。
5、利用矩阵W和样本集X进行矩阵的乘法得到降低到k维的最终数据矩阵。
2.4 PCA案例
2.5 PCA降维的SVD求解方式
三、降维—LDA(有监督)
线性判断分析(LDA): LDA是一种基于分类模型进行特征属性合并的操作,是一种有监督的降维方法。
3.1 LDA原理
LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种有监督学习算法。
LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。用一句话概括就是:“投影后类内方差最小,类间方差最大”
3.2 LDA问题求解
假定转换为w,那么线性转换函数为x’= wTx; 并且转换后的数据是一维的。
考虑二元分类的情况,认为转换后的值大于某个阈值,属于某个类别,小于等于某个阈值,属于另外一个类别,使用类别样本的中心点来表示类别信息,那么这个时候其实就相当于让这两个中心的距离最远:
同时又要求划分之后同个类别中的样本数据尽可能的接近,也就是同类别的投影点的协方差要尽可能的小。
结合着两者,那么我们最终的目标函数就是:
对目标函数进行转换(A、B为方阵,A为正定矩阵):
四、PCA和LDA异同
相同点:
两者均可以对数据完成降维操作。
两者在降维时候均使用矩阵分解的思想。
两者都假设数据符合高斯分布。
不同点:
LDA是有监督降维算法,PCA是无监督降维算法。
LDA降维最多降到类别数目k-1的维数,而PCA没有限制。
LDA除了降维外,还可以应用于分类。
LDA选择的是分类性能最好的投影,而PCA选择样本点投影具有最大方差的方向。