数据的形式是多种多样的,维度也是各不相同的,当实际问题中遇到很高的维度时,如何给他降到较低的维度上?前文提到进行属性选择,当然这是一种很好的方法,这里另外提供一种从高维特征空间向低纬特征空间映射的思路。

数据降维的目的

  数据降维,直观地好处是维度降低了,便于计算和可视化,其更深层次的意义在于有效信息的提取综合及无用信息的摈弃

数据降维的方法

  主要的方法是线性映射和非线性映射方法两大类。

线性映射

  线性映射方法的代表方法有:PCA(Principal Component Analysis),LDA(Discriminant Analysis)

PCA方法简介

  主成分分析的思想,就是线性代数里面的K-L变换,就是在均方误差准则下失真最小的一种变换。是将原空间变换到特征向量空间内,数学表示为Ax=λx
  特征向量和特征值的意义:分别表示不同频率及其幅度。
  特征向量和特征值的直白理解:想在特征空间内找到某个向量x,使得其满足Ax=λx。这个式子可以这样理解,A是空间内的运动,x经过运动A后,保持方向不变(仍是x的方向),只是大小伸缩了λ倍。这样我们找到了k个这样的向量βk
  A[β1,β2,...,βk]=[λ1β1,λ2β2,...,λkβk]
  当然在实际用时,取最大的前几个足矣。
  PCA计算是用的协方差矩阵U的分解特征向量。
  1.样本矩阵去中心化(每个数据减去对应列的均值),得到Am,nAm,n表示mn维的数据。
  2.U表示样本矩阵A的协方差矩阵(ATA=U,因为去中心化后的ATA即协方差)
  E(XX0)(YY0)=mi=11m(xix0)(yiy0)
  期望的定义:E(x)=xip(xi)
  3.U=[β]Λ[β]1
  4.A[β1,β2,βk]方向上变换(注意选择λ大的特向映射)。
  U=cov(1,1)cov(2,1)    ............cov(n,1)cov(1,2)cov(2,2)cov(n,2).........cov(1,n)cov(2,n)cov(n,n)
  其中数字表示相应第几个属性。
  为什么要用协方差矩阵来特向分解呢?
  协方差矩阵表征了变量之间的相关程度(维度之间关系)。
  对数据相关性矩阵的特向分解,意味着找到最能表征属性相关性的特向(最能表征即误差平方最小)。PCA一开始就没打算对数据进行特向分解,而是对数据属性的相关性进行分析,从而表示出最能代表属性相关性的特向,然后将原始数据向这些特向上投影。所以,有的地方说PCA去相关。
  PCA的原理推导:
  PCA优缺点:
  优点:1)最小误差。2)提取了主要信息
  缺点:1)计算协方差矩阵,计算量大
  上述PCA中的特向分解,必须为方阵,这个条件是很苛刻的。有没有直接对任意矩阵的分解呢,答案是有的,他的名字叫SVD分解。
  SVD分解用来找到矩阵的主要部分。可以直接对数据矩阵进行分解
  BmnUmkkkVTnk
  其中UmkVnk是正交矩阵。
  BmnVnkUmkkkVTnkVnk
  BmnVnkUmkkkA^mk实现了降维。
  UTmkBmnUTmkUmkkkVTnkkkVTnkA^kn实现了压缩数据。
  SVD怎么跟这个PCA结合到一起的呢?
  SVD是对ATA或者AAT求解特值和特向,然后对A进行分解,得到A=UΔVT,中间是奇异值对角阵。
  U的列向量是AAT的特向组成。
  因此,可以用SVD求解特向,然后取前几个大的特值对应的特向进行降维。
  PCA想对协方差矩阵特征向量求解,而AAT刚好是协方差的表示形式,而AAT的特向求解刚好是SVD分解的过程,且分解的酉矩阵的列向量刚好对应着AAT的特向,于是PCA的协方差求解特向就变成了样本矩阵的SVD分解。
  两个引理:
  引理1:对于任何一个矩阵Amn都有:
  rank(AAT)=rank(ATA)=rank(A)
  引理2:对于任何一个矩阵A,都有ATAAAT是半正定的Hermite矩阵。
  定理1:ATA的特征值也是AAT的特值,反之亦然。
  定理2:A是 正 规 矩    阵 ,则A的奇异值是A的非零特征值的模长。
  定理3:δ1δ 2...δrAmnr个正奇异值,则存在m阶酉矩阵Un阶酉矩阵V,满足:
  A=UDVT=U[Δ000]VT
  其中,Δ=diag(δ1,δ2,...,δr)
  定理3证明过程表明UAAT的特征向量。此处略去证明,请自行查阅线性代数。
  定理4:δ1δ2...δrAr个正奇异值,则总有次酉矩阵Umr,Vnr满足:
  A=UmrΔVTnr
  其中Δ=diag(δ1,δ2,...,δr)
  特征值和奇异值怎么对应起来?
  ATAβi=λiβi
  σi=λi
  μi=1σiAβi
  这个地方跟上面稍微有所不同,这里条件更宽松了。

