降维算法总结

作者:jliang

https://blog.csdn.net/jliang3

1.降维简介

1)相关背景

(1)在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律。

  • 多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的工作量。
  • 更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性。
  • 如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息,因此盲目减少指标会损失很多有用的信息,从而产生错误的结论。

(2)因此需要找到一种合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。

(3)由于各变量之间存在一定的相关关系,因此可以考虑将关系紧密的变量变成尽可能少的新变量,使这些新变量是两两不相关的,那么就可以用较少的综合指标分别代表存在于各个变量中的各类信息。

(4)主成分分析与因子分析就属于这类降维算法。

2)数据降维

(1)降维就是一种对高维度特征数据预处理方法,是应用非常广泛的数据预处理方法。

(2)降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。

(3)在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。

3)降维的优点

  • 使得数据更容易使用
  • 降低算法的计算开销
  • 去除噪声
  • 使得结果容易理解

4)降维算法

  • 奇异值分解(SVD)
  • 主成分分析(PCA)
  • 因子分析(FA)
  • 独立成分分析(ICA)

2.主成分分析(PCA

1)PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。

(1)主成分分析试图在力保数据信息丢失最少的原则下,对多个变量进行最佳综合简化,即对高维变量空间进行降维处理。

(2)PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。

(3)PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。转换坐标系时,以方差最大的方向作为坐标轴方向,因为数据的最大方差给出了数据的最重要的信息。

  • 第一个新坐标轴选择是原始数据中方差最大的方向。
  • 第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的。
  • 第三个轴是与第1,2个轴正交的平面中方差最大的。
  • 依次类推,可以得到n个这样的坐标轴。

(4)通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。

  • 于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。
  • 事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

2)如何得到包含最大差异性的主成分方向

(1)通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。

(2)由于得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵,所以PCA算法有两种实现方法:基于特征值分解协方差矩阵实现PCA算法、基于SVD分解协方差矩阵实现PCA算法。

3)重点归纳

(1)线性变换=>新特征轴可由原始特征轴线性变换表征

(2)线性无关=>构建的特征轴是正交的

(3)主要线性分量(或者说是主成分)=>方差加大的方向

(4)PCA算法的求解就是找到主要线性分量及其表征方式的过程

4)PCA使用例子

from sklearn.decomposition import PCA

import numpy as np

X = np.array([[-1, 1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])

pca=PCA(n_components=1)pca.fit(X)

3. 因子分析(FA

1)因子分析简介

(1)因子分析是从假设出发,它是假设所有的自变量x出现的原因是因为背后存在一个潜变量f(也就是我们所说的因子),在这个因子的作用下,x可以被观察到。

(2)因子分析是通过研究变量间的相关系数矩阵,把这些变量间错综复杂的关系归结成少数几个综合因子,并据此对变量进行分类的一种统计分析方法。

(3)因子分析就是将原始变量转变为新的因子,这些因子之间的相关性较低,而因子内部的变量相关程度较高。

(4)因子分析可以用于降维,但因子分析的作用远不止降维。

(5)例子:一个学生考试,数学,化学 ,物理都考了满分,那么我们认为这个学生理性思维较强,理性思维就是一个因子。在这个因子的作用下,偏理科的成绩才会那么高。

2)因子分析的主要目的

(1)探索结构:在变量之间存在高度相关性的时候我们希望用较少的因子来概括其信息。

(2)简化数据:把原始变量转化为因子得分后,使用因子得分进行其他分析,比如聚类分析、回归分析等。

(3)综合评价:通过每个因子得分计算出综合得分,对分析对象进行综合评价。

3)相关的概念

(1)因子载荷

  • 因子载荷就是每个原始变量和每个因子之间的相关系数,它反映了变量对因子的重要性。
  • 通过因子载荷值的高低,我们能知道变量在对应因子中的重要性大小,这样能够帮助我们发现因子的实际含义,有利于因子的命名。
  • 当有多个因子的时候,因子载荷将构成一个矩阵,称为因子载荷矩阵。

