数据降维大纲

一、数据降维的简介
二、PCA的数学原理
三、PCA使用方法及例子
四、其他降维算法

一、数据降维简介

1.为什么要进行降维?

在处理现实问题时,我们会发现大部分数据集的维度都高达成百乃至上千。但在实际应用中,有用信息却并不需要那么高的维度,而且每增加一维所需的样本个数呈指数级增长,我们通常没有那么多样本。于是高纬度下就会造成数据样本稀疏和距离计算困难等「维数灾难」。于是不难得出数据降维的优点有:

  • 降低算法计算运算成本
  • 去除噪音
  • 使数据可视化

2.数据降维的方法

线性/非线性
线性降维是指通过降维所得到的低维数据能保持高维数据点之间的线性关系。

监督/非监督
监督式和非监督式学习的主要区别在于数据样本是否存在类别信息。非监督降维方法的目标是在降维时使得信息的损失最小;监督式降维方法的目标是最大化类别间的辨别能力。

全局/局部
局部方法仅考虑样本集合的局部信息,即数据点与临近点之间的关系。全局方法不仅考虑样本几何的局部信息,还考虑样本集合的全局信息,及样本点与非临近点之间的关系。

二、PCA的数学原理

先提出一个问题:如何把三维的数据降成二维的?

找到一个二维平面将数据投射到平面上,用新的x1’,x2’表示。要求该平面能尽量接近原始数据信息(由于总是不可避免的会丢失一些信息,所以这也是PCA的缺点)。

启发:通过变化坐标轴使维度降低。 那么该如何变化坐标轴?

由线性代数的知识可以通过基向量实现变换,于是我们要解决的问题变成为:如何选择K个基向量,使N维向量降到K维向量并能尽可能的保存多的信息?

数据中包含信息多少我们可以这样理解-----信息在差异中存在,全是相同的东西即使量再多,信息量也很少。

  • 方差
    反映数据离散程度。我们希望的是投影后的投影值尽可能分散,所以方差越大越好。
  • 协方差
    反映的是两个随机变量的相似程度。两个数据如果有相关性的话,就必然存在重复表达的信息,所以最后我们要使得变换后数据的协方差为0。
    (要达到协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。)

降维的指标与方差和协方差有关,因此,可将两者统一表示为协方差矩阵。
优化目标:选择K个基,使N维向量降到K维向量后,新K维向量的方差最大,协方差为0。 设原始数据集为X,对应的协方差矩阵为C,而P是一组基按行组成的矩阵(基矩阵),Y是X对P做基变换后的数据集Y=PX,Y的协方差矩阵为D。
D是对角矩阵,C是对称矩阵。优化目标变成寻找一个矩阵P,满足PCP^T是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。

由对称矩阵对角化可知,P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是C的一个特征向量。如果设P按照Λ中特征值的从大到小,将特征向量从上到下排列,则用P的前K行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y。

三、PCA使用方法及例子

#coding=utf-8
import numpy as np
from sklearn.decomposition import PCAX = np.array([[-1,2,66,-1], [-2,6,58,-1], [-3,8,45,-2], [1,9,36,1], [2,10,62,1], [3,5,83,2]])  #导入数据,维度为4
pca = PCA(n_components=2)   #降到2维
pca.fit(X)                  #训练
newX=pca.fit_transform(X)   #降维后的数据
# PCA(copy=True, n_components=2, whiten=False)
print(pca.explained_variance_ratio_)  #输出贡献率
print(newX)                  #输出降维后的数据

