PCA LDA

2024-04-21 13:18
文章标签 pca lda

本文主要是介绍PCA LDA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

预备知识

在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来衡量两个随机变量的联合变化程度。

方差

σ x 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \sigma_{x}^{2}=\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2} σx2=n11i=1n(xixˉ)2
n n n 表示样本数量, x ˉ \bar{x} xˉ 表示观测样本的均值。

协方差

σ ( x , y ) = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) \sigma(x, y) = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) σ(x,y)=n11i=1n(xixˉ)(yiyˉ)
x ˉ , y ˉ \bar{x}, \bar{y} xˉ,yˉ 分别表示两个随机变量所对应的观测样本均值。方差 σ x 2 \sigma_x^2 σx2 可看作随机变量 x x x 关于自身的协方差 σ ( x , x ) \sigma(x, x) σ(x,x)

协方差矩阵

给定 d d d 个随机变量 x k x_k xk k = 1 , 2 , … , d k=1, 2, \dots, d k=1,2,,d 。我们用 x k i x_{ki} xki 表示随机变量 x k x_k xk 中的第 i i i 个观测样本,每个随机变量所对应的观测样本数量均为 n n n

对于这些随机变量,我们可以根据协方差的定义,求出两两之间的协方差,即:
σ ( x a , x b ) = 1 n − 1 ∑ i = 1 n ( x a i − x ˉ a ) ( x b i − x ˉ b ) \sigma\left(x_{a}, x_{b}\right)=\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{a i}-\bar{x}_{a}\right)\left(x_{b i}-\bar{x}_{b}\right) σ(xa,xb)=n11i=1n(xaixˉa)(xbixˉb)

因此协方差矩阵为:
Σ = [ σ ( x 1 , x 1 ) ⋯ σ ( x 1 , x d ) ⋮ ⋱ ⋮ σ ( x d , x 1 ) ⋯ σ ( x d , x d ) ] ∈ R d × d \Sigma=\left[\begin{array}{ccc} \sigma\left(x_{1}, x_{1}\right) & \cdots & \sigma\left(x_{1}, x_{d}\right) \\ \vdots & \ddots & \vdots \\ \sigma\left(x_{d}, x_{1}\right) & \cdots & \sigma\left(x_{d}, x_{d}\right) \end{array}\right] \in \mathbb{R}^{d \times d} Σ=σ(x1,x1)σ(xd,x1)σ(x1,xd)σ(xd,xd)Rd×d

其中,对角线上的元素为各个随机变量的方差,非对角线上的元素为两两随机变量之间的协方差。

PCA

PCA(主成分分析)是比较常见的线性降维方法,通过线性投影将高维数据映射到低维数据中,所期望的是在投影的维度上,新特征自身的方差尽量大,方差越大特征越有效,尽量使产生的新特征间的相关性越小。

算法流程

假设有 m m m 条数据,每条数据有 n n n 个特征。 x j i x_j^i xji 表示第 i i i 个样本的第 j j j 个特征。

  1. 均值归一化:
    μ j = 1 m ∑ i = 1 m x j i x j i : = x j i − μ j s j \begin{aligned} \mu_{j} &=\frac{1}{m} \sum_{i=1}^{m} x_{j}^{i} \\ x_{j}^{i} &:= \frac{x_{j}^{i}-\mu_{j}}{s_{j}} \end{aligned} μjxji=m1i=1mxji:=sjxjiμj
    其中 s j = m a x ( x j ) − m i n ( x j ) s_j = max(x_j) - min(x_j) sj=max(xj)min(xj)

  2. 计算协方差矩阵:
    Σ = 1 m X X T ∈ R n × n \Sigma = \frac{1}{m} X X^T \in \mathbb{R}^{n \times n} Σ=m1XXTRn×n

  3. 计算特征向量:
    [ U , S , V ] = s v d ( Σ ) [U, S, V] = svd(\Sigma) [U,S,V]=svd(Σ)
    其中左奇异向量、奇异值矩阵、右奇异向量: U ∈ R n × n , S ∈ R n × m , V ∈ R m × m U \in \mathbb{R}^{n \times n}, S \in \mathbb{R}^{n \times m}, V \in \mathbb{R}^{m \times m} URn×n,SRn×m,VRm×m

  4. U U U 中取前 k k k 列: U r e d u c e ∈ R n × k U_{reduce} \in \mathbb{R}^{n \times k} UreduceRn×k

  5. 计算得到降维后的数据: Z = U r e d u c e T ∗ X , Z ∈ R k × m Z = U_{reduce}^T * X, Z \in \mathbb{R}^{k \times m} Z=UreduceTX,ZRk×m

如何选择 k k k

∑ i = 1 k s i i ∑ i = 1 n s i i ⩾ 0.99 \frac{\sum_{i=1}^{k} s_{i i}}{\sum_{i=1}^{n} s_{i i}} \geqslant 0.99 i=1nsiii=1ksii0.99
选择满足上述条件的最小 k k k

降维的应用

  • 数据压缩,减少占用的存储空间
  • 加快算法计算速度
  • 低维平面可以可视化数据

PCA为什么要用协方差矩阵的特征向量矩阵来做投影矩阵呢?

降维的目的就是“降噪”和“去冗余”。

“降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。

我们要最大化方差来保留更多的信息。去噪。
有趣的是,协方差矩阵能同时表现不同维度间的相关性以及各个维度上的方差。

协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。

先看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式——矩阵对角化。

再看“去冗余”,对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。

