【LDF】线性判别函数(一)

news2024/9/23 19:28:57

基于判别函数的判别准则

  • 对于 c c c类分类问题:设 g i ( x ) , i = 1 , 2 , … , c g_i(\mathbf{x}), i=1,2, \ldots, c gi(x),i=1,2,,c, 表示每个类别对应的判别函数,决策规则为:如果 g i ( x ) > g j ( x ) , ∀ j ≠ i g_i(\mathbf{x})>g_j(\mathbf{x}), \forall j \neq i gi(x)>gj(x),j=i, 则 x \mathbf{x} x 被分为第 ω i \omega_i ωi 类,也就是说,样本被分到判别函数值最大的那一类
  • 对于两类分类问题,可以只用一个判别函数,定义为: g ( x ) = g 1 ( x ) − g 2 ( x ) g(\mathbf{x})=g_1(\mathbf{x})-g_2(\mathbf{x}) g(x)=g1(x)g2(x),判别准则为: g ( x ) > 0 g(\mathbf{x})>0 g(x)>0, 分为第一类; 否则为第二类

【例子】假如每一类的分类器是后验概率 g i ( x ) = p ( ω i ∣ x ) g_i(\mathbf{x})=p\left(\omega_i \mid \mathbf{x}\right) gi(x)=p(ωix),那么两类分类器为
g ( x ) = p ( ω 1 ∣ x ) − p ( ω 2 ∣ x ) 或 g ( x ) = log ⁡ p ( x ∣ ω 1 ) p ( x ∣ ω 2 ) + log ⁡ p ( ω 1 ) p ( ω 2 ) g(\mathbf{x})=p\left(\omega_1 \mid \mathbf{x}\right)-p\left(\omega_2 \mid \mathbf{x}\right)或g(\mathbf{x})=\log \frac{p\left(\mathbf{x} \mid \omega_1\right)}{p\left(\mathbf{x} \mid \omega_2\right)}+\log \frac{p\left(\omega_1\right)}{p\left(\omega_2\right)} g(x)=p(ω1x)p(ω2x)g(x)=logp(xω2)p(xω1)+logp(ω2)p(ω1)
在这里插入图片描述