参数解释:

  1. n_components: 我们可以利用此参数设置想要的特征维度数目,可以是int型的数字,也可以是阈值百分比,如95%,让PCA类根据样本特征方差来降到合适的维数,也可以指定为string类型,MLE。
  2. copy: bool类型,TRUE或者FALSE,是否将原始数据复制一份,这样运行后原始数据值不会改变,默认为TRUE。
  3. whiten:bool类型,是否进行白化(就是对降维后的数据进行归一化,使方差为1),默认为FALSE。如果需要后续处理可以改为TRUE。
  4. explained_variance_: 代表降维后各主成分的方差值,方差值越大,表明越重要。
  5. explained_variance_ratio_: 代表各主成分的贡献率。
  6. inverse_transform(): 将降维后的数据转换成原始数据,X=pca.inverse_transform(newX)。

结果分析:
[0.95713353 0.03398198]
[[ 7.96504337 4.12166867]
[ -0.43650137 2.07052079]
[-13.63653266 1.86686164]
[-22.28361821 -2.32219188]
[ 3.47849303 -3.95193502]
[ 24.91311585 -1.78492421]]
第一行为各主成分的贡献率,可以看出第一个特征占了很大比重 ,后面几行是降维后的数据。

四、其他降维算法

1.线性判别分析(LDA)
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

2. 核主成份分析 KCPA
基于核函数的主成分分析和主成分分析的步骤是一样的,只不过用核函数替代了原来的数据。原理:通过kPCA将非线性数据映射到高维空间,在高维空间下使用标准PCA将其映射到另一个低维空间。将数据隐式映射到高维线性可分空间,利用核函数进行处理,无需知道映射函数的具体形式。

3.局部线性嵌入(LLE)
LLE属于流形学习(Manifold Learning)的一种。流形学习是一大类基于流形的框架。数学意义上的流形比较抽象,不过我们可以认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征,有点像流水的味道。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程中我们希望流形在高维的一些特征可以得到保留。

LLE首先假设数据在较小的局部是线性的,也就是说,某一个数据可以由它邻域中的几个样本来线性表示。比如我们有一个样本x1,我们在它的原始高维邻域里用K-近邻思想找到和它最近的三个样本x2,x3,x4. 然后我们假设x1可以由x2,x3,x4线性表示,即:

其中,w12,w13,w14为权重系数。在我们通过LLE降维后,我们希望x1在低维空间对应的投影x′1和x2,x3,x4对应的投影x′2,x′3,x′4也尽量保持同样的线性关系,即

也就是说,投影前后线性关系的权重系数w12,w13,w14是尽量不变或者最小改变的。

4.等距映射算法Isomap
Isomap是一种非迭代的全局优化算法。降维的目的是找出隐藏在高维数据中的低维结构,可以降低计算的复杂性。引进了邻域图,样本只与其相邻的样本连接,他们之间的距离可直接计算,较远的点可通过最小路径算出距离,在此基础上进行降维保距。

参考和引用:
https://blog.csdn.net/Reticent_Man/article/details/82633214
https://blog.csdn.net/liuweiyuxiang/article/details/78853404
https://blog.csdn.net/yanta0/article/details/91956735
https://www.cnblogs.com/pinard/p/6266408.html?utm_source=itdadao&utm_medium=referral