(2)变量共同度

  1. 变量共同度就是每个变量所包含的信息能够被因子所解释的程度,其取值范围介于0和1之间,取值越大,说明该变量能被因子解释的程度越高。

(3)因子旋转

  • 因子分析的结果需要每个因子都要有实际意义,有时,原始变量和因子之间的相关系数可能无法明显地表达出因子的含义,为了使这些相关系数更加显著,可以对因子载荷矩阵进行旋转,使原始变量和因子之间的关系更为突出,从而对因子的解释更加容易。
  • 旋转方法一般采用最大方差法,该方法能够使每个变量尽可能在一个因子上有较高载荷,在其余的因子上载荷较小,从而方便对因子进行解释。

(4)因子得分

  • 因子得分可以用来评价每个个案在每个因子上的分值,该分值包含了原始变量的信息,可以用于代替原始变量进行其他统计分析,比如回归分析,可以考虑将因子得分作为自变量,与对应的因变量进行回归。
  • 原始变量的数值是可以直接观测到的,而因子得分只能通过原始变量和因子之间的关系计算得到,并且因子得分是经过标准化之后的数值,各个因子得分之间不受量纲的影响。

4)因子分析步骤

(1)判断数据是否适合因子分析

  • 因子分析的变量要求是连续变量,分类变量不适合直接进行因子分析。
  • 建议个案个数是变量个数的5倍以上,这只是一个参考依据,并不是绝对的标准。
  • KMO检验统计量在0.5以下,不适合因子分析,在0.7以上时,数据较适合因子分析,在0.8以上时,说明数据极其适合因子分析。

(2)构造因子变量

(3)利用因子旋转方法使得因子更具有实际意义

(4)计算每个个案因子得分

5)确定提取因子个数的标准

(1)初始特征值大于1的因子个数

(2)累积方差贡献率达到一定水平(60%)的因子个数

(3)碎石图中处于较陡峭曲线上所对应的因子个数

(4)依据对研究事物的理解而指定因子个数

6)主成分和因子分析比较

(1)因子分析中是把变量表示成各因子的线性组合,而主成分分析中则是把主成分表示成各个变量的线性组合。

  • 主成分分析仅仅是变量变换:用原始变量的线性组合表示新的综合变量,即主成分。
  • 因子分析需要构造因子模型:用潜在的假想变量和随机影响变量的线性组合表示原始变量。因子模型估计出来后,需要对所得的公共因子进行解释。

(2)主成分分析的重点在于解释各变量的总方差,而因子分析则把重点放在解释各变量之 间的协方差。

(3)主成分分析中不需要有假设(assumptions),因子分析则需要一些假设。因子分析的假设包括:各个共同因子之间不相关,特殊因子(specific factor)之间也不相关,共同因子和特殊因子之间也不相关。

(4)主成分分析中,当给定的协方差矩阵或者相关矩阵的特征值是唯一的时候,主成分一般是独特的;而因子分析中因子不是独特的,可以旋转得到不到的因子。

(5)在因子分析中,因子个数需要分析者指定(spss)根据一定的条件自动设定,只要是特征值大于1的因子进入分析),而指 定的因子数量不同而结果不同。在主成分分析中,成分的数量是一定的,一般有几个变量就有几个主成分。

4.线性判别分析(LDA

1)LDA简介

(1)LDA线性判别分析也是一种经典的降维方法,LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。

(2)这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“*投影后类内方差最小,类间方差最大*”。要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

(3)例子:假设我们有两类数据分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。

(4)LDA除了可以用于降维以外,还可以用于分类。

  1. 一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。
  2. 当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别代入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。

2)LDA总结

(1)LDA算法既可以用来降维,又可以用来分类,但主要还是用于降维。在进行图像识别相关的数据分析时,LDA是一个有力的工具。

(2)LDA的中心思想是最大化类间间隔和最小化类内距离。

