简述LDA,PCA,SVD原理推导及其简单应用

主成分分析(PCA)和线性判别分析(LDA)原理简介 本文整理自下面的博客,对PCA和LDA的原理进行介绍,并对比了其不同点。 1).主成分分析(PCA)原理详解 2).线性判别分析LDA与主成分分析PCA 3). PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别 4).什么时候使用PCA和LDA? 5).PCA的数学原理 6).Dimensionality Reduction——LDA线性判别分析原理篇 7).主成分分析... 阅读详情

线性判别分析(Linear Discriminant Analysis)


     对于给定的标记数据(xi,ci),其中xi∈Rn,ci∈{0,1},此时设计一个分类器(Classifier),将这两类数据分开,另外这两类数据线性可分(存在一个超平面Σ1,将这两类数据分开,也就是说存在一个与超平面垂直的超平面Σ2,使所有的数据投影(Projection)到它上面,并且同样可分),如下图所示:
线性判别分析
假定Σ2表示为w,则将数据X投影到n−1维超平面上,为可视化,我们设为1维,即

yi=wTxi
那么我们可以找到阈值y0,当yi≥y0为C1类,否则为C2类。
    我们假定C1有数据点N1个,C2有N2个,则投影后的类内均值及松散度(Scatter)为,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪m1=1N1∑i=1N1wTxi,m2=1N2∑i=N1+1N1+N2wTxi⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪s21=∑i=1N1(yi−m1)2,s22=∑i=N1+1N1+N2(yi−m2)2

    那么目标函数为,
J(w)=(m1−m2)2s21+s22⟹J(w)=wTA1wwTA2w
其中,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪A1=(m′2−m′1)(m′2−m′1)T,A2=∑i=1N1(xi−m′1)(xi−m′1)T+∑i=N1+1N1+N2(xi−m′2)(xi−m′2)T,m′1=1N1∑i=1N1xim′2=1N2∑i=N1+1N1+N2xi
Tip:至于常量已知矩阵A1和A2的上式推导也比较简单,只需利用m1=wTm′1及m2=wTm′2即可
记下来的任务就是求取w,即,
∂J(w)∂w=∂∂w(wTA1wwTA2w)=0⟹A1w(wTA2w)=A2w(wTA1w)

说明只需A1w与A2w同向即可,又A1w=(m′2−m′1)(m′2−m′1)Tw≡λ(m′2−m′1),即只需w与A−12(m′2−m′1)同向即可

主成分分析(Principal Component Analysis)


要点就是使样本点在某个方向上的投影具有最大方差,如下图所示,
主成分分析
对于具有n个特征的m个样本,可以得到一个样本集矩阵,

A=⎛⎝⎜⎜⎜⎜⎜a11  a12  ⋯  a1na21  a22  ⋯  a2n  ⋮       ⋮    ⋱   ⋮am1  am2  ⋯  amn⎞⎠⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜aT1aT2  ⋮aTm⎞⎠⎟⎟⎟⎟⎟      

寻找样本集的主方向u,将样本集投影到某个方向上,以此计算出m个投影点的方差,并认为方差最大的方向就为主方向。我们假定样本集是去均值化的,则样本点集在某个方向上的投影为,
A⋅u=⎛⎝⎜⎜⎜⎜⎜a11  a12  ⋯  a1na21  a22  ⋯  a2n  ⋮       ⋮    ⋱   ⋮am1  am2  ⋯  amn⎞⎠⎟⎟⎟⎟⎟⋅u=⎛⎝⎜⎜⎜⎜⎜aT1aT2  ⋮aTm⎞⎠⎟⎟⎟⎟⎟⋅u=⎛⎝⎜⎜⎜⎜⎜aT1uaT2u   ⋮aTmu⎞⎠⎟⎟⎟⎟⎟
则向量A⋅u的方差Var(A⋅u)=(Au−E)T(Au−E)=(Au)TAu=uTATAu
其中,E={1m∑mi=1aTiu}m,也就是投影点的期望组成m维列向量
因此,目标函数为,
J(u)=uTATAu, Subject to: ||u||2=1
则Lagrange function为,
L(u)=uTATAu−λ(uTu−1)
令∂L(u)∂u=0⟹(ATA)u=λu,我们得出方向向量u即为方阵ATA的特征向量,而λ即为它的特征值,也为投影点集在这个方向(特征向量)上的方差。这个过程实质上也是特征值分解(方阵)的过程,后面我们分析更加一般的矩阵分解,奇异值分解(不一定为方阵),这样我们将方阵ATA的特征值由大到小进行排序,我们选择比较大的特征值λi(通常最大的10%的特征值之和就占所有特征值之和的99%)所对应的特征向量vi作为主成分来近似表示原始矩阵,而且这些向量之间均是线性无关的,甚至正交的,这样也就达到了降维(Dimensionality Reduction)的目的。

