西瓜书学习——线性判别分析

文章目录

  • 定义
  • LDA的具体步骤
    • 1. 计算类内散布矩阵(Within-Class Scatter Matrix)
    • 2. 计算类间散布矩阵(Between-Class Scatter Matrix)
    • 3. 求解最佳投影向量
    • 4. 数据投影
    • 5. 分类

定义

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种常用的监督学习降维技术,主要应用于模式识别和机器学习领域。LDA的核心思想是将高维的数据投影到低维空间,使得投影后的数据在同一类内部尽可能紧凑,不同类之间尽可能分离,从而达到分类的目的。

在这里插入图片描述

LDA的具体步骤

1. 计算类内散布矩阵(Within-Class Scatter Matrix)

首先,对于每个类别,我们需要计算其均值和协方差矩阵。假设我们有 K K K 个类别,对于第 k k k 类,其均值向量表示为 μ k \mu_k μk,协方差矩阵表示为 Σ k \Sigma_k Σk。类内散布矩阵 S w S_w Sw可以通过以下公式计算:
S w = ∑ k = 1 K ∑ x ∈ X k ( x − μ k ) ( x − μ k ) T S_w = \sum_{k=1}^{K} \sum_{x \in X_k} (x - \mu_k)(x - \mu_k)^T Sw=k=1KxXk(xμk)(xμk)T

其中, X k X_k Xk 表示属于第 k k k 类的所有样本。类内散布矩阵反映了同类数据内部的离散程度。

2. 计算类间散布矩阵(Between-Class Scatter Matrix)

类间散布矩阵 S b S_b Sb 可以通过以下公式计算:

S b = ∑ k = 1 K N k ( μ k − μ ) ( μ k − μ ) T S_b = \sum_{k=1}^{K} N_k (\mu_k - \mu)(\mu_k - \mu)^T Sb=k=1KNk(μkμ)(μkμ)T

其中, N k N_k Nk 是第kk类的样本数量, μ \mu μ 是所有样本的总体均值。类间散布矩阵反映了不同类别数据之间的离散程度。

3. 求解最佳投影向量

LDA 的目标是找到一个投影向量 w w w,使得数据在该向量上的投影能够最大化类间散布与类内散布的比值。这个投影向量可以通过求解下面的最优化问题得到:
max ⁡ w w T S b w w T S w w \max_w \frac{w^T S_b w}{w^T S_w w} wmaxwTSwwwTSbw
这个最优化问题等价于求解 S w − 1 S b S_w^{-1} S_b Sw1Sb 的最大特征值对应的特征向量。因此,我们可以通过计算特征值和特征向量来找到最佳的投影向量 w w w

4. 数据投影

找到最佳投影向量 w w w 后,我们可以将原始数据 x x x 投影到一维空间,得到其在 w w w 方向上的投影:
y = w T x y = w^Tx y=wTx

如果需要进一步降维到多维空间,我们可以找到多个最佳的投影向量,构成一个投影矩阵 W W W,然后通过 y = W T y = W^T y=WT 将数据投影到多维空间。

5. 分类

在降维后的空间中,我们可以使用简单的分类器(如最近邻分类器)进行分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

函数指针 和 指针函数

1、函数指针 函数指针是指向函数的指针变量。它可以用于存储函数的地址,允许在运行时动态选择要调用的函数。(是一个指针) //函数指针的形式 返回类型 (*指针变量名) 参数列表int add(int a,int b){return ab; }int subtract(int a,int b){…

mysql相关基础操作

安装 [rootlocalhost ~]# yum install mariadb-server mariadb -y # 自动监听3306端口 [rootlocalhost ~]# systemctl start mariadb.service [rootlocalhost ~]# systemctl enable mariadb.service [rootlocalhost ~]# netstat -lntup安全初始化 修改root用户的密码,新版本可…

php动态高亮web源代码

php动态高亮web源代码 注:配置好不允许高亮的文件名,安全第一 #php实现动态展示目录树结构源代码 适用于开放源代码,结合html缓存使用效果更佳,因循环较多不适合放首页 能力有限没实现行号 演示:show source|开放…

【Pytorch】NameError: name ‘Variable‘ is not defined

报错 NameError Traceback (most recent call last) Cell In[20], line 42 for epoch in range(num_epochs):3 if torch.cuda.is_available(): ----> 4 inputs Variable(x_train).cuda()5 target Variable(y_train).…

AWS云服务器选择哪个区域最好?

AWS每个区域都有特点,并无谁好谁坏的说法。云服务器最佳区域的选择取决于多个因素,包括业务需求、用户位置、数据合规性、延迟需求以及成本等。接下来是AWS的合作伙伴九河云提供的一些考虑因素和建议: (1)业务需求&am…

