线性和二次判别分析

线性判别分析

线性判别分析(Linear Discriminant Analysis,LDA)亦称 Fisher 判别分析。其基本思想是:将训练样本投影到低维超平面上,使得同类的样例尽可能近,不同类的样例尽可能远。在对新样本进行分类时,将其投影到同样的超平面上,再根据投影点的位置来确定新样本的类别。

给定的数据集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } D=\{(\mathbf x_1,y_1),(\mathbf x_2,y_2),\cdots,(\mathbf x_N,y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)}
包含 N N N 个样本, p p p 个特征。其中,第 i i i 个样本的特征向量为 x i = ( x i 1 , x i 2 , ⋯ , x i p ) T \mathbf x_i=(x_{i1},x_{i2},\cdots,x_{ip})^T xi=(xi1,xi2,,xip)T 。目标变量 y i ∈ { c 1 , c 2 , ⋯ , c K } y_i\in \{c_1,c_2,\cdots,c_K\} yi{c1,c2,,cK}

二分类

我们先定义 N k N_k Nk为第 k k k 类样本的个数
∑ k = 1 K N k = N \sum_{k=1}^KN_k=N k=1KNk=N
X k \mathcal X_k Xk为第 k k k 类样本的特征集合
X k = { x ∣ y = c k , ( x , y ) ∈ D } \mathcal X_k=\{\mathbf x | y=c_k,\ (\mathbf x,y)\in D \} Xk={xy=ck, (x,y)D}

μ k \mu_k μk为第 k k k 类样本均值向量
μ k = 1 N k ∑ x ∈ X k x \mu_k=\frac{1}{N_k}\sum_{\mathbf x\in \mathcal X_k}\mathbf x μk=Nk1xXkx

Σ k \Sigma_k Σk为第 k k k 类样本协方差矩阵
Σ k = 1 N k ∑ x ∈ X k ( x − μ k ) ( x − μ k ) T \Sigma_k=\frac{1}{N_k}\sum_{\mathbf x\in \mathcal X_k}(\mathbf x-\mu_k)(\mathbf x-\mu_k)^T Σk=Nk1xXk(xμk)(xμk)T

首先从比较简单的二分类为例 y ∈ { 0 , 1 } y\in \{0,1\} y{0,1},若将数据投影到直线 w \mathbf w w 上,则对任意一点 x \mathbf x x,它在直线 w \mathbf w w 的投影为 w T x \mathbf w^T\mathbf x wTx 1

  • LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是要最大化 ∥ w T μ 0 − w T μ 1 ∥ 2 2 \|\mathbf w^T\mu_0 -\mathbf w^T\mu_1\|_2^2 wTμ0wTμ122
  • 同时希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的方差最小化 w T Σ 0 w + w T Σ 1 w \mathbf w^T\Sigma_0\mathbf w+\mathbf w^T\Sigma_1\mathbf w wTΣ0w+wTΣ1w

综上所述,我们的优化目标为:
max ⁡ w ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w \max_{\mathbf w}\frac{\|\mathbf w^T\mu_0 -\mathbf w^T\mu_1\|_2^2}{\mathbf w^T\Sigma_0\mathbf w+\mathbf w^T\Sigma_1\mathbf w} wmaxwTΣ0w+wTΣ1wwTμ0wTμ122

目标函数
J ( w ) = ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w T w T ( Σ 0 + Σ 1 ) w \begin{aligned} J(\mathbf w)&=\frac{\|\mathbf w^T\mu_0 -\mathbf w^T\mu_1\|_2^2}{\mathbf w^T\Sigma_0\mathbf w+\mathbf w^T\Sigma_1\mathbf w} \\ &=\frac{\mathbf w^T(\mu_0 -\mu_1)(\mu_0 -\mu_1)^T\mathbf w^T}{\mathbf w^T(\Sigma_0+\Sigma_1)\mathbf w } \end{aligned} J(w)=wTΣ0w+wTΣ1wwTμ0wTμ122=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)TwT

其中, S w S_w Sw为类内散度矩阵(within-class scatter matrix)
S w = Σ 0 + Σ 1 S_w=\Sigma_0+\Sigma_1 Sw=Σ0+Σ1

