当前位置: 首页 > news >正文

线性判别分析LDA

一、降维的基础背景

  • 降维的概念与必要性:在机器学习中,降维是指在限定条件下减少随机变量的个数,以提取出不相关的主变量。由于实际数据常面临多重共线性(导致模型泛化能力弱、高维空间稀疏难以找到特征等问题),且仅考虑单一变量会忽略潜在关联,因此降维势在必行 。
  • 降维的目的:
    • 减少特征属性的个数
    • 确保特征属性之间是相互独立的
  • 降维的两大方法
    • 特征选择(Feature Selection):选出有效的特征子集,去掉不相关或冗余的特征,特征的数值在选择前后不改变 。

    • 特征抽取(Feature Extraction)改变原特征空间,将其映射到新的特征空间,新特征是原特征的映射 。

  • 主成分分析(PCA)与 LDA 的对比:PCA 是一种无监督的降维方法;而 LDA 是一种基于分类模型进行特征属性合并的操作,是一种有监督降维方法(既可以用于二分类也可以用于多分类) 。

二、线性判别分析(LDA)的核心思想

2.1 基本概念

LDA 由 R.A. Fisher 在1936年提出,既可用于分类问题,也可用于有监督的特征降维 。

2.2 主要思想

  1. 训练集【特征x+标签y】:给定训练集,设法将样例投影到一条直线(或低维空间)上,使得同类样例的投影点尽可能接近,同时异类样例的投影点中心尽可能远离
  2. 推理(预测)【不需要label】:在新样本分类时,将其投影到该直线上,根据投影点位置确定类别 。

三、 二分类 LDA 的数学原理推导

3.1 如何进行投影

  1. 可以用向量的内积

    来表示特征向量 x在向量w上的投影长度;
  2. 投影是通过一个线性模型来实现的;实现方法为:将样本的特征向量 x投影到线性模型的权值向量 w上。

3.2 解决二分类问题

  1. 公式
  • 优化目标量化
    • 类间散度矩阵(异类尽可能远):通过比较两个类别均值投影点之间的距离来量化,表达式为

    • 类内散度矩阵(同类尽可能近):通过同类样本投影点与其均值投影点之间的距离平方和来量化,即

      。仅仅使得类中心相距远是不够的,如果同类样本方差过大(分布分散),依然会产生类别重叠 。
  • 目标函数(广义瑞利商):综合上述两点,最大化目标函数J,即类间散度矩阵(S_b)与类内散度矩阵(S_w)的比值:

  • 求解方法:根据广义瑞利商的性质,J(w) 的最大值即为矩阵

    的最大特征值,而最优的投影方向 w$就是该最大特征值对应的特征向量 。
  1. 具体流程

四、多分类 LDA 与算法流程

  • 多分类扩展:对于K类问题,可以计算全局散度矩阵

    。其中,总类内散度矩阵

    是每一类散度矩阵之和 ,类间散度矩阵

  • 降维维度的限制:在多分类 LDA 中,最多只能将特征维度降到 K-1$维(K$为类别总数),因为矩阵

    的非零特征值最多只有 K-1 个 。
  • LDA 算法与二分类具体步骤一样

五、应用实例与总结

5.1实例分析

实验结果:求出来两个特征值0,12.2007(图一是用了0,图二是用了12.2007)

结果证明,使用最大特征值(12.2007)对应的特征向量进行投影,能够实现两个类别的良好分离(Good separability) 。

5.2总结

LDA 降维的目标就是将带标签的数据投影到低维空间,同时尽可能保留数据样本信息、寻找最佳可分投影方向,并严格满足“同类近、异类远”的条件 。

LDA降维的目标:将带有标签的数据降维,投影到低维空间同时满足三个条件:

  • 尽可能多地保留数据样本的信息(选择最大的特征对应的特征向量)。
  • 寻找使样本尽可能好分的最佳投影方向。
  • 投影后使得同类样本尽可能近,不同类样本尽可能远。
http://www.jsqmd.com/news/684068/

相关文章:

  • Docker AI工作负载调度失效深度复盘(K8s+Docker+LLM推理协同调度白皮书)
  • 用Python的NumPy和SciPy玩转均匀分布:从骰子模拟到销售预测实战
  • 告别 Add-AppxPackage 部署失败:深入理解 Windows 应用包冲突与资源占用锁
  • STM32寄存器驱动LED流水灯:从仿真到实物的全流程实践
  • 藏在手机里的“城市”:一块电路板是如何运转的?
  • 从振动信号到股票分析:手把手教你用Python的EMD处理非平稳数据(PyEMD实战)
  • AspectJ编译期织入实战
  • YOLO自动标注工具软件
  • 2026 年绍兴养发加盟机构权威排行榜 TOP5(千唯养发居首) - 小艾信息发布
  • MLOps资源管理优化:从GPU虚拟化到智能调度
  • 消息队列消费积压到打爆磁盘:我用Consumer Lag监控+阈值告警在5分钟内止血
  • 别再死记硬背了!用PyTorch手把手带你理解ReLU和Sigmoid激活函数到底在干啥
  • 网络不稳,很多时候不在交换机:通信系统安装的结构逻辑与落地
  • PyTorch计算机视觉深度学习七日速成指南
  • 从‘Invalid HTTP status’到稳定连接:UniApp微信小程序WebSocket实战配置详解
  • Docker构建缓存失效之谜,深度解析.dockerignore误配、时间戳漂移与远程缓存断连的3大隐形杀手
  • 不止STM32F0!国产MM32L073等Cortex-M0芯片IAP中断问题通用解法
  • Reference Extractor终极指南:3分钟从Word文档恢复Zotero和Mendeley引用
  • html怎么部署到服务器_HTML文件如何上传到Nginx或Apache
  • 86253
  • C#构建低延迟AI微服务的最后机会:.NET 11推理加速黄金组合(Span<T>零拷贝+MemoryPool<T>预分配+Custom TensorKernel),仅剩217行核心代码未开源
  • JavaWeb 核心:JavaBean+JSP 动作标签 + EL 表达式全解析
  • FPGA实战:在Vivado里快速搭建一个可配置的偶数分频IP核(附源码)
  • 网络安全已进入“高频攻击、高复杂度、高不确定性”的新阶段
  • 数百种蛋白同步解析:抗体芯片如何重塑WB技术边界
  • ESP-C3-12F内置USB烧录实测:比传统串口快多少?省时技巧与常见错误排查
  • MySQL触发器在主从架构下的表现_MySQL触发器主从同步策略
  • 高效解决开发环境依赖问题:Visual C++运行库完整配置指南
  • 告别Office依赖!用Aspose.Slides for .NET在服务器端批量生成PPT(附C#代码示例)
  • 手把手教你理解芯片‘身份证’PUF:从制造误差到密钥生成,一次搞懂SRAM PUF的完整生命周期