LDA方法简介

  LDA核心思想:往线性判别超平面的法向量上投影,使得区分度最大(高内聚,低耦合)。 
  具体内容见之前博客-“线性判别函数”的Fisher线性判别准则:http://blog.csdn.net/yujianmin1990/article/details/48007589 
  LDA优缺点: 
  优点:1)简单易于理解 
  缺点:2)计算较为复杂 
  PCA in Spark:http://blog.selfup.cn/1243.html

非线性映射

  非线性映射方法的代表方法有:核方法(核+线性),二维化和张量化(二维+线性),流形学习(ISOMap,LLE,LPP)

基于核的非线性降维

  代表方法有:KPCA,KFDA。 
  KPCA的基本思想:通过Kernel trick将PCA投影的过程通过内积的形式表达出来。将高维向量ϕ(x)β的内积转换成低维的核函数表示。

KPCA

  
  基于核的非线性降维方法的优缺点: 
  优点:具有核方法的优点。 
  缺点:核的不同选择影响效果。 
  (自己对KPCA这地方并不是完全搞懂了,需要再仔细看看)

二维化和张量化

  将数据映射到二维空间上,常见算法比如二维主分量分析、二维线性判别分析、二维典型相关分析。 
  二维化和张量化优缺点: 
  优点: 
  1)计算效率高。 
  2)有些数据二维降维效果要明显好于一维降维。 
  缺点: 
  1)原理机制研究不透彻。

流形学习

  流形学习的主要算法有:ISOMap(等距映射)、LE(拉普拉斯特征映射)、LLE(局部线性嵌入)。 
  流形:直线或者曲线是一维流形,平面或者曲面是二维流形,更高维之后是多维流形。一个流形好比是d维的空间,是一个m维空间(m>n)被扭曲之后的空间。流形并不是一个“形状”,而是一个“空间” 
  流形学习的假设:数据采样于某一流形上。

ISOMap

  ISOMap是一种非迭代的全局优化算法。ISOMap对MDS(Multidimensional Scaling-多维尺度分析)进行改造,用测地线距离(曲线距离)作为空间中两点距离,原来是用欧氏距离,从而将位于某维流形上的数据映射到一个欧氏空间上。 
  ISOMap将数据点连接起来构成一个邻接Graph来离散地近似原来流形,而测地距离则相应地通过Graph上的最短路径来近似了。 
  比如:我们将球体曲面映射到二维平面上。 
  此博客写得通俗易懂:http://blog.pluskid.org/?p=533 
  几点注意: 
  1)ISOMap适用的流形:适合于内部平坦的低维流形,不适合于学习有较大内在曲率的流形。 
  2)近邻数的选择:近邻数应足够大以便能够减少在路径长度和真实测地距离之间的不同,但要小到能够预防“短路”现象。 
  3)所构造图的连通性:要求所构造的图示连通的,否则有两种处理办法,一种是放宽临界点选择的限制,另一种是对于每一连通部分分别使用ISOMap算法,得到不同部分的降维结果。 
  数据到底是否分布于一个流形上?这是个暂时难以回答的问题。 
  MDS是一种降维方法,它在降维时使得降维之后的两点间的欧氏距离尽量保持不变(用欧氏距离矩阵来表示高维向量的两两之间的相似度寻找同样数量的映射维度的向量,使得映射维度下两两间距离约等于原高维下两两间距离,变为了优化问题)。维基百科对MDS的介绍https://en.wikipedia.org/wiki/Multidimensional_scaling

