机器学习算法之数据降维
来源:互联网 发布:淘宝买到假酒怎么办 编辑:程序博客网 时间:2024/06/06 11:41
原文站点:https://senitco.github.io/2017/05/10/data-dimensionality-reduction/
数据降维是通过某种数学变换将原始高维属性空间,转变为一个低维子空间,对数据进行降维,可以有效地去除样本中冗余的属性,减少数据容量,缓解维数灾难,加快学习速度。数据降维的常用方法有主成分分析(PCA)、多维缩放(MDS)、线性判别分析(LDA)、等度量映射(Isomap)、局部线性嵌入(LLE)、t分布随机邻域嵌入(t-SNE)、Laplacian Eigenmaps等。
主成分分析(PCA)
主成分分析是一种线性降维方法,将高维空间映射到低维空间,并使得所有样本在低维空间的投影点尽可能分开,也就是低维子空间对样本具有最大可分性,为了实现这种最大可分性,应该使投影后样本的方差最大化。
对于一个维数为
这个式子表明,线性变换矩阵
- 输入:样本集
x1,x2,…,xN ,低维空间的维数d ; - 过程:
- 对所有数据样本进行中心化
xi=xi−1NΣixi ; - 计算样本的协方差矩阵
C=1NXXT ; - 对协方差矩阵
C 做特征值分解: - 取最大的
d 个特征值对应的特征向量w1,w2,…,wd ; - 输出:投影矩阵
W=(w1,w2,…,wd) ,wi 为D 维列向量。
多维缩放(MDS)
多维缩放要求原始高维空间中数据样本之间的距离在低维空间中保持不变,即在降维的过程中保留原始数据的差异性。
假定
令降维后的数据样本
其中
由以上各式可得
由此即可通过降维前后保持不变的距离矩阵
为了实现有效降维,往往仅需降维后的距离与原始空间中距离尽可能接近,而不必严格相等,因此可取
- 输入:距离矩阵
A∈RN×N ,其元素aij 为样本xi 到xj 的距离,原始空间维数为D ,低维空间维数为d ; - 过程:
- 计算內积矩阵
B ; - 对矩阵
B 做特征值分解; - 取
d 个最大的特征值构成的对角矩阵Λ 和对应的特征向量矩阵V ; - 输出:矩阵
Z=Λ1/2VT∈Rd×N ,每列为一个样本的低维坐标。
线性判别分析(LDA)
线性判别分析是一种典型的线性学习方法,在二分类问题上最早由Fisher提出。LDA的基本思想是给定数据样本集,设法将样本投影到一个低维空间,使得同类样本的投影点尽可能接近,不同类样本的投影点尽可能远离。LDA和PCA的降维思路相似,都是通过矩阵乘法进行线性降维,但两者原理有所不同,PCA是希望所有样本在每一维上尽可能分开。
给定数据样本集
即
其中
其中,
上式表明
- 输入:数据样本集
D=(xi,yi),i=1,2,…,N ,数据可以分为K 个类; - 过程:
计算类内散度矩阵Sw 和类间散度矩阵Sb ;
对矩阵Sw 做奇异值分解,Sw=UΣVT,S−1w=VΣ−1UT ,Σ 是一个实对称矩阵;
对矩阵S−1wSb 进行特征值分解;
取最大的d个特征值对应的特征向量; - 输出:
W=(w1,w2,…,wd)
等度量映射(Isomap)
等度量映射是一种基于流形学习的数据降维方法,流形是在局部与欧式空间同胚的空间,也就是说在局部具有欧式空间的性质,可以利用欧氏距离进行距离计算。低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中直线距离在低维嵌入流形上是不可达的。利用流形在局部上与欧式空间同胚的性质,对每个点基于欧式距离找出其近邻点,然后建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。于是计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题,基于近邻逼近能获得低维流形上测地线很好的近似。
多维缩放(MDS)对数据降维,需要已知高维空间中样本之间的距离关系,等度量映射(Isomap)结合流形学习的思想和多维缩放的方法来进行降维,在高维空间的局部空间,计算邻近点的欧式距离,并构建近邻连接图。然后利用Dijkstra算法或Floyd算法在近邻连接图上计算两点间的最短路径,得到任意两点间的距离之后,即可作为MDS算法的输入距离矩阵,通过MDS算法输出样本在低维空间的投影。Isomap算法描述如下:
- 输入:数据样本集
x1,x2,…,xN ,近邻参数k ,低维空间维数d ; - 过程:
- 利用
k 近邻算法计算xi 与k 个近邻样本点的欧式距离,与其他点的距离设为无穷大; - 根据最短路径算法计算任意两个样本点之间的距离,得到距离矩阵
A ; - 将距离矩阵
A 作为MDS算法的输入,得到输出; - 输出:样本集在低维空间的投影
Z=(z1,z2,…,zN) ,zi 为低维空间的向量。
局部线性嵌入(LLE)
局部线性嵌入是一种基于流形学习的算法,能够使降维后的数据较好地保持原有的流形结构。与等度量映射(Isomap)试图保持近邻样本之间的距离不同,LLE试图保持降维前后邻域内样本之间的线性关系。
在原始空间中,假定样本点
其中
LLE在低维空间中保持权重
令
则最优化目标可重写为
利用拉格朗日乘子法可以得到
- 输入:数据样本集
x1,x2,…,xm ,近邻参数k ,低维空间维数d ; - 过程:
- 利用
k 近邻算法确定每个样本点xi 的邻域样本的下标集合Xi ; - 最小化重构误差计算样本
xi 的权值系数wi ,并得到矩阵M ; - 对矩阵
M 进行特征值分解; - 取
d 个最小的非零特征值对应的特征向量; - 输出:样本集在低维空间的投影
Z=(z1,z2,…,zm) 。
t分布随机邻域嵌入(t-SNE)
t-SNE是一种非线性降维方法,非常适用于高维数据降到二维或者三维空间,进行可视化。其基本原理是在高维空间中构建一个样本之间的概率分布,使得相似的样本有更高的概率被选择,而不相似的样本被选择的概率较低;然后在低维空间中构建这些样本点的概率分布,使得这两个概率分布尽可能的相似,并利用KL散度(Kullback–Leibler divergence)来度量两个分布之间的相似性。
给定一个高维空间的数据样本集
即
t-SNE的目标是学习一个高维到低维的映射
如果在高维空间中样本点之间的相似度
KL散度能够衡量两个概率分布的差别,通过梯度下降法来求输入数据对应的低维表达
然后更新迭代
- 输入:数据样本集
x1,x2,…,xN,xi∈RD ,代价函数的参数Perp ,迭代次数T ,学习率η ,momentum 项系数α(t) - 过程:
- 计算给定
Perp 下的条件概率pj|i ; - 分别计算高维空间样本点的相似度
pij 和低维空间样本点的相似度qij ; - 对目标函数求导,计算梯度值;
- 迭代更新
yi ,直至收敛或达到最大迭代次数; - 输出:低维数据表示
y1,y2,…,yN,yi∈Rd
拉普拉斯特征映射(Laplacian Eigenmaps)
拉普拉斯特征映射和局部线性嵌入(LLE)类似,也是一种基于流形学习的数据降维方法,都是从图的角度去构建数据之间的关系。其基本思想是在高维空间中相互有关系或者说相连的样本点,在降维后的低维空间中尽可能的靠近,以反映数据内在的流形结构。
Laplacian Eigenmaps通过构建相似关系图,图中每个顶点代表一个样本点,每一条边权重代表样本之间的相似程度,距离越近的点越相似,而且权值越大,以此来重构数据流形的局部结构特征。给定一个高维空间的数据样本集
式中,
根据距离远近确定权值大小,当然也可以简单地将直接相连样本点的权值设为
令
因此最优化目标可重写为
使用拉格朗日乘子法,可得
基于上式进行特征值分解,取
- 输入:高维数据样本集
X=x1,x2,…,xN,xi∈RD ,降维后的空间维数为d ; - 过程:
- 利用某种方法将所有样本点构建成一个图,例如K近邻算法,将每个点和最近的
K 个点相连; - 确定点与点之间连接边的权重
Wij ,例如热核函数; - 进行特征映射,计算拉普拉斯矩阵最小的
d 个非零特征值对应的特征向量作为输出矩阵; - 输出:样本集在低维空间的映射为
Y=y1,y2,…,yN,yi∈Rd
- 机器学习算法之数据降维
- 数据降维之PCA算法的理解(机器学习公开课)
- 机器学习数据预处理:数据降维之PCA
- 机器学习数据预处理:数据降维之PCA
- 白话机器学习算法(十四)数据降维
- 白话机器学习算法(十四)数据降维
- 初学大数据之如何选择机器学习算法
- 机器学习算法笔记之6:数据预处理
- 机器学习算法之KNN识别mnist数据集
- 机器学习数据不平衡处理之SMOTE算法实现
- 机器学习降维算法
- 机器学习&数据挖掘算法
- 【机器学习】机器学习算法之旅
- 机器学习之必知十大机器学习算法
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 全国第一家FPGA云主机(FAAS)正式启动售卖,被阿里云抢先了。
- 迅雷金融於菲发公开信,边缘计算、区块链是迅雷的“皇帝新衣”?
- Fedora Day1
- 早讯丨美团布局大出行领域;张旭豪:不会被美团合并
- python面试总结(二)列表去重与单例
- 机器学习算法之数据降维
- andriod 仿京东时间轴demo
- 休闲食品消费分析,健康食品居主导地位
- 路由器(网络层传输介质)
- Elasticsearch-查询表达式
- python的乘法
- 一种RabbitMQ网络分区问题的解决方案
- powerdesigner导出表结构
- XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别)