LDA

LDA(线性判别分析)是一种经典的降维方法。和PCA不考虑样本类别输出的无监督降维技术不同,LDA是一种监督学习的降维技术,数据集的每个样本有类别输出。

LDA分类思想简单总结如下:

  • 多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成1维数据进行处理。
  • 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
  • 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

如果用一句话概括LDA思想:投影后类内方差最小,类间方差最大。

LDA和PCA异同

异同点LDAPCA
相同点1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点有监督无监督
降维最多降到 k − 1 k-1 k1降维多少没有限制
可以用于降维,还可以用于分类只用于降维
选择分类性能最好的投影方向选择样本点投影具有最大方差的方向
更明确,更能反映样本间差异目的较为模糊

参考自

  • 方差、协方差
  • 奇异值分解(SVD)原理与在降维中的应用
  • 吴恩达机器学习(十二)主成分分析(降维、PCA)
  • 数据分析面试【机器学习】总结之-PCA主成成分分析 常见面试题整理

这篇关于PCA LDA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/923174

相关文章

《机器学习》PCA数据降维 推导、参数讲解、代码演示及分析

目录 一、主成分分析 1、什么是主成分分析? 2、什么是降维? 3、如何进行主成分分析         1)数据标准化         2)计算协方差矩阵         3)计算特征值和特征向量         4)选择主成分         5)构建投影矩阵         6)数据降维 4、为什么要进行主成分分析         1)数据可视化         2)

《机器学习》—— PCA降维

文章目录 一、PCA降维简单介绍二、python中实现PCA降维函数的介绍三、代码实现四、PCA降维的优缺点 一、PCA降维简单介绍 PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。它通过线性变换将原始数据转换到新的坐标系统中,使得任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,

【C++】PCA原理

PCA原理       看到了Angry Master博客的文章,写的很浅显易懂,就转来了:http://pan.baidu.com/share/link?shareid=84575&uk=3106100059

NLP-词向量-发展:词袋模型【onehot、tf-idf】 -> 主题模型【LSA、LDA】 -> 词向量静态表征【Word2vec、GloVe、FastText】 -> 词向量动态表征【Bert】

NLP-词向量-发展: 词袋模型【onehot、tf-idf】主题模型【LSA、LDA】基于词向量的静态表征【Word2vec、GloVe、FastText】基于词向量的动态表征【Bert】 一、词袋模型(Bag-Of-Words) 1、One-Hot 词向量的维数为整个词汇表的长度,对于每个词,将其对应词汇表中的位置置为1,其余维度都置为0。 缺点是: 维度非常高,编码过于稀疏,易出

PCA降维奇异值分解SVD

PCA降维 涉及高维数据的问题容易陷入维数灾难,随着数据集维数的增加,算法学习所需的样本数量呈指数级增加,且需要更多的内存和处理能力,消耗资源。主成分分析也称为K-L变换,常用于高位数据预处理和可视化。PCA可以把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分。原理就是PCA将高维具有相关性的数据进行线性变换映射到一个低维子空间,尽可能多的保留更多变量(代表原特征),降维成一个线性无

数据降维技术——PCA(主成分分析)

为什么要对数据进行降维?     在机器学习或者数据挖掘中,我们往往会get到大量的数据源,这些数据源往往有很多维度来表示它的属性,但是我们在实际处理中只需要其中的几个主要的属性,而其他的属性或被当成噪声处理掉。比如,13*11的源数据经过将为后变成了13*4的优化数据,那么,中间就减去了7个不必要的属性,选取了4个主要属性成分,简化了计算。     常用的数据降维方法有:主成分分析

运用PCA(主成分分析法)进行人脸识别的MATLAB 代码实现

PCA(主成分分析算法)出现的比较早。 PCA算法依赖于一个基本假设:一类图像具有某些相似的特征(如人脸),在整个图像空间中呈现出聚类性,因而形成一个子空间,即所谓特征子空间,PCA变换是最佳正交变换,利用变换基的线性组合可以描述、表达和逼近这一类图像,因此可以进行图像识别,PCA包含训练和识别两个阶段。 训练阶段: 1)计算平均脸 2)计算差值脸 3)构建协方差矩阵 4)计算矩阵的特

线性判别分析LDA算法

LDA算法入门   一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和

各种数据降维方法ICA、 ISOMAP、 LDA、LE、 LLE、MDS、 PCA、 KPCA、SPCA、SVD、 JADE

独立分量分析 ICA 等度量映射 ISOMAP 线性判别分析 LDA (拉普拉斯)数据降维方法 LE 局部线性嵌入 LLE 多维尺度变换MDS 主成分分析 PCA 核主成分分析 KPCA 稀疏主成分分析SPCA 奇异值分解SVD 特征矩阵的联合近似对角化 JADE 各种数据降维方法(matlab代码)代码获取戳此处代码获取戳此处 降维目的:克服维数灾难,获取本质特征,节省存储空

【机器学习】独立成分分析的基本概念、应用领域、具体实例(含python代码)以及ICA和PCA的联系和区别

引言 独立成分分析(Independent Component Analysis,简称ICA)是一种统计方法,用于从多个观察到的混合信号中提取出原始的独立信号源 文章目录 引言一、独立成分分析1.1 定义1.2 独立成分分析的基本原理1.3 独立成分分析的步骤1.3.1 观察数据收集1.3.2 数据预处理1.3.3 ICA模型建立1.3.4 ICA算法实现1.3.5 源信号提取1.