【深度学习】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,一经查实,立即删除!

相关文章

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 表示没有任何相似性。负值 表示图像之间的差异超出了正常范围(通常是因为两张图像的内容差异非…

积木报表-自定义报表

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

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

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

C# 委托函数 delegate

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

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

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

微服务安全——SpringSecurity6详解

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

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

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

MySQL 数据表

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

FlutterFlame游戏实践#16 | 生命游戏 - 编辑与交互

theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究! Flutter\&Flame 游戏开发系列前言: 该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲…

Jenkins卡在等待界面解决方法

一、问题 部署jenkins服务器出现Please wait while Jenkins is getting ready to work。 二、原因分析 jenkins里面文件指向国外的官网,因为防火墙的原因连不上。 三、解决方法 将配置文件里面的url换成国内镜像: (1)修改配…

LLM模型与实践之基于 MindSpore 实现 BERT 对话情绪识别

安装环境 # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip install mindnlp0.3.1 !pip install mindnlp 模型简介 BERT是一种由Google于2018年发布的新型语言模型,它是基于Transforme…

css黑色二级下拉导航菜单

黑色二级下拉导航菜单https://www.bootstrapmb.com/item/14816 body { font-family: Arial, sans-serif; margin: 0; padding: 0; }nav { background-color: #000; /* 导航背景色为黑色 */ }.menu { list-style-type: none; margin: 0; padding: 0; overflow: hidden; }.menu l…

JavaScript(12)——内置对象

JavaScript内部提供的对象,包含各种属性和方法给开发者调用。 Math Math对象是JavaScript提供的一个“数学”对象 包含的方法有: random:生成0-1之间的随机数 ceil:向上取整 floor:向下取整 max:找最大数 min&#…

展馆导览系统架构解析,从需求分析到上线运维

在物质生活日益丰富的当下,人们对精神世界的追求愈发强烈,博物馆、展馆、纪念馆等场所成为人们丰富知识、滋养心灵的热门选择。与此同时,人们对展馆的导航体验也提出了更高要求,展馆导览系统作为一种基于室内外地图相结合的位置引…

Unity显示泰语且兼容泰语音标

前言:使用Unity开发的游戏需要支持泰语本地化,以及解决显示泰语时Unity的bug 目录 1、Text组件显示泰语2、TextMeshPro组件显示泰语 现在很多游戏都需要显示泰语,下面将介绍Unity如何显示泰语,(仅介绍Unity字体方面的设…

npm 安装报错(已解决)+ 运行 “wue-cli-service”不是内部或外部命令,也不是可运行的程序(已解决)

首先先说一下我这个项目是3年前的一个项目了,中间也是经过了多个人的修改惨咋了布置多少个人的思想,这这道我手里直接npm都安装不上,在网上也查询了多种方法,终于是找到问题所在了 问题1: 先是npm i 报错在下面图片&…