S b S_b Sb为类间散度矩阵(between-class scaltter matrix)

S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0μ1)(μ0μ1)T

目标函数重写为
J ( w ) = w T S b w w T S w w J(\mathbf w)=\frac{\mathbf w^TS_b\mathbf w}{\mathbf w^TS_w\mathbf w} J(w)=wTSwwwTSbw
上式就是广义瑞利商。要取得最大值,只需对目标函数求导并等于0,可得到等式
S b w ( w T S w w ) = S w w ( w T S b w ) S_b\mathbf w(\mathbf w^TS_w\mathbf w)=S_w\mathbf w(\mathbf w^TS_b\mathbf w) Sbw(wTSww)=Sww(wTSbw)

重新代入目标函数可知
S w − 1 S b w = λ w S_w^{-1}S_b\mathbf w=\lambda\mathbf w Sw1Sbw=λw
这是一个特征值分解问题,我们目标函数的最大化就对应了矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb 的最大特征值,而投影方向就是这个特征值对应的特征向量。

多分类

可以将 LDA 推广到多分类任务中,目标变量 y i ∈ { c 1 , c 2 , ⋯ , c K } y_i\in \{c_1,c_2,\cdots,c_K\} yi{c1,c2,,cK}

定义类内散度矩阵(within-class scatter matrix)
S w = ∑ k = 1 K Σ k S_w=\sum_{k=1}^K\Sigma_k Sw=k=1KΣk

类间散度矩阵(between-class scaltter matrix)

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

其中 μ \mu μ 为所有样本均值向量
μ = 1 N ∑ i = 1 N x \mu=\frac{1}{N}\sum_{i=1}^N\mathbf x μ=N1i=1Nx
常见的最大化目标函数为
J ( W ) = tr ( W T S b W ) tr ( W T S w W ) J(W)=\frac{\text{tr}(W^TS_bW)}{\text{tr}(W^TS_wW)} J(W)=tr(WTSwW)tr(WTSbW)
对目标函数求导并等于0,可得到等式
tr ( W T S w W ) S b W = tr ( W T S b W ) S w W \text{tr}(W^TS_wW)S_bW=\text{tr}(W^TS_bW)S_wW tr(WTSwW)SbW=tr(WTSbW)SwW
重新代入目标函数可知
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 K 一 1 K 一 1 K1 个最大广义特征值所对应的特征向量组成的矩阵。

由于 W W W是一个利用了样本的类别得到的投影矩阵,则多分类 LDA 将样本投影到 K − 1 K-1 K1 维空间, K − 1 K-1 K1 通常远小子数据原有的特征数。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此 LDA也常被视为一种经典的监督降维技术。

二次判别分析

下面来介绍以概率的角度来实现线性判别分析的方法。我们的目的就是求在输入为 x \mathbf x x 的情况下分类为 c k c_k ck 的概率最大的分类:
y ^ = arg ⁡ max ⁡ c k P ( y = c k ∣ x ) \hat y=\arg\max_{c_k} \mathbb P(y=c_k|\mathbf x) y^=argckmaxP(y=ckx)
利用贝叶斯定理,类别 c k c_k ck 的条件概率为
P ( y = c k ∣ x ) = P ( x ∣ y = c k ) P ( y = c k ) P ( x ) \mathbb P(y=c_k|\mathbf x)=\frac{\mathbb P(\mathbf x|y=c_k)\mathbb P(y=c_k)}{\mathbb P(\mathbf x)} P(y=ckx)=P(x)P(xy=ck)P(y=ck)

假设我们的每个类别服从高斯分布
P ( x ∣ y = c k ) = 1 ( 2 π ) p det ⁡ Σ k exp ⁡ ( − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) ) \mathbb P(\mathbf x|y=c_k)=\frac{1}{\sqrt{(2\pi)^p\det\Sigma_k}}\exp\left(-\frac{1}{2}(\mathbf x-\mathbf\mu_k)^T\Sigma^{-1}_k(\mathbf x-\mathbf\mu_k)\right) P(xy=ck)=(2π)pdetΣk 1exp(21(xμk)TΣk1(xμk))