【机器学习】数据降维相关推荐

  1. pca 累积方差贡献率公式_机器学习数据降维方法:PCA主成分分析

    PCA在机器学习中很常用,是一种无参数的数据降维方法.PCA步骤: 将原始数据按列组成n行m列矩阵X 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值 求出协方差矩阵 求出协方差矩阵的 ...

  2. python降维方法_机器学习数据降维方法总结(附python代码)

    介绍 在机器学习实战时,如果面对一个数据集具有上千个特征,那么对于模型训练将是一个巨大的挑战.面对如此多的数据变量,如果我们认真的去分析每一个变量将耗费我们几周甚至几个月的时间,那么你估计也要被开除了 ...

  3. 机器学习——数据降维

    文章目录 数据降维 1 维度灾难与降维 2 主成分分析 2.1 PCA原理 2.2 PCA算法 2.3 PCA算法实验 3 SVD降维 4 核主成分分析降维 总结 数据降维 数据降维又称维数约简,就是 ...

  4. 机器学习——数据降维和相关性分析

    特征工程中数据降维方法思想有两种: 1. 破坏数据原有的结构从而提取数据的主要特征,例如主成分分析(PCA): 2. 对数据进行相关性分析,按照一定的法则来对数据的属性进行取舍达到降维的目的. 相关性 ...

  5. 多元统计分析——数据降维——因子分析(FA)

    一.因子分析简介 1.定义 1904年,英国心理学家CharlesSpearman研究了33名学生在古典语.法语和英语三门成绩,三门成绩的相关性系数如下: 三门成绩的高度相关会不会是由于它们三个成绩的 ...

  6. 【机器学习入门】(12) 特征工程:特征选择、数据降维、PCA

    各位同学好,今天我和大家分享一下python机器学习中的特征选择和数据降维.内容有: (1)过滤选择:(2)数据降维PCA:(3)sklearn实现 那我们开始吧. 一个数据集中可能会有以下问题: ( ...

  7. 机器学习基础-数据降维

    http://blog.itpub.net/29829936/viewspace-2643140/ 2019-05-01 10:06:00 首先需要了解下:什么叫做数据降维,为什么要对数据进行降维,如 ...

  8. 对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析...

    数据降维概述:数据降维是机器学习领域中重要的内容,所谓的降维就是采用某种映射方法,将高维空间中的数据点映射到低维的空间中.其本质是学习一个映射函数f: x->y.其中x是原始数据点的表述,目前多 ...

  9. 机器学习 数据增加_【机器学习】数据降维概述

    机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中. 机器学习主要问题 数据维数 维数 (又称维度) 数学中:独立参数的数目 物理中:独立时空坐标的数目 维度 ...

  10. 对pca降维后的手写体数字图片数据分类_知识干货-机器学习-TSNE数据降维

    1.TSNE的基本概念 2.例1 鸢尾花数据集降维 3.例2 MINISET数据集降维 1.TSNE的基本概念 t-SNE(t-distributed stochastic neighbor embe ...

最新文章

  1. 访谈计算机操作管理协会(Afcom)首席执行官Jill Eckhaus:数据中心问题出现在何处?...
  2. kafka在zookeeper下的目录结构
  3. 算法题001 剑指Offer 面试题三:二维数组中的查找
  4. 《研磨设计模式》chap23 职责链模式chainOfResponsibility(2)应用场景
  5. 新消费风口再“热闹”,红利依然握在伊利、康师傅们手里
  6. 久坐的危害和解决方式
  7. 边工作边刷题:70天一遍leetcode: day 11-3
  8. 域迁移过程下详细步骤
  9. 百度之星资格赛1003:度度熊与邪恶大魔王
  10. spark structured stream的Append模式例子
  11. 蓝桥杯 ALGO-126 算法训练 水仙花
  12. 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”
  13. Python数据分析第四课:数据的处理(数据合并、数据筛选、数据排序)
  14. 托管服务器ip绑定域名_如何在一台服务器上托管多个域名和项目
  15. http-equiv
  16. SQL Server AlwaysOn部署
  17. TeamViewer远程服务器管理工具使用哪些端口
  18. Kubernetes1.4新特性前瞻:设置JOB执行计划
  19. Multisim电路仿真-验证KCL和KVL
  20. 超融合里的服务器怎么复制文件,整整齐齐的超融合机柜,美好!

热门文章

  1. vue 播放 flv 视频
  2. 2023年天猫平台销量数据分析:辅食市场崛起,月销额过亿
  3. c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)
  4. JS日期格式化函数性能探底
  5. 阿里妈妈API 获取商品详情 全电商平台数据接口
  6. 青蛙变态跳+python
  7. linux三大驱动类型:字符设备、块设备、网络设备
  8. css3宽度变大动画_动画演示14种流量计的工作原理,长知识
  9. java项目中使用hutool工具箱
  10. DICOM协议中有关打印的内容