奇异值分解(Singular Value Decomposition)


若A是m×n的矩阵,那么ATA就为n×n的方阵,那么,由(ATA)vi=λivi,令,

⎧⎩⎨⎪⎪δi=λi−−√ui=1δiAvi⟹A=UΣVT,这个过程只需反代回去即可验证
后者就为奇异值分解SVD。上式中若为复数域,则为A=UΣVH,U和V为酉矩阵,Σ为所有奇异值组成的对角矩阵
一般地,
ATA=VΣHUHUΣVH=VΣHΣVH
AAT=UΣVHVΣHUH=UΣHΣUH
因此U的列向量ui(左奇异向量)为AAH的特征向量,V的列向量vi(右奇异向量)为AHA的特征向量,Σ的对角元为ΣHΣ或ΣΣH的特征值的平方根
    直观上,奇异值分解将矩阵分解成若干个秩一矩阵之和,即,
A=σ1u1vH1+σ2u2vH2+⋯+σrurvHr
其中uivHi都是秩为1的矩阵,对这些奇异值进行排序,σ1≥σ2≥⋯≥σr>0,这样我们选择比较大的特征值,而使较小的特征值为0(也就是舍去它们),就可以通过这些奇异值及其对应的奇异向量还原矩阵。
当然,SVD还可用于求矩阵伪逆(M-P),数据压缩,个性化推荐等等
主要参考文献
  1. Machine Learning:A Probabilistic Perspective,Kevin P. Murphy, The MIT Press, 2012
  2. Prof. Andrew Ng, Machine Learning, Stanford University
  3. Pattern Recognition and Machine Learning Chapter 10, Christopher M. Bishop, Springer-Verlag, 2006
机器学习--降维总结--PCA\LDA\SVD 本文部分参考和摘录了以下文章,在此由衷感谢以下作者的分享! https://zhuanlan.zhihu.com/p/77151308 周志华老师的西瓜书 百面机器学习 开始咯! 降维 什么是降维呢,可以想象一个5 * 4矩阵乘以一个4 * 3 的一个矩阵,相当于对5 * 4的矩阵进行了线性变换,得到一个5 * 3的一个矩阵,他的维度就变成了5*3。 那么降维有什么好处呢,我们为什么要进行降维?在... 阅读详情

相关推荐

(6-4-2 )

主成分分析(Principal Component Analysis,PCA)是一种线性降维方法,通过将数据投影到新的低维子空间,保留最大方差的特征,以实现维度降低和噪声削减。例如下面是一个使用PyTorch实现主成分分析(PCA)方法进行特征抽取的例子,本实例将使用PCA降低图像数据的维度,并使用降维后的数据训练一个简单的神经网络模型。接下来,定义了一个简单的神经网络模型,使用降维后的数据进行训练。下面是一个使用TensorFlow使用主成分分析(PCA)方法进行特征抽取的例子,并保存处理后的模型。

码农三叔 1127

使用pytorch和sklearn的PCA分别对mnist做降维

1. pytorch,使用 torch.pca_lowrank 函数 A,要处理的数据, q要保留的维度,返回(S,V,D)元组,中间的V为降维后的维度 代码 import torch import torchvision.datasets as data from torch.utils.data import DataLoader import torchvision.transforms as T import matplotlib.pyplot as plt from mpl_tool..

zjh12312311的博客 9075

机器学习面经 - SVD、PCA、LDA

当涉及到降维和特征提取时,PCA、LDA和SVD是三种常用的线性代数和机器学习算法。它们在不同的应用场景下有着各自的优势和用途,也是面试中常问的一些基础知识。一句话总结:PCA是一种无监督降维算法,通过保留数据的主要信息来减少特征维度。LDA是一种有监督降维算法,着重于最大化类别之间的可分性。SVD是一种数学分解技术,常用于矩阵分解和数据压缩。答:PCA也叫主成分分析法,PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。

duyuehuang7686的博客 517

Python——PCA主成分分析

PCA主成分分析 输入X,降低后的维度k def PCA_Batch_Feat(X, k, center=True): """ param X: BxCxHxW param k: scalar return: """ B, C, H, W = X.shape X = X.permute(0, 2, 3, 1) # BxHxWxC X = X.reshape(B, H * W, C) U, S, V = torch.pca_lowran

weixin_44823313的博客 1898

torch-decomposition:使用 Torch7 进行成分分析(PCA、Whitened PCA、LDA、LPP、NPP、FastICA)