多家企业机密数据遭Lockbit3.0窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件87起,与上周相比勒索事件大幅下降。美国依旧为受勒索攻击最严重的国家,占比45%。 本周Cactus是影响最严重的勒索家族,Lockbit3.0和Bianlian恶意家族紧随其后,从整体上看Lockbit3.0依旧…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图,我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令,输出日志,主要就是拿到提交 commit 的 hash,上图红框即可 git log或者 vscode 里面直接右击,copy sha 2、执行下面命令回退 g…

05_Scala运算符

文章目录 **1.Scala运算符****2.scala中没有 --等语法****3.逻辑运算符和Java完全相同****4.scala认为万物皆对象** 1.Scala运算符 Scala底层 使用的是equals() 程序员比较两个量的时候,谁来没事比较内存地址? Java中引用数据类型比较地址&#xff0…

XiaodiSec day011 Learn Note 小迪安全学习笔记

XiaodiSec day011 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day11 工具: fofa quake kunyu suize水泽 ari灯塔 of 信息收集 四大引擎 fofaquakeshodanzoomeye fofa 和 quake比较常用 使用引擎搜索信息 得到中间件和操作系统 能够筛选端口 目的是…

黑马点评(十二) -- UV统计

一 . UV统计-HyperLogLog 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录1次。 PV:全称Page View&…

Games101-动画与模拟(基本概念、质点弹簧系统、运动学)

动画:把物体变成活的,让它动起来 更关注的是美学。早期的动画是画出来的,并不关心对不对,符不符合物理,只要看起来对 图形学里对动画理解为对于建模或几何的拓展。动画无非就是在不同的时间或不同的帧有不同的几何形状…

了解Cookie登录:原理、实践与安全指南

什么是Cookie登录? Cookie是什么 当你首次登录网站时,你会输入用户名和密码。在后台,网站的服务器验证这些凭据是否正确。一旦确认你的身份无误,服务器就会创建一个Cookie,并将其发送到你的浏览器。这了解Cookie登录…

2024年深圳杯东三省数学建模联赛A题论文首发+问题一代码分享

深圳杯A题论文代码分享资料链接:链接:https://pan.baidu.com/s/1L2NVgoefSW-yuqZjEB3wcw 提取码:sxjm 基于优化模型的多个火箭残骸的准确定位 摘要 在现代航天技术中,火箭是实现空间探索的关键工具。由于火箭发射过程中的高成…

Qt:学习笔记一

一、工程文件介绍 1.1 main.cpp #include "widget.h" #include <QApplication> // 包含一个应用程序类的头文件 //argc&#xff1a;命令行变量的数量&#xff1b;argv&#xff1a;命令行变量的数组 int main(int argc, char *argv[]) {//a应用程序对象&…

Shell和Linux权限

目录 shell Liunx权限 用户 sudo Linux的权限管理 文件访问者的分类 文件的属性 文件的权限 文件全权限值的表示方法 1.字符表示 2.八进制数值表示 用户符号 修改文件访问权限 修改文件拥有者 修改拥有者和所属组 修改所属组 文件目录的权限的含义 问题 粘滞…

程序员学CFA——数量分析方法(四)

数量分析方法&#xff08;四&#xff09; 常见概率分布基本概念离散型随机变量与连续型随机变量离散型随机变量连续型随机变量 分布函数概率密度函数&#xff08;PDF&#xff09;累积分布函数&#xff08;CDF&#xff09; 离散分布离散均匀分布伯努利分布二项分布定义股价二叉树…

Linux系统编程---线程同步

一、同步概念 同步即协同步调&#xff0c;按预定的先后次序运行。 协同步调&#xff0c;对公共区域数据【按序】访问&#xff0c;防止数据混乱&#xff0c;产生与时间有关的错误。 数据混乱的原因&#xff1a; 资源共享(独享资源则不会)调度随机(意味着数据访问会出现竞争)线…

tsconfig.json 中 references属性的用法

在 TypeScript 的项目配置文件 tsconfig.json 中&#xff0c;references 选项用于设置项目之间的依赖关系&#xff0c;特别是在使用项目引用&#xff08;Project References&#xff09;的上下文中。项目引用是 TypeScript 3.0 引入的一个功能&#xff0c;旨在提高大型项目的编…

算法模版自用(杂)

文章目录 算法库函数next_permutation(start,end) prev_permutation(start,end) (全排列函数)nth_element &#xff08;求第k小值&#xff09;next(it,num),prev(it,num)min_element(begin(),end()),max_element(begiin(),end()) (取最小值最大值) _int128的输入输出STLlist 数…

内容互动性的提升策略:Kompas.ai的智能工具

在数字营销的新时代&#xff0c;内容的互动性已成为提升用户参与度和品牌忠诚度的关键因素。互动性内容不仅能够吸引用户的注意力&#xff0c;还能够促进用户与品牌的沟通和交流&#xff0c;从而加深用户对品牌的理解和认同。本文将分析互动性内容在提升用户参与度中的作用及其…