其中,协方差矩阵 Σ k \Sigma_k Σk 为对称阵。

决策边界:为方便计算,我们取对数条件概率进行比较。对任意两个类别 c s c_s cs c t c_t ct,取

δ ( x ) = ln ⁡ P ( y = c s ∣ x ) − ln ⁡ P ( y = c t ∣ x ) \delta(\mathbf x)=\ln\mathbb P(y=c_s|\mathbf x)-\ln\mathbb P(y=c_t|\mathbf x) δ(x)=lnP(y=csx)lnP(y=ctx)

输出比较结果

y ^ s t = { c s , if  δ ≤ 0 c t , otherwise \hat y_{st}=\begin{cases} c_s, &\text{if }\delta\leq0 \\ c_t, &\text{otherwise} \end{cases} y^st={cs,ct,if δ0otherwise

决策边界为 δ ( x ) = 0 \delta(\mathbf x)=0 δ(x)=0,即
ln ⁡ P ( y = c s ∣ x ) = ln ⁡ P ( y = c t ∣ x ) \ln\mathbb P(y=c_s|\mathbf x)=\ln\mathbb P(y=c_t|\mathbf x) lnP(y=csx)=lnP(y=ctx)

我们先来化简下对数概率
ln ⁡ P ( y = c k ∣ x ) = ln ⁡ P ( x ∣ y = c k ) + ln ⁡ P ( y = c k ) − ln ⁡ P ( x ) = − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) − 1 2 ln ⁡ ( det ⁡ Σ k − 1 ) + ln ⁡ P ( y = c k ) + const = − 1 2 x T Σ k − 1 x + μ k T Σ k − 1 x − 1 2 μ k T Σ k − 1 μ k + ln ⁡ P ( y = c k ) − 1 2 ln ⁡ ( det ⁡ Σ k − 1 ) + const = x T A k x + w k T x + b k + const \begin{aligned} \ln\mathbb P(y=c_k|\mathbf x)&=\ln\mathbb P(\mathbf x|y=c_k)+\ln\mathbb P(y=c_k)-\ln\mathbb P(\mathbf x) \\ &=-\frac{1}{2}(\mathbf x-\mathbf \mu_k)^T\Sigma^{-1}_k(\mathbf x-\mathbf \mu_k)-\frac{1}{2}\ln(\det\Sigma^{-1}_k) +\ln\mathbb P(y=c_k)+\text{const}\\ &=-\frac{1}{2}\mathbf x^T\Sigma^{-1}_k\mathbf x+\mathbf \mu_k^T\Sigma^{-1}_k\mathbf x-\frac{1}{2}\mu_k^T\Sigma^{-1}_k\mu_k+\ln\mathbb P(y=c_k)-\frac{1}{2}\ln(\det\Sigma^{-1}_k) +\text{const}\\ &=\mathbf x^TA_k\mathbf x+\mathbf w_k^T\mathbf x+b_k+\text{const} \end{aligned} lnP(y=ckx)=lnP(xy=ck)+lnP(y=ck)lnP(x)=21(xμk)TΣk1(xμk)21ln(detΣk1)+lnP(y=ck)+const=21xTΣk1x+μkTΣk1x21μkTΣk1μk+lnP(y=ck)21ln(detΣk1)+const=xTAkx+wkTx+bk+const

其中
A k = − 1 2 Σ k − 1 , w k T = μ k T Σ k − 1 , b k = − 1 2 μ k T Σ k − 1 μ k + ln ⁡ P ( y = c k ) − 1 2 ln ⁡ ( det ⁡ Σ k − 1 ) A_k=-\frac{1}{2}\Sigma^{-1}_k,\quad\mathbf w_k^T =\mu_k^T\Sigma^{-1}_k,\quad b_k =-\frac{1}{2}\mu_k^T\Sigma^{-1}_k\mu_k+\ln\mathbb P(y=c_k)-\frac{1}{2}\ln(\det\Sigma^{-1}_k) Ak=21Σk1,wkT=μkTΣk1,bk=21μkTΣk1μk+lnP(y=ck)21ln(detΣk1)

可以看到,上式是一个关于 x \mathbf x x 的二次函数

  • 当类别的协方差矩阵不同时,生成的决策边界也是二次型的,称为二次判别分析(Quadratic Discriminant Analysis, QDA)
  • 当类别的协方差矩阵相同时,决策边界将会消除二次项,变成关于 x \mathbf x x 的线性函数,于是得到了线性判别分析。

实际应用中我们不知道高斯分布的参数,我们需要用我们的训练数据去估计它们。LDA使用估计协方差矩阵的加权平均值作为公共协方差矩阵,其中权重是类别中的样本量:
Σ ^ = ∑ k = 1 K N k Σ k N \hat\Sigma=\frac{\sum_{k=1}^KN_k\Sigma_k}{N} Σ^=Nk=1KNkΣk

如果 LDA中的协方差矩阵是单位阵 Σ = I \Sigma=I Σ=I并且先验概率相等,则LDA只需对比与类中心的欧几里得距离
ln ⁡ P ( y = c k ∣ x ) ∝ − 1 2 ( x − μ k ) T ( x − μ k ) = − 1 2 ∥ x − μ k ∥ 2 2 \ln\mathbb P(y=c_k|\mathbf x)\propto -\frac{1}{2}(\mathbf x-\mathbf \mu_k)^T(\mathbf x-\mathbf \mu_k)=-\frac{1}{2}\|\mathbf x-\mathbf \mu_k\|_2^2 lnP(y=ckx)21(xμk)T(xμk)=21xμk22

如果 LDA中的协方差矩阵非单位阵并且先验概率相等,则为马氏距离
ln ⁡ P ( y = c k ∣ x ) ∝ − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) \ln\mathbb P(y=c_k|\mathbf x)\propto -\frac{1}{2}(\mathbf x-\mathbf \mu_k)^T\Sigma^{-1}_k(\mathbf x-\mathbf \mu_k) lnP(y=ckx)21(xμk)TΣk1(xμk)


  1. 超平面几何知识 ↩︎

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

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