LLE

  前提假设:数据没有形成一个封闭的超曲面,局部数据点是线性的。 
  LLE(Locally Linear Embedding-局部线性嵌入)用局部线性反映全局的非线性的算法,并能够使降维的数据保持原有数据的拓扑结构。(在流形上使用局部线性,并用有限局部样本的互相线性表示,得到几何特性的构造权重矩阵,在低维下找到满足高维时样本间构造权重的样本集) 
   
  LLE步骤如下: 
  1.计算或者寻找数据点xi的临近数据点。 
    假设数据局部为平面,故可以用线性组合表示xi,其误差为: 
    e(w)=mi=1||xiKj=1wijxj||2; Kj=1wij=1 
    其中wij表示线性重构xi时的贡献比例。 
    找到每个样本点的K个最近邻点。 
  2.计算构造权重并重构数据 
    通过约束计算wij,使得不在该样本点的K个最近邻点中的构造权重都为0. 
    重构权重使得重构的数据点与临近点间的旋转、缩放、平移特性保持不变,即几何特性不依赖于特定的参考框架。 
  3.由重构样本向低维映射。(求低维嵌入) 
    设z是低维空间,找到同样数量的低维映射样本,使得: 
    e=mi=1||ϕ(xi)Kj=1wijϕ(xij)||2 
    e=mi=1||ziKj=1wijzij||2 
    最小。(不去关心ϕ,直接找zi) 
  流形学习优缺点: 
  优点:1)假设流形的存在,部分解决了高维数据分布的问题。 
  缺点:1)假设流形的存在,不能总是适合数据特点。

其他方法

  其他方法:深度学习,聚类降维 
  深度学习降维优缺点: 
  优点:1)所提取特征的代表性强 
  缺点:1)可解释性差。2)目的性不强 
  聚类降维优缺点: 
  暂时未看这部分内容

小结

  降维方法 __ 属性选择:过滤法;包装法;嵌入法; 
      |_ 映射方法 _线性映射方法:PCA、FDA等 
            |_非线性映射方法: 
                      |__核方法:KPCA、KFDA等 
                      |__二维化: 
                      |__流形学习:ISOMap、LLE、LPP等。 
            |__其他方法:神经网络和聚类 
             
  降维可以方便数据可视化+数据分析+数据压缩+数据提取等。 
  各个降维方法效果图展示: 
  

