机器学习(六)——降维处理原理
(一)降维的基本知识点总结
1、降维方法分为线性和非线性降维,非线性降维又分为基于核函数和基于特征值的方法。
(1)线性降维:PCA、ICA、LDA、LFA、LPP
(2)非线性降维方法:①基于核函数的方法:KPCA、KICA、KDA
②基于特征值的方法:ISOMAP、LLE、LE、LPP、LTSA、MVU
或者将降维方法如下图分类:
2、降维的作用:(为什么会有这些作用?)
(1)降低时间的复杂度和空间复杂度
(2)节省了提取不必要特征的开销
(3)去掉数据集中夹杂的噪音
(4)较简单的模型在小数据集上有更强的鲁棒性
(5)当数据能有较少的特征进行解释,我们可以更好地解释数据,是的我们可以提取知识
(6)实现数据的可视化
3、降维的目的
用来进行特征选择和特征提取。
①特征选择:选择重要的特征子集,删除其余特征;
②特征提取:由原始特征形成的较少的新特征。
在特征提取中,我们要找到k个新的维度的集合,这些维度是原来k个维度的组合,这个方法可以是监督的,也可以是非监督的,如PCA是非监督的,LDA是监督的。
4、子集选择
对于n个属性,有2n个可能的子集。穷举搜索找出属性的最佳子集可能是不现实的,特别是当n和数据类的数目增加时。通常使用压缩搜索空间的启发式算法,通常这些方法是典型的贪心算法,在搜索属性空间时,总是做看上去是最佳的选择。他们的策略是局部最优选择,期望由此导致全局最优解。在实践中,这种贪心方法是有效的,并可以逼近最优解。
子集选择的缺点:
5、降维的本质:学习一个映射函数f:x到y。(x是原始数据点的表达,目前最多的是用向量来表示,Y是数据点映射后的低维向量表达。)f可能是:显示的、隐式的、线性的、非线性的。
(二)主成分分析(PCA)
将样本投影到某一维上,新的坐标的选择方式:找到第一个坐标,数据集在该坐标的方差最大(方差最大也就是我们在这个数据维度上能更好地区分不同类型的数据),然后找到第二个坐标,该坐标与原来的坐标正交。该过程会一直的重复,直到新坐标的数目和原来的特征个数相同,这时候我们会发现数据的大部分方差都在前面几个坐标上表示,这些新的维度就是我们所说的主成分。
(1)PCA的基本思想:寻找数据的主轴方向,由主轴构成一个新的坐标系,这里的维数可以比原维数低,然后数据由原坐标系向新坐标系投影,这个投影的过程就是降维的过程。
(2)PCA算法的过程
①将原始数据中的每一个样本都用向量表示,把所有样本组合起来构成样本矩阵,通常对样本矩阵进行中心化处理,得到中心化样本矩阵。
②求中心化后的样本矩阵的协方差;
③求协方差矩阵的特征值和特征向量;
④将求出的特征值按从大到小的顺序排列,并将其对应的特征向量按照此顺序组合成一个映射矩阵,根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵;
⑤用映射矩阵对数据进行映射,达到数据降维的目的。
(3)PCA实例中的小插曲:TF-IDF
TF-IDF:term freuency-inverse document frequency,它是一种用于信息检索与文本挖掘的常用加权技术,是一种统计方法,用以评估一字词对于一个文本集或一个语料库中其中一份文件的重要程度。包括两部分,词频和逆向文件频率。
(4)协方差矩阵的对角上是方差,非对角线上是协方差。协方差是衡量两个变量同时变化的变化程度。协方差大于0表示x和y中若一个增,另一个也增;小于0表示一个增一个减。
(5)PCA推导—最大方差理论
在信号处理中认为信号具有较大的方差,噪音具有较小的方差,信噪比越大越好。PCA遵循投影后的样本点间方差最大原则。
(二)LDA(Linear discriminant analysis)
线性判别式分析,也叫fisher线性判别,是模式识别中的经典算法。
是一种监督学习的降维技术,它的数据集的每个样本是有类别输出的。
思想:投影后类内距离最小,类间距离最大。
1、线性判别:将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,这是一种有效的特征提取方法,使用这个方法,能使得投影后模式样本的类间散布矩阵最大,且同时类内散布矩阵最小。
2、与PCA相比较:
(1)共同点:①都属于线性方法;
②在降维时都采用矩阵分解的方法;
③都假设数据符合高斯分布;
(2)不同点:
①LDA是有监督的;
②不能保证投影到的坐标系是正交的(根据类别的标注,关注分类能力);
③降维直接与类别的个数有关,与数据本身的维度无关(原始数据是n维的,有c个类别,降维后一般是到c-1维)
④可以用于降维,还可用于分类;
⑤选择分类性能最好的投影方向。
(三)LLE
1、属于流形学习的一种,和传统的PCA、LDA相比,不再是关注样本方差的降维方法,而是一种关注降维时保持样本局部的线性特征。
LLE是将高维流形分成很多小块,每一小块可以用平面代替,然后再在低维中重新拼合起来,且要求保留各点之间的拓扑关系不变。
2、LLE思想:
首先假设数据在较小的局部是线性的,即某一个数据能够用它邻域中的几个样本来线性表示,可以通过k-近邻的思想来找到它的近邻点。在降维之后,希望样本点对应的投影尽量保持同样的线性关系。即投影前后线性关系的权重参数不变或者改变很小。
3、LLE算法推导:
(1)首先确定邻域大小的选择;
(2)需要找到某个样本Xi和这k个最近邻之间的线性关系(找线性关系是一个回归问题)
(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值;
(4)
(四)ISOMAP(等距特征映射)
1、以线性流形学习方法MDS为理论基础,将经典MDS方法中的欧式距离替换为
(五) tSNE
TSNE是由SNE衍生出的一张算法,SNE最早出现在2002年,改变了MDN和ISOMAP中基于距离不变的思想,将高维映射到低维的同时,尽量保证相互之间的分布概率不变,SNE将高维和低维中的样本分布都看作高斯分布,而TSNE将低维中的坐标当作T分布,这样的好处是为了让距离大的簇之间距离拉大,从而解决了拥挤问题。从SNE到TSNE之间,还有一个对称SNE,其对SNE有部分改进作用。
1、SNE算法
高维数据用X表示,Xi表示第i个样本,低维数据用Y来表示,则高维中的分布概率矩阵P定义如下:
其中P(i,j)表示第i个样本分布在样本j周围的概率。delta是依据最大熵原理来决定,entropy=sum(pi*log(pi)),以每个样本点为中心的delta都需要使得最后分布的熵较小,通常以log(k)为上限,k为你所决定的邻域点的个数。
低维中的分布概率矩阵计算如下:
这里我们把低维中的分布看作是均衡的,每个delta都是0.5,由此可以判断最后降维之后生成的分布也是一个相对均匀的分布。
随机给定一个初始化的Y,进行优化,使得Y的分布矩阵逼近X的分布矩阵。给定目标函数,用KL散度来定义两个不同分布之间的差距:
则可以计算梯度为:
每次梯度下降的步长可设定固定或者自适应、随机等,也可以加上一个动量的梯度,初始值一般设为1e-4的随机正态分布。
2、对称SNE
就是让高维和低维中的概率分布矩阵是对称的,能方便计算,但是对拥挤问题无法改进。
与SNE相比,只是梯度有一些变化:
3、TSNE
TSNE对高维中的分布采用对称SNE中的做法,低维中的分布则采用更一般的T分布,也是对称的,可以发现sum(P)=sum(Q)=1。
TSNE的算法如下所示:
机器学习(六)——降维处理原理相关推荐
- 机器学习--特征降维方法总结
本篇博文主要总结一下机器学习里面特征降维的方法,以及各种方法之间的联系和区别. 机器学习中我个人认为有两种途径可以来对特征进行降维,一种是特征抽取,其代表性的方法是PCA,SVD降维等,另外一个途径就 ...
- MachineLearning 13. 机器学习之降维方法UMAP及可视化 (umap)
点击关注,桓峰基因 桓峰基因公众号推出机器学习应用于临床预测的方法,跟着教程轻松学习,每个文本教程配有视频教程大家都可以自由免费学习,目前已有的机器学习教程整理出来如下: MachineLearnin ...
- 机器学习之KNN算法原理
机器学习之KNN算法原理 1 KNN算法简介 2 算法思想 3 多种距离度量公式 ① 欧氏距离(Euclidean distance) ② 曼哈顿距离(Manhattan distance) ③ 闵式 ...
- PCA降维工作原理及代码案例实现
PCA降维工作原理 PCA利用了协方差矩阵的特征值分解.过程分为四个步骤: (1)创建数据集的协方差矩阵 协方差:用来度量两个随机变量关系的统计量 (2)保留协方差矩阵的特征值 (3)保留前K个特征值 ...
- 诗人般的机器学习,ML工作原理大揭秘
诗人般的机器学习,ML工作原理大揭秘 https://www.cnblogs.com/DicksonJYL/p/9698208.html 选自arXiv 作者:Cassie Kozyrkov 机器之心 ...
- Python实现主成分分析(PCA)降维:原理及实例分析
转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...
- 【机器学习】Weighted LSSVM原理与Python实现:LSSVM的稀疏化改进
[机器学习]Weighted LSSVM原理与Python实现:LSSVM的稀疏化改进 一.LSSVM 1.LSSVM用于回归 2.LSSVM模型的缺点 二.WLSSVM的数学原理 三.WLSSVM的 ...
- 数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测
相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...
- 【机器学习】RBF神经网络原理与Python实现
[机器学习]RBF神经网络原理与Python实现 一.RBF神经网络原理 1. RBF神经网络结构与RBF神经元 2. RBF神经网络求解 2.1 正向传播:计算误差 2.2 反向传播:调整参数 二. ...
- 机器学习 鸢尾花分类的原理和实现(一)
机器学习 鸢尾花分类的原理和实现(一) 前言: 鸢尾花数据集是机器学习中的经典小规模数据集.通过查阅资料和视频进行学习,将整个实验的学习心得和实验过程分享,希望对喜爱机器学习并入门的新手提供帮助,同时 ...
最新文章
- An improved genome reference for the African cichlid, Metriaclima zebra 非洲慈鲷,斑马宫丽鱼的改良基因组参考
- NOIP2013pj车站分级[拓扑排序]
- cocos2d-x开发之动作游戏实战--5
- 前端如何发ModelAndView的请求
- Protobuf生成Java代码(Maven)
- Gsview裁剪EPS文件
- 介绍4个大神常用而你不常用的python函数
- 关于EIGRP路由汇总问题
- 合格PLC电气工程师需要会什么?
- VS2017社区版+Qt5.12.2+VTK8.2环境搭建
- C盘空间不足,清理AppData
- windows2003下ISA防火墙的安装及简单配置
- AWS架构师认证有什么用?考试难吗?
- 读书随记——《傲慢与偏见》(4)
- x-pack-core-7.12.0破解许可到2050年到期
- 使用 Railway 和 Supabase 零成本搭建 n8n 自动化平台
- SQL Server安装Integration Services的注意事项
- c语言编程基础------0.0.1c语言简易介绍(百度百科)
- 考研英语 长难句训练day58
- Jeston Nano国产主板使用注意事项
热门文章
- spring boot + vue + element-ui全栈开发入门——windows开发环境
- 电商购物网站 - 需求与设计
- 排序算法速度测试(插入排序、二分法插入、选择排序、快速排序、堆排序)js实现...
- Form 表单提交参数
- android: PendingIntent的使用
- github上一些酷炫效果
- 一个简单的搜索应用程序(http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/)
- sql server 2005安装需求
- 下载Visual Studio 2008 Beta 2
- netty channel的线程安全性与@Sharable