Torch7的分解模块 主成分分析 (PCA) 白化主成分分析 (W-PCA) 线性判别分析 (LDA) 局部保护投影 (LPP) 邻里保护预测 (NPP) 快速独立分量分析 (FastICA) 约翰-亚历山大·阿塞尔 安装 克隆此存储库或下载源代码。 用法 调用decomposition = require "decomposition" ,然后是以下任何一项: decomposition.pca(x) , decomposition.lda(x, y) , decomposition.lpp(x) , decomposition.npp(x) , decomposition.fastica(x) 。 或者,您可以使用 iTorch notebook 并打开decomposition.ipynb 。 贡献 叉它! 创建您的功能分支: git checkout

Python遥感数据主成分分析.pdf

Python遥感数据主成分分析.pdf

小白学Pytorch系列--Torch API (10)

小白学Pytorch系列–Torch API (10) BLAS and LAPACK Operations addbmm addmm addmv addr baddbmm bmm chain_matmul cholesky cholesky_inverse cholesky_solve dot geqrf ger inner inverse det logdet slogdet lu lu_solve lu_unpack matmul matmul matrix_exp mm mv orgqr ormq

发呆的比目鱼的博客 1072

拆解一个800G光模块:手把手带你认识里面的MT插芯和光纤阵列(FA)

本文详细拆解了800G光模块中的关键组件MT插芯和光纤阵列(FA),揭示了并行光学技术如何实现高速数据传输。通过显微镜下的精密观察,展示了MT插芯的高精度构造和光纤阵列的连接奥秘,同时解析了高精度研磨工艺对光信号传输的重要性。这些微型组件是高速收发模块实现800Gbps带宽的核心技术。

weixin_30839881的博客 1547

PCA的原理和pytorch实现

PCA的原理和pytorch实现PCA原理简介pytorch实现 PCA即主成分分析在数据降维方面有着非常重要的作用,本文简单介绍其原理,并给出pytorch的实现。 PCA原理简介 PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是...

weixin_43844219的博客 1万+

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

u012790770的博客 3615

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 671

降维方法:PCA、SVD、LDA、LLE

参考文献: 1.SVD原理与在降维中的应用 2.PCA和SVD的关系

zhuhongde的博客 1546

摩擦纳米发电机测试系统全解析:从硬件配置到软件控制

本文全面解析摩擦纳米发电机(TENG)测试系统,涵盖硬件配置、软件控制及系统集成。详细介绍NI USB-6003等采集卡的选择与使用,以及一体化控制软件的功能与优势,帮助研究人员高效评估纳米材料发电性能。系统支持自动测试与数据分析,显著提升测试效率与准确性。

weixin_28720767的博客 460

PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系

PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系  最近在研究谱聚类时,迁移到主成分分析(PCA),发现两者有着惊人的相似之处,同时还牵扯到Kmeans、SVD,甚至LDA也有相通的地方(虽然LDA是有监督学习),因此在这里写一篇总结,描述一下以上各个模型之间的共通性,有助于加深对这一类无监督学习算法的理解。 PCA与SVD/EVD的关系   首先,从SVD入手: X(d...

songbinxu的博客 4354

Linux下开机异常(fsck exited with status code 4)

Linux下开机异常事情是这样的,本来我呢跑着程序听着歌,结果忽然就死机了,我只能强制关机,再次打开系统的时候,就提示这样fsck from util-linux 2.26.2 /dev/sda10 contains a file system with errors, check forced. /dev/sda10: Inodes that were part of a corrupted pr

芳草碧连天 2万+

AVS3代码阅读HPM4.0

参考AVS3代码阅读(HPM6.0)(一.整体架构以及CU划分部分代码) 版本:HPM4.0 核心文件:app_encoder.c   要做的是帧间预测,所以前面的函数先暂时不管了,挖个坑以后再填。直接从enc_pic看起。 enc_pic()    ...

CRR的博客 3187

机器学习——PCA与LDA

机器学习——PCA与LDAPCA推导一个PCALDALDA的中心思想是什么LDA的优缺点LDA的步骤推导LDAPCA和LDA有什么区别 PCA 主成分分析(PCA)是一种多变量统计方法,它是最常用的降维方法之一,通过正交变换将一组可能存在相关性的变量数据转换为一组线性不相关的变量,转换后的变量被称为主成分 可以使用两种方法进行PCA,分别是特征分解或奇异值分解(SVD)。PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。 算法步骤 假设有m条n维数据 将原始数据按列组成n行m

DCGJ666的博客 5874

74HC165级联踩坑实录:STM32读取32路开关状态,时序调试与常见问题排查

本文详细介绍了74HC165级联在STM32读取32路开关状态时的时序调试与常见问题排查。从硬件设计的PCB布局优化、电源噪声控制,到软件时序的精确调校和数据采集策略,提供了完整的解决方案。通过逻辑分析仪和示波器的高效使用,解决了信号延迟和干扰问题,最终实现了稳定可靠的32路信号读取。

weixin_34046298的博客 313

【机器学习】PCA、LDA、SVD

线性变换 如果我们将向量 v 左乘矩阵 A,我们就会得到新的向量 b,也即可以表述说矩阵 A 对输入向量 v 执行了一次线性变换,且线性变换结果为 b。因此矩阵运算 Av = b 就代表向量 v 通过一个变换(矩阵 A)得到向量 b。下面的实例展示了矩阵乘法(该类型的乘法称之为点积)是怎样进行的: 如果假设矩阵就是一阵风,它通过有形的力量得出可见的结果。而这一阵风所吹向的方向就是特征向...

littlemichelle 3500

安卓开发工程师在车载项目中的角色与技术实践

本文全面探讨了安卓开发工程师在车载项目中的关键角色,重点分析了技术栈(Kotlin/Java/Gradle)、岗位职责和任职要求。文章详细解读了车载安卓开发的核心技能,包括架构设计、性能优化和缺陷修复,并提供了20个针对性面试问题及答案。特别强调了车载环境的特殊需求,如硬件集成、安全认证和实时性要求。通过技术深度与实践案例的结合,为开发者和企业提供了从需求分析到系统优化的完整指导,旨在提升车载安卓开发的专业水平和招聘效率。

郑伟强dev的专栏 131

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PCA、SVD和LDA

文章目录1.数学知识2.PCA,主成分分析2.1 方差最大原理2.1.1推导2.1.1总结2.1 最小平方误差角度2.3 总结3.SVD(奇异值分解)SVD性质 原始数据有时有高维特征向量,可能包含很多冗余和噪声。通过降维寻找数据内部的特性,提升特征的表达能力,降低训练复杂度。 1.数学知识 数据标准化 x−x‾std\frac{x - \overline x}{std}stdx−x​,在处理数...

虎哥的铲屎员 897

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数据挖掘:特征提取——PCA与LDA

在数据维度很高时,我们会从中提取出一些有用的特征,降低数据处理的维度,方便计算,这个过程也被叫做降维。 一般常用的降维方法有PCA和LDA。 PCA:非监督降维,降维后数据的方差尽可能的大(方差大,含有的信息量就大) LDA:有监督降维,降维后,组内(同一类别)方差小,组间(不同类别之间)方差大 主成分分析PCA PCA的直观理解 PCA的一般用途: 聚类:把复杂的多维数据转为少量数据,易...

AvenueCyy的博客 8592

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SVD+PCA+LDA+LSA/LSI+NMF

参考资料: [1] 一文详解LDA主题模型 [2] LDA(Latent Dirichlet Allocation)主题模型 [3] LDA-math-汇总 LDA数学八卦

林夕 1301

数据降维技术解析:PCA、LDA与SVD的核心原理与应用场景

在数据科学和机器学习领域,高维数据处理常面临维度灾难、计算效率低下和可解释性差等挑战。降维技术通过将高维数据映射到低维空间,在保留关键信息的同时,提升模型性能和计算效率。其核心原理包括最大化方差、最大化类别可分性和矩阵分解等数学方法。从技术价值看,降维不仅能加速模型训练、缓解过拟合,还能增强数据的可视化效果和特征的可解释性。在应用场景上,主成分分析(PCA)适用于无监督的特征提取和数据可视化,线性判别分析(LDA)则专注于有监督分类任务的特征优化,而奇异值分解(SVD)作为更通用的矩阵分解工具,广泛应用于推

weixin_30873847的博客 479

机器学习面试题——PCA与LDA

1)读过研究生的这点知识应该可以自己看懂 2)PAC和LDA都是降维算法,和t-SNE类似,在tensorboard中,可以将你的高威特征降维下来展示

weixin_46838716的博客 2052

机器学习面试-降维算法LDA和PCA(白板推导)

降维算法分为: 1.直接降维, 特征选择 2. 线性降维, PCA, MDS等 3. 分流线, 流线包括lsomap , LLE等 降维的目的: 1. 减少预测变量的个数 2. 确保这些变量是相互独立的 3. 数据在低纬度时候更容易处理, 更容易使用 4. 去除噪数据噪声 5. 降低算法的运算开销 1. 线性判别分析LDA LDA的 核心思想就是投影后类内方差小, 类间方差最大 LDA算法的优缺点: 优点: 可以使用类别的先验知识 以标签, 类别衡量差异性的 有监督降维算法, 相对于PCA的模糊性,

qq_38489833的博客 2911
上一篇: 信息论基本概念(熵、联合熵、条件熵、相对熵、互信息)讲述与推导
下一篇: 泰坦尼克之灾(逻辑回归应用)
mlee1018
博客等级 码龄12年 36粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值