【深度学习】LDA线性判别分析


date:2024/07/23
author:sion
tag:Deeping Learn


LDA(线性判别分析)

文章目录

  • LDA(线性判别分析)
    • 1.LDA是什么
    • LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
  • LDA(线性判别分析)
    • 1.LDA是什么
    • 2.问题背景
    • 3.投影
    • 4.离散度
    • 5.目标函数
    • 6.推广到多分类

1.LDA是什么

LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。

date:2024/07/23
author:sion
tag:Deeping Learn


LDA(线性判别分析)

文章目录

  • LDA(线性判别分析)
    • 1.LDA是什么
    • LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
  • LDA(线性判别分析)
    • 1.LDA是什么
    • 2.问题背景
    • 3.投影
    • 4.离散度
    • 5.目标函数
    • 6.推广到多分类

1.LDA是什么

LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。

在这里插入图片描述

因此我们的所有任务围绕确定直线展开。

2.问题背景

首先描述问题背景,这里直接引用西瓜书原话:

在这里插入图片描述

这里描述的是一个二分类问题。

那么如何理解投影?

3.投影

若已知向量 x ⃗ \vec{x} x 和向量 w ⃗ \vec{w} w ,求 x ⃗ \vec{x} x 在向量 w ⃗ \vec{w} w 上的投影,可以用内积表示:
x ⃗ ⋅ w ⃗ = ∣ x ⃗ ∣ ∣ w ⃗ ∣ cos ⁡ θ \vec{x} \cdot \vec{w} = |\vec{x}||\vec{w}|\cos {\theta} x w =x ∣∣w cosθ
当w为单位向量,该投影为:
∣ x ⃗ ∣ cos ⁡ θ |\vec{x}|\cos {\theta} x cosθ
因此在下图上, y y y表示target(标签),假设x与y有线性关系由参数集合 w w w确定( y = w x + b , w T = w , b ∗ y = wx + b,w^T = {w,b}* y=wx+bwT=w,b

则任意x在直线上的投影可以认为是x根据线性关系找到的y值,那么这个投影过程表示为:
w T X w^TX wTX
其中 x i x_i xi在向量 X X X方向上( X = X 1 ; X 2 . . ; X i X={X_1;X_2..;X_i} X=X1;X2..;Xi)

在这里插入图片描述

4.离散度

前面提到需要使得“异样的样例相距远,同类的样例分布靠近”,因此我们需要一个衡量标准,异样的距离使用类间散度衡量,同样使用类内散度衡量

$ \ {\mu}_i 用来表示各类的均值,这里只有 用来表示各类的均值,这里只有 用来表示各类的均值,这里只有\ {\mu_0},{\mu_1}$,分别表示正类和负类的均值。异类之间的距离使用均值在直线的投影的距离表示:
∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w ||w^T\mu_0-w^T\mu_1||_2^2 = w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw ∣∣wTμ0wTμ122=wT(μ0μ1)(μ0μ1)Tw
这里下标2表示2类向量的模,即欧几里得距离

同类之间使用协方差比较距离:
w T ( Σ 0 + Σ 1 ) w w^T(\Sigma_0 + \Sigma_1) w wT(Σ0+Σ1)w
Σ \ {\Sigma}  Σ为协方差矩阵

为了简化表示,我们引入两个新概念,类间散度矩阵类内散度矩阵

类间散度矩阵用 S b \ {S_b}  Sb表示:
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0μ1)(μ0μ1)T
类内散度矩阵用 S w S_w Sw表示:
S w = Σ 0 + Σ 1 S_w= \Sigma_0+\Sigma_1 Sw=Σ0+Σ1

5.目标函数

为了同时考虑”使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可

能小“,设置目标函数:
J = w T S b w w T S w w J=\frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw
求这个目标函数的最大值可以转换为求 S b \ S_b  Sb S w \ S_w  Sw的**”广义瑞利商“**,这里使用拉格朗日乘子法求解,具体过程不在讨论范围。

m i n ω T S b w s . t . w T S w w = 1. min\quad ω^TS_bw\\ s.t.\quad w^TS_ww = 1 . minωTSbws.t.wTSww=1.

在这里插入图片描述

在这里插入图片描述

最终求得 w = S − 1 ( μ 0 − μ 1 ) \ w = S^{-1}(\mu_0-\mu_1)  w=S1(μ0μ1)