相关文章

达梦数据库的系统视图v$lock

达梦数据库的系统视图v$lock 在达梦数据库(DM)中,V$LOCK 系统视图用于查看当前数据库中的锁定状态。该视图提供了关于所有锁定详细信息,例如锁的内存地址、所属事务 ID,锁类型和锁模式等。这对于数据库管理员进行锁定…

国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter

国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter 今年5月份GreenPlum官方将GitHub仓库代码全部删除,各个分支的issues和bugs讨论等信息全部清除,仅将master分支代码进行归档。对于国内应用GPDB的用户来说,这是一个挑战性事件&#x…

开发网页版加密访问文档

开发一个支持加密访问文档的网页版应用程序涉及多个步骤,包括用户认证、文档加密和解密、文件上传和下载,以及确保整个过程中的数据安全性。下面是一个详细的步骤指南: 步骤1:设置项目环境 首先,设置一个新的项目环境…

函数调用,递归技巧之取反

递归指的是在解决问题的过程中,将问题分解为同类的子问题而解决问题的方法。在程序中通常体现为函数调用自身的方式。 比如是双方回合制对战的游戏进行结算,可以使用一个变量bool类型来完成一回合双方互相战斗并且攻击方同时会作为受攻击方的结算。在递归…

Vue跨标签页数据通信

跨标签页数据通信 在同一浏览器项目地址处于不同的标签页中,建立两个页面间的数据通信,即:B页面新增/修改数据;A页面表格自动更新数据 跨标签页通信常见方案: BroadCast Channel (广播频道) Service Worker LocalStorage Window.onstorage监听 Shared…

English note 1

It was right that I decided not to buy new course before. A few days ago, the after-sales staff of this software announced that all the courses of this software would be taken down. 之前决定不继续买新的课程是对的。几天前,这个软件的售后人员就宣布…

Zookeeper 三、Zookeeper基本使用

1.Zookeeper系统模型 1)Zookeeper数据模型之ZNode 在Zookeeper中,数据信息被保存在一个个数据节点上,这些节点被称为ZNode。ZNode是Zookeeper中最小数据单位,在ZNode下面又可以再挂ZNode,这样一层层下去就形成了一个…