(3)LDA对数据做了一些很强的假设,尽管这些假设在实际中并不一定完全满足,但LDA已被证明是非常有效的一种降维方法。主要是因为线性模型对噪声的鲁棒性比较好,当表达能力有局限性,可以通过引入核函数扩展LDA以处理分布较为复杂的数据。

  1. 每个类数据都是高斯分布
  2. 各个类的协方差相等

(4)LDA的优点

  • 在降维过程中可以使用类别的先验知识,而不像PCA这样的无监督学习则无法使用类别先验知识。
  • LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

(5)LDA的缺点

  • LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
  • LDA降维最多降到类别数k-1的维数,如果降维的维度大于k-1,则不能使用LDA。当然有一些LDA的进化版算法可以绕开这个问题。
  • LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
  • LDA可能过拟合数据。

3)LDA与PCA的相同点

(1)两者均可以对数据进行降维。

(2)两者在降维时均使用了矩阵特征分解的思想。

(3)两者都假设数据符合高斯分布。

4)LDA与PCA的不同点

(1)投影方向不同

  1. PCA选择的是投影后方差最大的方向。PCA假设方差越大,信息量越多,用主要成分来表示原始数据可以去除冗余的维度,达到降维。
  2. LDA选择的是投影后类内方差小、类间方差大的方向。其用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。

(2)LDA是有监督降维方法,而PCA是无监督的降维方法。

(3)LDA降维最多降到k-1的维数(k为类别数),而PCA没有这个限制。

(4)LDA除了用于降维还可以用于分类,PCA只能用于降维。

(5)在语音识别中应用例子

  • 想从一段音频中提取出人的语音信号,这时可以使用PCA先进行降维,过滤掉一些固定频率(方差较小)的背景噪声。
  • 想要从这段音频中区分出声音属于哪个人,那么应该使用LDA对数据进行降维,使每个人的语音信号具有区分性。

(6)在人脸识别领域应用例子

  • PCA的人脸识别方法(也称特征脸方法)将人脸图像按行展开成一个高纬向量,对多个人脸特征的协方差矩阵做特征值分解,其中最大特征值对应的特征向量具有与人脸相似的形状。PCA降维一般情况下保留的是最佳描述特征(主成分),而分类特征。
  • 想要达到更好的人脸识别效果,应该使用LDA方法对数据集进行降维,使得不同人脸在投影后的特征具有一定区分性。

参考文献 

[1]. 主成分分析(PCA)原理详解.https://blog.csdn.net/program_developer/article/details/80632779

[2]. 数据分析之因子分析. https://www.jianshu.com/p/bd6a6ed29f9f

[3]. 主成分和因子分析原理及比较. https://www.cnblogs.com/appboling/p/3797151.html

[4]. 【机器学习】LDA线性判别分析原理及实例. https://blog.csdn.net/brucewong0516/article/details/78684005

降维算法可以与其他算法结合使用,以提高数据分析和模型训练的效果。其中,一种常见的结合方式是在降维后使用其他算法进行数据分析或模型训练。 例如,可以将主成分分析(PCA)与聚类算法结合使用。首先,使用PCA将高维数据降维为较低维度的特征表示。然后,将降维后的数据输入到聚类算法中,以发现数据中的隐藏模式和聚类结构。 另一个结合方式是将降维算法与分类算法相结合。例如,可以将Isomap或LLE算法用于降维,然后使用支持向量机(SVM)或随机森林等分类算法进行模型训练。通过降维,可以减少特征维度,同时保留数据中的重要信息,从而提高分类算法的准确性。 此外,降维算法还可以与可视化算法结合使用,以便更好地理解数据。例如,可以使用t-SNE算法对高维数据进行降维,然后使用散点图或热力图等可视化技术展示降维后的数据分布,帮助用户观察数据之间的关系和模式。 综上所述,降维算法可以与聚类算法、分类算法和可视化算法等进行结合,以提高数据分析和模型训练的效果。这种结合方式可以根据具体的问题和需求来选择合适的算法组合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [降维算法总结(超全!附代码)](https://blog.csdn.net/SeafyLiang/article/details/118701759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值