几种降维思想方法总结相关推荐

  1. 能量原理与变分法笔记11:形函数(一种降维思想)

    形函数(一种降维思想,将一个无穷个自由度(冲击)的函数看成一个形函数) 在近似求解中将称形函数为势函数在近似求解中将称形函数为势函数在近似求解中将称形函数为势函数 参考视频链接 注:其中u1(x)=x ...

  2. 数学四大思想八大方法_中考数学专题五,四种数学思想方法,第3个比较难掌握...

    数学思想方法是指对数学知识和方法形成的规律性的理性认识,是解决数学问题的根本策略.数学思想方法是把知识转化为能力的桥梁,灵活运用各种数学思想方法是提高解题能力的根本所在. 因此,在复习时要注意总结体会 ...

  3. 12种降维方法终极指南(含Python代码)

    12种降维方法终极指南(含Python代码) 你遇到过特征超过1000个的数据集吗?超过5万个的呢?我遇到过.降维是一个非常具有挑战性的任务,尤其是当你不知道该从哪里开始的时候.拥有这么多变量既是一个 ...

  4. 12种降维方法及python实现

    你遇到过特征超过1000个的数据集吗?超过5万个的呢?我遇到过.降维是一个非常具有挑战性的任务,尤其是当你不知道该从哪里开始的时候.拥有这么多变量既是一个恩惠--数据量越大,分析结果越可信:也是一种诅 ...

  5. 数学七大基本思想方法

    第一:函数与方程思想 (1)函数思想是对函数内容在更高层次上的抽象,概括与提炼,在研究方程.不等式.数列.解析几何等其他内容时,起着重要作用 (2)方程思想是解决各类计算问题的基本思想,是运算能力的基 ...

  6. 小学数学学习的思想方法

    一.数形结合的思想方法 数与形是数学教学研究对象的两个侧面,把数量关系和空间形式结合起来去分析问题.解决问题,就是数形结合思想. "数形结合"可以借助简单的图形.符号和文字所作的示 ...

  7. NLP:Word Embedding词嵌入/word2vec词向量思想方法(一种主流的分布式表示)的简介、使用方法、案例应用之详细攻略

    NLP:Word Embedding词嵌入/word2vec词向量思想方法(一种主流的分布式表示)的简介.使用方法.案例应用之详细攻略 目录 词嵌入(一种主流的分布式表示)的简介 词嵌入的案例理解

  8. R实战| PCA、tSNE、UMAP三种降维方法在R中的实现

    降维 在组学分析中,一般通过降维算法得到低纬度如二维或三维的新坐标数据,再结合可视化技术去展示样本的在新坐标的空间分布,接着加上统计检验结果证实整体组学水平上组间的差异性.降维算法有基于线性模型的PC ...

  9. 流形学习的四种降维方法

    文章目录 流形学习 主成分分析(PCA) 原理 实现 手写版 调库版 缺点 奇异值分解(SVD) 原理 实现 线性判别分析(LDA) 原理 手写版 调库版 PCA与LDA 局部线性嵌入(LLE) 原理 ...

  10. 12种降维方法终极指南

    来源:Analytics Vidhya 编译:Bot 授权自 论智 你遇到过特征超过1000个的数据集吗?超过5万个的呢?我遇到过.降维是一个非常具有挑战性的任务,尤其是当你不知道该从哪里开始的时候. ...

最新文章

  1. bzoj 1962: 模型王子
  2. IIS+PHP环境的3种方法
  3. Java集合—HashMap为什么2倍扩容
  4. 锁屏快捷键_全面屏 iPhone 锁屏快捷键美化,让你的 iPhone 更特别
  5. 2020蓝桥杯省赛---java---B---5(排序)
  6. Redux-React 代码原理分析
  7. java文件编译为class文件需要键入什么命令_Day02:Java语言基础-第一个Java程序以及编译与运行机制...
  8. eclipse java 报错信息_解决Eclipse启动时报Initializing Java Tooling异常信息
  9. 推荐一款专为新手用的Python开发工具
  10. python属于系统软件吗_2020年,编程语言将不再只属于程序员,尤其是这门语言...
  11. 尚医通:开局项目介绍
  12. django mysql graphql_GraphQL graphene-django 基本使用文档
  13. 基于JAVA大众点评管理系统计算机毕业设计源码+系统+lw文档+部署
  14. 从TikTok功能优化,抓住直播带货机遇
  15. APMServ启动失败解决方法
  16. [ Azure | Az-900 ] 基础知识点总结(二) - 核心组件服务
  17. 数字电视机顶盒的工作原理
  18. 《机器学习(周志华)》 习题5.5答案
  19. 企业上云之服务器硬件篇(五)
  20. Ubuntu18.04 系统下ROS Melodic安装

热门文章

  1. 深拷贝与浅拷贝、深复制与浅复制
  2. magento2 发邮件
  3. 5月30日任务 访问日志不记录静态文件、访问日志切割、静态元素过期时间
  4. 有些东西需要深刻理解概念才行
  5. 目标检测之2015iccv---objdetection 专题论文
  6. Mysql之InnoDB之更换表空间
  7. 谁能再一次接受“南京大×××”不存在?
  8. 完全独立与IIS的后门
  9. BZOJ4480[JSOI2013]快乐的jyy
  10. 一篇关于用户需求,己方产品(服务)与竞争对手的小清单