Reactor模型:网络线程模型演进

一,阻塞IO线程池模型(BIO) 这是传统的网络编程方案所采用的线程模型。 即有一个主循环,socket.accept阻塞等待,当建立连接后,创建新的线程/从线程池中取一个,把该socket连接交由新线程全权处理。…

【机器参数】安装适合的nvidia驱动

背景:我现在nvidia-smi没有显示,我的目标是让nvidia-smi正常显示 参考: nchttps://www.cnblogs.com/carle-09/p/11504544.html 可能是驱动版本不对,所以我重新去nvidia官网下载了驱动。 Official Drivers | NVIDIA 得到了NVID…

discuz迪恩cul!教育课程培训网站模板

Discuz x3.2模板 迪恩cul!教育课程培训 GBK,程序包中内附详细的安装教程,下载后按照教程安装即可 discuz迪恩cul!教育课程培训网站模板

如何将本地的Django项目部署到阿里云服务器上?

场景:在本地的pycharm上已经写好了一个Django架构的网站,现在要把它放到公网上 一、阿里云服务器 选择云服务器ECS,新用户可以免费使用三个月 购买时选择预装宝塔面板 买好后,进入云服务器控制台 重置实例密码 远程连接至服务…

python-17-零基础自学python-

学习内容:《python编程:从入门到实践》第二版 知识点: 类、子类、继承、调用函数 练习内容: 练习9-6:冰激凌小店 冰激凌小店是一种特殊的餐馆。编写一个名为IceCreamStand的类,让它继承为完成练习9-1或…

宝塔计划任务调用node程序时,log4js日志保存本地位置会发生变化

接我上一篇文章的情况 超简单的nodejs使用log4js保存日志到本地(可直接复制使用)-CSDN博客 原本应当保存在node项目目录下的日志文件,如果使用宝塔的计划任务来定时执行的话,日志保存路径会发生变化到如下图的位置: 如…

六款顶级原型设计工具推荐,满足你所有需求!

即时设计作为一款专业原型工具,无论是从功能还是插件库配备情况来看,都是毫无疑问可以进行原型图设计的,而且,即时设计内设海量资源库,可以支持大家通过关键词进行搜索相关资源,并且在线编辑使用&#xff0…

瑜伽馆管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,教练管理,用户管理,瑜伽管理,套餐管理,体测报告管理,基础数据管理 前台账户功能包括:系统首页&#xff0c…

51单片机STC89C52RC——8.1 8*8 LED点阵模块(点亮一个LED)

目录 目的/效果 一,STC单片机模块 二,8*8 LED点阵模块 2.1 电路图 2.1.1 8*8 点阵模块电路图 2.1.2 74HC595(串转并)模块 电路图 2.1.3 芯片引脚 2.2 引脚电平分析 2.3 74HC595 串转并模块 2.3.1 装弹(移位…

2024最新免费版轻量级Navicat Premium Lite 下载和安装教程

2024最新免费版轻量级Navicat Premium Lite 下载和安装教程 关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评…

富格林:重视可信经验防止被骗

富格林悉知,现货黄金是一种同时具备流动性强、交易成本低、透明度高等特点的投资品种,因此也吸引了众多投资者的关注和参与。但不少新手投资者,对可信经验不那么重视甚至忽视,往往很容易落入圈套中而遭遇被骗。事实上,…

【C++】————类和对象(下)

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年6月25日 一、日期类 首先我们先来看一下通过类实现对日期的一系列处理,同时给大家说一下当中存在的一些细节问题: 1.1 GetMonthDay函数 这个函数的作用就是…

客户有哪些封装案例,一句克服使用让PCBA工厂泪流满面

作者 | 高速先生成员--王辉东 天空下着雨,萧萧从窗前经过,看窗里。 翠萍那娇艳欲滴的脸上挂着两串泪滴。 萧萧一进去,问啥情况。 翠萍往电脑屏幕一指。 当萧萧看向屏幕一瞬间。 那些曾经以为早已遗忘的伤痛,会在某些时刻如潮…