近来数据记录和规模属性都在急剧增长,由于大多数数据挖掘算法都是直接逐列处理数据,因此导致算法越来越慢。为了保证减少数据列数的同时,丢失的数据信息尽可能少,
数据降维处理算法应运而生。
一、降维的概念和本质
机器学习领域中的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。
二、降维的作用:
1.降低时间复杂度和空间复
2.节省了提取不必要特征的开销
3.去掉数据集中夹杂的噪音
5.较简单的模型在小数据集上有更强的鲁棒性
6.当数据能有较少的特征进行解释,我们可以更好 的解释数据,使得我们可以提取知识。
7.实现数据可视化
三、常用的降维方法
1.PCA
PCA是不考虑样本类别输出的无监督降维技术。
PCA的算法步骤:
设有m条n维数据。
1)将原始数据按列组成n行m列矩阵X
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
3)求出协方差矩阵
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
6)即为降维到k维后的数据
2.LDA
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
LDA算法步骤:
1) 计算类内散度矩阵
2) 计算类间散度矩阵
3) 计算矩阵
4)计算的最大的d个特征值和对应的d个特征向量,得到投影矩阵[Math Processing Error]
5) 对样本集中的每一个样本特征,转化为新的样本
6) 得到输出样本集
3.局部线性嵌入 (LLE)
Locally linear embedding(LLE)是一种非线性降维算法,即使数据降维后,也能较好地保持原有 流形结构 。LLE称得上是流形学习方法最经典的工作之一,后续很多的流形学习、降维方法都与LLE有密切联系。
如下图,使用LLE将三维数据(b)映射到二维(c)之后,映射后的数据仍能保持原有的数据流形(红色的点互相接近,蓝色的也互相接近),说明LLE有效地保持了数据原有的流行结构。
但是LLE在有些情况下也并不适用,如果数据分布在整个封闭的球面上,LLE则不能将它映射到二维空间,且不能保持原有的数据流形。那么我们在处理数据中,首先假设数据不是分布在闭合的球面或者椭球面上。
4.拉普拉斯特征映射(Laplacian Eigenmaps)
Laplacian Eigenmaps 是用局部的角度去构建数据之间的关系。
使用时算法具体步骤为:
步骤1:构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。
步骤2:确定权重
确定点与点之间的权重大小,例如选用热核函数来确定,如果点i和点j相连,那么它们关系的权重设定为:
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。