6.推广到多分类

在多分类问题中,LDA一般作为降维方法进行属性约简。设target数量为N, μ \mu μ为所有数据的均值, μ i \ {\mu_i}  μi表示示属性i的均值, m i m_i mi表示第i属性的数据量。

首先定义”全局散度矩阵“:
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T S_t=S_b+S_w=\sum_{i=1}^m({x_i}-\mu)({x_i}-\mu)^T St=Sb+Sw=i=1m(xiμ)(xiμ)T
S w \ {S_w}  Sw 可以表示为:
S w i = ∑ x ∈ X i Σ i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S w = ∑ i = 1 N S w i {S_w}_i = \sum_{x\in X_i} \Sigma_i = \sum_{x\in X_i} \ (x-\mu_i)(x-\mu_i)^T\\ S_w = \sum_{i=1}^N S_{wi} Swi=xXiΣi=xXi (xμi)(xμi)TSw=i=1NSwi

S b \ {S_b}  Sb可以表示为:
S b = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T S_b=\sum_{i=1}^Nm_i(\mu_i-\mu)(\mu_i-\mu)^T Sb=i=1Nmi(μiμ)(μiμ)T
推导参考:

在这里插入图片描述

多分类 LDA 可以有多种实现方法,使用 S w S_w Sw, S t S_t St 两者中的任何两个即可。常见的一种实现是采用优化目标

m a x W t r ( W T S b W ) t r ( W T S w W ) max_W{\frac{tr(W^TS_bW)}{tr(W^TS_wW)}} maxWtr(WTSwW)tr(WTSbW)
t r ( ⋅ ) tr(\cdot) tr()表示矩阵的迹(trace)即矩阵对角线上元素的和,我们在LDA中要做的是找到一个投影矩阵 W W W,使得这个比值最大化。

该式可以转换为一个最大广义特征值的问题的求解:
S b W = λ S w W S_bW=\lambda S_wW SbW=λSwW
W W W的闭式解则是 S w − 1 S b S_w ^{-1}S_b Sw1Sb_的N-1个最大广义特征值所对应的特征向量组成的矩阵,即我们要求的投影矩阵

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

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

相关文章

为Jetson Xavier NX安装合适版本的pytorch(解决torch not compiled with cuda enabled)

Jetson Xavier NX 上我的环境是torch2.3.1 cuda 11.4 cuDNN8.4.1 sudo jtop和 nvcc -V都正常显示 有cuda11.4 环境变量路径也配置了 但是我print(“CUDA available:”, torch.cuda.is_available())输出为False 运行torch.cuda.current_device() 报错是torch not compiled wi…

【日常介绍】—pycharm2024.1变化

目录 一、性能提升 二、代码编辑与导航 三、重构与版本控制 四、调试与测试 五、集成工具与云服务 六、用户界面与体验 七、其他新特性 一、性能提升 项目加载时间优化:改进了项目索引机制,使得初次加载时间更快。代码分析引擎优化:提…