线性判别函数与决策面

  • 线性判别函数的基本形式:
    g ( x ) = w T x + w 0 g(\mathbf{x})=\mathbf{w}^T \mathbf{x}+\mathcal{w}_0 g(x)=wTx+w0
    其中, w \mathbf{w} w是权重向量, w 0 w_0 w0是偏移量
  • 两类情形的决策规则
    { x ∈ ω 1 ,  if  g ( x ) > 0 x ∈ ω 2 ,  if  g ( x ) < 0 uncertain,   if  g ( x ) = 0 \begin{cases}\mathbf{x} \in \omega_1, & \text { if } g(\mathbf{x})>0 \\ \mathbf{x} \in \omega_2, & \text { if } g(\mathbf{x})<0 \\ \text {uncertain, } & \text { if } g(\mathbf{x})=0\end{cases} xω1,xω2,uncertain,  if g(x)>0 if g(x)<0 if g(x)=0
    g ( x ) = 0 g(\mathbf{x})=0 g(x)=0 定义了一个决策面, 它是类 ω 1 \omega_1 ω1 ω 2 \omega_2 ω2 的分界面
    g ( x ) = 0 g(\mathbf{x})=0 g(x)=0 是一个超平面, 记为 H H H 。位于该平面的任意向量与 w w w 垂直:

【证明】如果 x 1 \mathbf{x}_1 x1 x 2 \mathbf{x}_2 x2 位于该超平面内, 于是有:
g ( x 1 ) − g ( x 2 ) = w T ( x 1 − x 2 ) = 0 g\left(\mathbf{x}_1\right)-g\left(\mathbf{x}_2\right)=\mathbf{w}^T\left(\mathbf{x}_1-\mathbf{x}_2\right)=0 g(x1)g(x2)=wT(x1x2)=0
在这里插入图片描述

  • 对于任意样本 x \mathbf{x} x, 将其向决策面内投影, 并写成两个向量之和:
    x = x p + r w ∥ w ∥ \mathbf{x}=\mathbf{x}_p+r \frac{\mathbf{w}}{\|\mathbf{w}\|} x=xp+rww
    其中, x p \mathbf{x}_p xp x \mathbf{x} x 在超平面 H H H 上的投影, r r r为点 x \mathbf{x} x 到超平面 H H H 的代数距离。如果 x \mathbf{x} x 在超平面正侧, 则 r > 0 r>0 r>0; 反之 r < 0 r<0 r<0
    由于 g ( x p ) = 0 g\left(\mathbf{x}_p\right)=0 g(xp)=0,于是
    g ( x ) = w T ( x p + r w ∥ w ∥ ) + w 0 = r ∥ w ∥ ⇒ r = g ( x ) ∥ w ∥ \begin{aligned} g(\mathbf{x}) & =\mathbf{w}^T\left(\mathbf{x}_p+r \frac{\mathbf{w}}{\|\mathbf{w}\|}\right)+w_0 \\ & =r\|\mathbf{w}\| \\ \Rightarrow r & =\frac{g(\mathbf{x})}{\|\mathbf{w}\|} \end{aligned} g(x)r=wT(xp+rww)+w0=rw=wg(x)
    并且有坐标原点到超平面的距离为: w 0 / ∥ w ∥ \mathcal{w}_0 /\|\mathbf{w}\| w0/∥w(用点到平面距离公式)
    在这里插入图片描述
  • 对于多分类问题,可以采用多个二类分类器集成得到多类分类器 g i ( x ) = w i T x + w i 0 , i = 1 , 2 , … , k g_i(\mathbf{x})=\mathbf{w}_i^T \mathbf{x}+w_{i 0}, \quad i=1,2, \ldots, k gi(x)=wiTx+wi0,i=1,2,,k
  • One-vs-all: 逐一与所有的其它类进行配对, 可以构造 c c c 个两类分类器。存在很多不确定区域,并且训练每个二类分类器要用到所有样本点
    在这里插入图片描述- One-vs-one:两两 (类-类) 配对, 可以构造 c ( c − 1 ) / 2 c(c-1) / 2 c(c1)/2 个两类分类器。仍然存在不确定性区域,但相对较少;需要训练很多分类器,但训练起来只需要部分(两类)数据,而且更容易得到线性可分的结果(想象一下one vs all,在训练的时候,一类和剩下的所有类很可能是线性不可分的)在这里插入图片描述
  • 如果我们修改决策规则为
    x ∈ ω i , g i ( x ) = max ⁡ j = 1 , 2.. c g j ( x ) \mathbf{x} \in \omega_i, \quad g_i(\mathbf{x})=\max _{j=1,2 . . c} g_j(\mathbf{x}) xωi,gi(x)=j=1,2..cmaxgj(x)
    将不再有不确定区域,最终的决策边界会发生改变
    在这里插入图片描述
    在这里插入图片描述

非线性判别函数

  • 线性情形
    g ( x ) = w 0 + ∑ i = 1 d w i x i ,  其中,  x = [ x 1 , x 2 , … , x d ] T g(\mathbf{x})=w_0+\sum_{i=1}^d w_i x_i, \quad \text { 其中, } \mathbf{x}=\left[x_1, x_2, \ldots, x_d\right]^T g(x)=w0+i=1dwixi, 其中x=[x1,x2,,xd]T
  • 可以进行二次推广,但是看成是线性函数(广义)
    g ( x ) = w 0 + ∑ i = 1 d w i x i + ∑ i = 1 d ∑ j = 1 d w i j x i x j = ∑ i = 1 d ^ a i y i ( x ) \begin{aligned} g(\mathbf{x}) & =w_0+\sum_{i=1}^d w_i x_i+\sum_{i=1}^d \sum_{j=1}^d w_{i j} x_i x_j =\sum_{i=1}^{\hat{d}} a_i y_i(\mathbf{x}) \end{aligned} g(x)=w0+i=1dwixi+i=1dj=1dwijxixj=i=1d^aiyi(x)
    y 1 ( x ) = 1 y 2 ( x ) = x 1 y 3 ( x ) = x 2 … y d + 1 ( x ) = x d y d + 2 ( x ) = x 1 2 y d + 3 ( x ) = x 1 x 2 … y ( d + 1 ) ( d + 2 ) 2 ( x ) = x d 2 \begin{aligned} & y_1(\mathbf{x})=1 \\ & y_2(\mathbf{x})=x_1 \\ & y_3(\mathbf{x})=x_2 \\ & \ldots \\ & y_{d+1}(\mathbf{x})=x_d \\ & y_{d+2}(\mathbf{x})=x_1^2 \\ & y_{d+3}(\mathbf{x})=x_1 x_2 \\ & \ldots \\ & y_{\frac{(d+1)(d+2)}{2}}(\mathbf{x})=x_d^2 \end{aligned} y1(x)=1y2(x)=x1y3(x)=x2yd+1(x)=xdyd+2(x)=x12yd+3(x)=x1x2y2(d+1)(d+2)(x)=xd2
    由于 w i j = w j i w_{i j}=w_{j i} wij=wji,共有 1 + d + d + ( d 2 − d ) / 2 = ( d + 1 ) ( d + 2 ) / 2 1+d+d+(d^2-d)/2=(d+1)(d+2)/2 1+d+d+(d2d)/2=(d+1)(d+2)/2个系数待估计; g ( x ) = 0 g(\mathbf{x})=0 g(x)=0 为决策面, 它是一个二次超曲面
  • 一般情况
    g ( x ) = ∑ i = 1 d ^ a i y i ( x ) g(\mathbf{x})=\sum_{i=1}^{\hat{d}} a_i y_i(\mathbf{x}) g(x)=i=1d^aiyi(x)
  1. a \mathbf{a} a 为广义权重向量, y \mathbf{y} y 是经由 x \mathbf{x} x 所变成的新数据点。
  2. 广义判别函数 g ( x ) g(\mathbf{x}) g(x) x \mathbf{x} x 而言是非线性的, 对 y \mathbf{y} y 是线性的。
  3. g ( x ) g(\mathbf{x}) g(x) y \mathbf{y} y 是齐次的, 意味着决策面通过新空间的坐标原点。且任意点 y \mathbf{y} y 到决策面的代数距离为 a T y / ∥ a ∥ \mathbf{a}^T \mathbf{y} /\|\mathbf{a}\| aTy/∥a (点到权重向量的投影长度)。
  4. 当新空间的维数足够高时, g ( x ) g(\mathbf{x}) g(x) 可以逼近任意判别函数。
  5. 但是, 新空间的维数远远高于原始空间的维数 d d d 时, 会造成维数灾难问题(curse of dimensionality)。

【例子】设有一维样本空间 X \mathrm{X} X, 我们期望如果 x < − 1 x<-1 x<1 或者 x > 0.5 x>0.5 x>0.5, 则 x x x 属于第一类 ω 1 \omega_1 ω1; 如果 − 1 < x < 0.5 -1<x<0.5 1<x<0.5, 则属于第二类 ω 2 \omega_2 ω2, 请设计一 个判别函数 g ( x ) g(x) g(x)
在这里插入图片描述
g ( x ) = ( x − 0.5 ) ( x + 1 ) = − 0.5 + 0.5 x + x 2 = a 1 + a 2 x + a 3 x 2 \begin{aligned} g(x) & =(x-0.5)(x+1) =-0.5+0.5 x+x^2 =a_1+a_2 x+a_3 x^2 \end{aligned} g(x)=(x0.5)(x+1)=0.5+0.5x+x2=a1+a2x+a3x2
在这里插入图片描述

  • 对线性判别函数采用齐次增广表示
    y = ( 1 x ) = [ 1 x 1 ⋯ x d ] T , a = ( w 0 w ) = [ w 0 w 1 ⋯ w d ] T \mathbf{y}=\left(\begin{array}{l} 1 \\ \mathbf{x} \end{array}\right)=\left[\begin{array}{llll} 1 & x_1 & \cdots & x_d \end{array}\right]^T, \quad \mathbf{a}=\left(\begin{array}{l} w_0 \\ \mathbf{w} \end{array}\right)=\left[\begin{array}{llll} w_0 & w_1 & \cdots & w_d \end{array}\right]^T y=(1x)=[1x1xd]T,a=(w0w)=[w0w1wd]T
    g ( x ) = w T x + w 0 = a T y g(\mathbf{x})=\mathbf{w}^T \mathbf{x}+w_0=\mathbf{a}^T \mathbf{y} g(x)=wTx+w0=aTy
  • Y空间中任意一点 y \mathbf{y} y H H H 的距离为: r = g ( x ) ∥ a ∥ = a T y ∥ a ∥ \quad r=\frac{g(\mathbf{x})}{\|\mathbf{a}\|}=\frac{\mathbf{a}^T \mathbf{y}}{\|\mathbf{a}\|} r=ag(x)=aaTy
  • 线性齐次空间增加了一个维度, 仍可保持欧氏距离不变, 分类效果与原来的决策面相同。但分类面将过坐标原点, 对于某些分析, 将具有优势。

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

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

相关文章

[机器学习-概念新] 什么是欧式距离、标准化欧式距离、马氏距离、余弦距离

1.欧式距离(Euclidean Distance) 欧式距离源自N维欧氏空间中两点间的距离公式&#xff1a; 代码实践 from scipy import spatial vec1 [1, 2, 3, 4] vec2 [5, 6, 7, 8] euclidean spatial.distance.euclidean(vec1, vec2) print(euclidean) 2.标准化欧式距离&#xff08;S…

狂揽两千星,速度百倍提升,高性能Python编译器Codon开源

这个高性能 Python 编译器具有支持 Python 众多语法、完美互通其他框架等优点。 众所周知&#xff0c;Python 是一门简单易学、具有强大功能的编程语言&#xff0c;在各种用户使用统计榜单中总是名列前茅。相应地&#xff0c;围绕 Python&#xff0c;研究者开发了各种便捷工具&…

G1垃圾回收

目录一、G1垃圾回收器G1垃圾回收阶段&#xff08;3个&#xff09;① Young Collection② Young Collection CM③ Mixed CollectionYoung Collection 跨代引用RemarkG1—垃圾回收器优化字符串去重类卸载巨型对象动态调整阈值一、G1垃圾回收器 定义&#xff1a; Garbage First&…

lanmp环境搭建,你需要一次独立安装来深入了解各个软件

一&#xff0c;安装Apache yum install httpd -y,安装apache,版本为2.4.6&#xff0c;最新为2.4.9。 cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak; vim /etc/httpd/conf/httpd.conf &#xff08;默认唯一&#xff09; 端口改为8000&#xff0c;不能与Ngin…

File类的使用

java&#xff0c;File类File类静态成员变量构造方法常用方法用于创建、删除文件/文件夹的方法用于遍历文件/文件目录的方法文件过滤器方法File类 Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。 File对象代表磁盘…

数据分析的大体思路

目录标题数据分析企业数据的分析的三个方向&#xff1a;离线分析&#xff08;Batch Processing&#xff09;实时分析&#xff08;Real Time Processing |Streaming&#xff09;&#xff1a;机器学习&#xff08;Machine Learning&#xff09;数据分析的流程明确分析的目的和思路…

JVM调优基本概念

1、jvm组成以工作流程 jvm组成 类装载器、运行时数据区&#xff08;内存模型&#xff09;、字节码执行引擎 工作大致流程 首先我们的java类编译成class类文件&#xff0c;当我们的class文件开始执行&#xff0c;我们的虚拟机便开始工作。 类加载器将class加载到运行时数据区…

SSM之Spring(一)

目录 一&#xff1a;Spring简介 1.1 Spring概述 1.2 SpringFrameWork 1.2.1 SpringFrameWork特性 1.2.2 Spring Framework五大功能模块 二&#xff1a;IOC 2.1 IOC容器 2.1.1 IOC思想 2.1.2 IOC容器在Spring中的实现 2.2 基于XML管理bean 2.2.1 入门案例 2.2.2 获取bean…

Golang switch 的使用的注意事项和细节

内容来自&#xff1a;尚硅谷-韩老师教学笔记&#xff0c;链接&#xff1a;尚硅谷 1&#xff09;case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以) 2&#xff09;case 后的各个表达式的值的数据类型&#xff0c;必须和 switch 的表达式数据类型一致 3…

辞暮尔尔烟火年年,朝朝暮暮岁岁平安。(2022年度总结)

目录 前言&#xff1a; 一、第一件事情&#xff0c;重新认识自己&#xff0c;从内核出发 二、第二件事情&#xff0c;告别内卷&#xff0c;拥抱微雕 三、第三件事情&#xff0c;愿2023&#xff0c;你我更更好 前言&#xff1a; 今天是2022年12月31日&#xff0c;2022年的最…

Shell——变量与脚本运行的方式

文章目录变量定义变量的几种方式1&#xff09;无引号2&#xff09;单引号3&#xff09;双引号4&#xff09;反引号export定义变量变量的提取、修改与删除1&#xff09;变量的提取2&#xff09;变量的修改3&#xff09;变量的删除特殊变量1&#xff09;位置参数2&#xff09;${#…

Jetpack组件(fragment)(1)

一.什么是Fragment? 碎片是活动的一部分&#xff0c;使得活动更加的模块化设计。我们可以认为碎片是一种子活动。 碎片拥有自己的布局&#xff0c;自己的行为及自己的生命周期回调。当活动在运行的时候&#xff0c;你可以在活动中添加或者移除碎片。你可以合并多个碎片在一个…

Android修炼之混淆

自嘲时刻 作为Java和Android开发者&#xff0c;大家应该都对混淆很熟悉了。网上也有各路大神提供的混淆模板&#xff0c;基本上直接拿来用就好。但我还是想捋一捋&#xff0c;因为工作中被混淆这家伙“玩弄”了好几次&#xff0c;必须把它记在小本本上。 介绍 基本概念 混淆…

Cesium中使用Sampler3D,3D纹理,实现体渲染

Cesium中使用Sampler3D&#xff0c;3D纹理&#xff0c;实现体渲染 Cesium目前&#xff08;20221231&#xff09;还不支持直接使用3D纹理&#xff0c;但是其实内部已经可以WebGL2&#xff0c;而且内置常量也有3DTexture。所以&#xff0c;可以通过仿Texture&#xff0c;来实现3…

如何彻底的理解需求,做出更好的软件

背景&#xff1a; 最近接到了一个需求&#xff0c;大概的需求就是我们有一些数据&#xff0c;默认分为了两类。如果变多的话&#xff0c;用户找起来非常的困难&#xff0c;针对这个现象我们提出了两点解决方案。1&#xff1a;添加搜索。2&#xff1a;添加分组。 第一波设计&…

Android的adb命令实战篇-1

2023年 —— 是充满希望的一年. 对于Android开发者而言&#xff0c;ADB命令或多或少都使用过&#xff0c;今天我们就一起来整体回顾一下吧。 ADB的全称&#xff1a;Android Debug Bridge 1. ADB(Android Debug Bridge) 在实际工作中&#xff0c;周围同事会抱怨记不住常用的a…

过寒假

小时候&#xff0c;每到一放假就被父亲送回奶奶家。除了寒假作业&#xff0c;我还会带一堆书回去看。我小时候特别喜欢到邮电局大厅去订阅报刊杂志&#xff0c;就连学校也会报名订阅报刊。我小学时看完梁羽生的《七剑下天山》就是翻日报上每天的小说连载看完的。那时候过年时家…

Unity AR小游戏(玩具小车)踩坑记

最近对AR产生了兴趣。先科普一下什么是AR吧。AR是Augmented Reality&#xff08;增强现实&#xff09;的简称&#xff0c;是基于摄像头对现实世界的实时图像采集、分析和理解&#xff0c;然后在此基础上融入虚拟物体&#xff08;信息&#xff09;&#xff0c;以达到增强体验的目…

Three.js学习(一)初识three.js

文章目录1.基本配置2.基本概念3.Api4.实现一个旋转动画1.基本配置 &#xff08;1&#xff09;安装 ​ npm install three &#xff08;2&#xff09;引入 import * as THREE from three2.基本概念 Three.js是基于原生WebGL封装运行的三维引擎。 &#xff08;1&#xff09;一…

【Linux】实验四 进程信号通信

文章目录一、实验目的二、 实验内容三、 实验原理1、信号3.1.1 信号的基本概念3.1.2、信号的发送2、所涉及的系统函数调用3.2.1 fork()3.2.2 kill( )This is my question.3.2.3 signal( )代码例子3.2.4 getpid()3.2.5 wait()四、 实验内容五、程序代码运行结果六、实验总结及心…