Linus: vim编辑器的使用,快捷键及配置等周边知识详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 vim的安装创建新用户 adduser 用户名Linus是个多用户的操作系统是否有创建用户的权限查看当前用户身份:whoami** 怎么创建设置密码passwdsudo提权(sudo输入的是用户…

Golang | Leetcode Golang题解之第275题H指数II

题目: 题解: func hIndex(citations []int) int {n : len(citations)return n - sort.Search(n, func(x int) bool { return citations[x] > n-x }) }

数驭未来,景联文科技构建高质大模型数据库

国内应用层面的需求推动AI产业的加速发展。根据IDC数据预测,预计2026年中国人工智能软件及应用市场规模会达到211亿美元。 数据、算法、算力是AI发展的驱动力,其中数据是AI发展的基石,中国的数据规模增长速度预期将领跑全球。 2024年《政府工…

go语言day15 goroutine

Golang-100-Days/Day16-20(Go语言基础进阶)/day17_Go语言并发Goroutine.md at master rubyhan1314/Golang-100-Days GitHub 第2讲-调度器的由来和分析_哔哩哔哩_bilibili 一个进程最多可以创建多少个线程?-CSDN博客 引入协程 go语言中内置了协程goroutine&#…

Python实现图片相似度比较之SSIM

Python实现图片相似度比较之SSIM 解读 SSIM 数值 结构相似性指数 (SSIM) 是用来衡量两张图像相似度的指标,范围从 -1 到 1: 1 表示完全相同。0 表示没有任何相似性。负值 表示图像之间的差异超出了正常范围(通常是因为两张图像的内容差异非…

【qiankun微前端】已有工程改造微前端

最初接触微前端有种高大上的感觉,细细研究了一下,其实也不难,本文就不介绍iframe,single-spa之类的东西了,直奔主题。 当前系统有横向一级顶部路由和竖向二级侧面路由,点击一级路由会触发二级路由的切换&a…

积木报表-自定义报表

文章目录 一、springboot初始项目集成积木报表二、springboot正式项目集成积木报表注意点注意点1:依赖下载失败原因:Maven私服设置注意点2:dependency在【springboot初始项目集成积木报表】情况下不要放在根目录的pom里,放子模块的…

前端实现自定义表单组件开发

1、组件介绍 自定义表单,表单上的字段、输入控件、验证规则、数据结构等可动态设置。 2、接口数据介绍 [{"condition_type":13,"condition_name":"发送者匹配模式","setting":{"base_filed":{"fields":[{&quo…

代码随想录训练营第四十七天 647回文子串

第一题: 原题链接:647. 回文子串 - 力扣(LeetCode) 思路: dp[i][j]的含义:表示从i到j之间的子串是否是回文子串。 那么考虑三种情况: 在s[i] s[j]的前提下: 如果i j说明当前是一个元素&a…

【Python系列】详解 open 函数:文件操作的基石

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

QEMU入门

文章目录 下载qemu源码安装依赖软件kernel编译qemu编译安装python依赖软件 编译 下载qemu源码 git clone https://github.com/qemu/qemu.git 安装依赖软件 kernel编译 apt install pkg-config apt install gcc apt install libglib2.0-dev apt install libncurses-dev apt …

C# 委托函数 delegate

在C#中,委托(Delegate)是一种特殊的类型,它可以持有对方法的引用。 委托是实现事件的基础。事件本质上是多播委托,允许多个方法被触发 委托允许你将方法作为参数传递给其他方法,或者将方法作为返回值从方法…

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 目录 Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 一、简单介绍 二、共享纹理 1、共享纹理的原理 2、共享纹理涉及到的关键知识点 3、什么可以实现共享 不能实现共享…

fomo3d是什么

目录 fomo3d是什么 一、Fomo3D概述 二、Fomo3D的玩法 三、Fomo3D的资金流向 四、举例说明 fomo3d是什么 Fomo3D是一款在以太坊网络上运行的去中心化资金盘游戏,也是一款基于智能合约的区块链游戏。以下是对Fomo3D的详细说明,包括其特点和举例说明: 一、Fomo3D概述 定义…

运维 | 清理 Linux 磁盘空间方法汇总

清理 Linux 磁盘空间方法汇总 前言 系统磁盘不够用或占满了,导致部分应用或程序无法正常使用。 本章节将记录一些常用或常见的方法清理系统磁盘(持续更新中)。 常见操作 查看磁盘使用情况 cd / df -Th查找大文件和目录(根目…

微服务安全——SpringSecurity6详解

文章目录 说明SpringSecurity认证快速开始设置用户名密码基于application.yml方式基于Java Bean配置方式 设置加密方式自定义用户加载方式自定义登录页面前后端分离认证认证流程 SpringSecurity授权web授权:基于url的访问控制自定义授权失败异常处理方法授权:基于注解的访问控制…

沐风老师3DMAX一键烘焙插件使用方法

3DMAX一键烘焙插件使用教程 3DMAX一键烘焙插件:从3dMax2021增加了一个新功能是全新的BakingToTexture(烘焙到纹理)工具。s3DMAX一键烘焙插件是新BakingToToTorTexture的简化前端。它允许用户一键烘焙某些实用程序映射(贴图&#x…

MySQL 数据表

InnoDB存储引擎文件 InnoDB存储引擎相关的文件包括重做日志文件、表空间文件。 表空间文件 InnoDB存储引擎在设计上模仿了Oracle,将存储的数据按表空间进行存放。默认配置下,会有一个初始化大小为10MB、名为ibdata1的文件,该文件就是默认的…