数值实验-高斯核函数 python/matlab 实现

article/2025/10/3 2:09:15

支持向量机

  • 支持向量:支持平面把两类类别划分开的超平面的向量点
  • 机:一种算法
  • SVM 是一种二分类模型
  • 线性可分支持向量机:通过硬间隔最大化,学习一个线性分类器
  • 线性支持向量机:通过软间隔最大化,学习一个线性分类器
  • 非线性支持向量机:通过核技巧,学习一个非线性分类器

线性可分支持向量机

几何间隔

函数间隔

见 :Python机器学习笔记:SVM(2)——SVM核函数 - 知乎 (zhihu.com)

拉格朗日乘子法

第一种情况:最小值在可行区域内
g ( x ∗ ) < 0 ∇ x f ( x ∗ ) = 0 g(x^*)<0 \\ \nabla _x f(x^*) =0 g(x)<0xf(x)=0
第二种情况:最小值在可行区域外
g ( x ∗ ) = 0 − ∇ x f ( x ∗ ) = α ∇ x g ( x ∗ ) α > 0 g(x^*)=0 \\ -\nabla _x f(x^*) = \alpha \nabla_x g(x^*) \\ \alpha>0 g(x)=0xf(x)=αxg(x)α>0
著名的KKT条件,整合了上面两种情况的条件
∇ x L ( x ∗ , α ∗ ) = 0 α ∗ > 0 α ∗ g ( x ∗ ) = 0 g ( x ∗ ) ≤ 0 \nabla_xL(x^*, \alpha ^*)=0 \\ \alpha ^*>0\\ \alpha^*g(x^*)=0 \\g(x^*) \le 0 xL(x,α)=0α>0αg(x)=0g(x)0

SVM目标函数求解

  • 目标函数:

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s.t.  1 − y ( i ) ( w ⋅ x ( i ) + b ) ≤ 0 , i = 1 , 2 , … , m \min _{w, b} \frac 1 2||w||^2 \\ \text { s.t. }\quad 1-y^{(i)}\left(w \cdot x^{(i)}+b\right) \leq 0, \quad \mathrm{i}=1,2, \ldots, \mathrm{m} w,bmin21w2 s.t. 1y(i)(wx(i)+b)0,i=1,2,,m

  • 构造拉格朗日函数:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α ( i ) y ( i ) ( w ⋅ x ( i ) + b ) + ∑ i = 1 m α ( i ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{m} \alpha^{(i)} y^{(i)}\left(w \cdot x^{(i)}+b\right)+\sum_{i=1}^{m} \alpha^{(i)} L(w,b,α)=21w2i=1mα(i)y(i)(wx(i)+b)+i=1mα(i)

  • 根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

原 始 问 题 : min ⁡ w , b max ⁡ α L ( w , b , α ) 对 偶 问 题 : max ⁡ α min ⁡ w , b L ( w , b , α ) 原始问题:\qquad \qquad \min _{w, b} \max _{\alpha} L(w, b, \alpha) \\ 对偶问题:\qquad \qquad \max _ \alpha \min _{w,b} L(w, b, \alpha) :w,bminαmaxL(w,b,α):αmaxw,bminL(w,b,α)

线性支持向量机

非线性支持向量机

核技巧

原空间: x = ( x 1 , x 2 ) T x=(x_1,x_2)^T x=(x1,x2)T

新空间: z = ( z 1 , z 2 ) T z=(z_1,z_2)^T z=(z1,z2)T

设原空间到新空间的变换 z = ϕ ( x ) = ( x 1 2 + x 2 2 ) T z=\phi (x) =(x_1^2+x_2^2)^T z=ϕ(x)=(x12+x22)T

则把原空间中的椭圆 w 1 x 1 2 + w 2 x 2 2 + b = 0 w_1x_1^2+w_2 x_2^2+b=0 w1x12+w2x22+b=0 变换为新空间中的直线 w 1 z 1 + w 2 z 2 + b = 0 w_1z_1+w_2 z_2+b=0 w1z1+w2z2+b=0

高斯核公式:
k ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) k(x, z)=\exp \left(-\frac{\|x-z\|^{2}}{2 \sigma^{2}}\right) k(x,z)=exp(2σ2xz2)

def gauss_kernel(x,z,delta):m,n = np.shape(x)k = np.mat(np.zeros((m,1)))for i in range(m):delta_row=x[i,:] - zk[i] = delta_row * delta_row.Tk = np.exp(k/(-2*delta)**2)return k

数值实验

在平面 R 2 R^2 R2 上取矩形 I = [ − 5 , 5 ] × [ − 5 , 5 ] I=[-5,5] \times [-5,5] I=[5,5]×[5,5] ,并在 I I I 中随机产生100个样本点,作为训练样本点,得到训练样本集 Ω = { ( x i , y i ) ∣ i = 1 , 2 , . . . , 100 } ⊂ I × { − 1 , + 1 } \Omega =\{(x_i,y_i)|i=1,2,...,100 \} \subset I \times \{-1,+1 \} Ω={(xi,yi)i=1,2,...,100}I×{1,+1} ,其中,如果 x i x_i xi 落在圆 t 1 2 + t 2 2 = 16 ( ( t 1 , t 2 ) ) ∈ R 2 t^2_1+t^2_2=16 ((t_1,t_2)) \in \bf R^2 t12+t22=16((t1,t2))R2内,则取 y i = − 1 y_i=-1 yi=1 , 否则取 y i = + 1 y_i=+1 yi=+1

​ 采用Gauss支撑向量机进行学习。Gauss核函数的参数选取及其分类效果,见表4.4.1.学习后的得到的分类曲线见图4.4.1

高斯核中的 σ 的值100个训练样本中SV的个数300个实验样本被误分的个数
0.199205
0.564103
20.03748
26.05224
28.05614
29.0559
30.0608
50.06252
200.06353
代码见 GitHub

http://chatgpt.dhexx.cn/article/OCoQwHWx.shtml

相关文章

CS131专题-2:高斯核、噪声、滤波

目录 1 高斯核 1.1 一维定义 1.2 二维定义 1.2.1 应用高斯核的过程 1.2.2 不同σ值的高斯核情况 1.2.3 不同核宽度情况 1.2.4 高斯核&#xff08;滤波&#xff09;特性 1.2.5 使用高斯核做平滑滤波相对箱式滤波的优点 2 噪声 和 滤波 2.1 椒盐噪声、脉冲噪声 2.1.1 …

python高斯核函数_机器学习:SVM(核函数、高斯核函数RBF)

一、核函数(Kernel Function) 1)格式 K(x, y):表示样本 x 和 y,添加多项式特征得到新的样本 x、y,K(x, y) 就是返回新的样本经过计算得到的值; 在 SVM 类型的算法 SVC() 中,K(x, y) 返回点乘:x . y 得到的值; 2)多项式核函数 业务问题:怎么分类非线性可分的样本…

高斯整数matlab,Matlab---自适应高斯核

MCNN提出了适用于高密度人群的自适应高斯核: 笔者所理解的自适应高斯核函数: %function:通过高斯核产生相应的密度矩阵 %parameter: im:输入图像,灰度图; points:标注的点[X Y],n*2的矩阵 function im_density = get_density_map_autogaussian(im,points) im_density =…

高斯核原理详解+生成高斯核的Python代码

要搞清楚高斯核的原理的话&#xff0c;把下面这篇博文认认真真看一遍就可以了&#xff0c;链接如下&#xff1a; https://blog.csdn.net/u013066730/article/details/123112159 下面是我认为值得注意和需要补充说明的几点&#xff1a; 1 为什么高斯滤波能够让图像实现模糊化&a…

C语言哈希表UT_hash的使用方法详解

由于C语言本身不存在哈希,因此&#xff0c;我们可以调用开源的第三方头文件&#xff0c;这只是一个头文件&#xff1a;uthash.h&#xff0c;使用时只需要在文件首部编写#include<uthash.h>即可。 uthash的使用 #include "uthash.h" struct my_struct {int id…

utxo 是什么

UTXO 代表 Unspent Transaction Output。 在比特币社区里&#xff0c;Transaction 被简称为 TX&#xff0c;所以上面这个短语缩写为 UTXO。一般会认为 UTXO 是比特币区块链设计当中的一部分&#xff0c;但事实上 UTXO 和区块链没有必然的联系&#xff0c;你可以完全照搬比特币区…

UT单元测试(一)——基础流程总结篇

参考书籍《单元测试的艺术》 一、单元测试的定义 一个单元测试是一段代码&#xff08;通常是一个方法&#xff09;&#xff0c;这段代码调用另一段代码&#xff08;一个单元可以是一个方法或函数&#xff09;&#xff0c;然后检验某些假设的正确性。如果这些假设是正确的&a…

UT标记详细说明

原来论坛用的是UT标记&#xff0c;UT是UltraThreads的简写。 微软word用的是Microsoft Word XML。 网页用的html ------------------------------------------------------------------ 什么是UT代码&#xff1f; UT标记对HTML的简化。一般情况下&#xff0c;即使指定讨论区禁…

UT-890J ( USB -2- RS422/485 Cable )

USB -2- RS422/485 Cable < 參考 網路文章 / 規格書 > DB9 公頭 (有 DB9轉 KF128螺絲端子轉接板 ) UT890_20190220152556_43695-2.pdf 驅動下載: UT890_Win XP Server2003 2008 Vista 7 8 32-64bit FT-232 USB-232 Chip USB -2- RS422/485 Cable < 參考文章 / 規格書…

RTU是什么及其用途

RTU是Remote Terminal Unit&#xff08;远程终端单元&#xff09;的缩写&#xff0c;是一种用于实现现动器等现场控制设备&#xff0c;实现对现场设备的实时监控&#xff0c;用途包括以下几个方面&#xff1a; 1.压力、流量等。 2.实时监测&#xff1a;RTU可以对现场设备进行…

RTU和DTU的区别是什么?

在物联网应用中&#xff0c;我们经常使用到两种数据传输设备——DTU和RTU。它们的功能大致相似&#xff0c;但又有些许不同。那在实际应用中&#xff0c;什么情况选择DTU&#xff0c;什么情况选择RTU呢&#xff1f;下面我们就一起来看看&#xff0c;它们之间到底有什么区别以及…

RTU和DTU分别是什么?

RTU和DTU是两种常见的远程数据采集和传输设备&#xff0c;虽然它们都是用于实现远程数据采集和传输&#xff0c;但在一些方面存在不同&#xff0c;下面是两者的区别。1、定义RTU是Remote Terminal Unit的缩写&#xff0c;翻译为“远程终端单元”&#xff0c;它是一种用于实现远…

硬刚Hive | 4万字基础调优面试小总结

本文基本涵盖以下内容&#xff1a; 一、基于Hadoop的数据仓库Hive基础知识二、HiveSQL语法三、Hive性能优化四、Hive性能优化之数据倾斜专题五、HiveSQL优化十二板斧六、Hive面试题(一)七、Hive/Hadoop高频面试点集合(二) 基于Hadoop的数据仓库Hive基础知识 Hive是基于Hadoop的…

数据结构知识点_重点期考总结复习

目录 前言数据数据的逻辑结构和物理结构逻辑结构物理结构&#xff08;存储结构&#xff09; 算法特性和时间复杂度算法的五大特性算法的时间复杂度 线性表线性表两种存储结构顺序表链型表线性表分析 栈和队列栈队列 串串的基本操作定长存储结构堆分配存储结构块链存储表示串的模…

前端JS/TS面试题

JS面试题总结 一、this指向问题&#xff08;1&#xff09;this的理解&#xff08;2&#xff09;怎样改变this的指向问题&#xff08;3&#xff09;Call,bind,apply三者的区别&#xff08;4&#xff09;容易判读错的几种this情况&#xff08;5&#xff09;this指向问题&#xff…

3.Hadoop Hive服务

接上文—————> 目录&#xff1a; 一.安装二.have基本命令操作三.hive数据仓库四.hive表的类型&#xff1a;五.hive中重要的元数据表六.hive的连接方式七.使用jdbc编写外部程序操作hive八.hive的基本数据类型九.hive的复杂的数据类型十.hive的建表语句十一.hive 删除表十…

深入理解计算机系统(CSAPP)含lab详解 完结

文章目录 深入理解计算机操作系统-第一章1.1 信息就是位 上下文1.2 程序被其他程序翻译成不同的格式1.3 了解编译系统如何工作是大有益处的1.4 处理器读并解释储存在内存中的指令1.4.1 系统的硬件组成I/O 设备1.4.2 运行 hello 程序 1.5 高速缓存至关重要1.6 存储设备形成层次…

面经-hangzhou

目录 上篇 一、基础篇 网络基础 TCP三次握手 HTTP协议 浏览器输入URL过程 操作系统基础 进程和线程的区别 操作系统内存管理 Java基础 面向对象三大特性 数据结构 设计模式与原则 面试题 构造方法 初始化块 This 重写和重载的区别 Object类方法 基本数据类…

Hive入门详解操作

Hive 第一章 Hive简介 1.1. Hive的简介 1.1.1 hive出现的原因 FaceBook网站每天产生海量的结构化日志数据&#xff0c;为了对这些数据进行管理&#xff0c;并且因为机器学习的需求&#xff0c;产生了hive这门技术&#xff0c;并继续发展成为一个成功的Apache项目。 1.1.2 …

计算机科学速成课 Crash Course Computer Science 笔记(摘要形式)

Crash Course Computer Science总共40节课&#xff0c;架构式地详细介绍了计算机从底层到顶层的构造和新的技术&#xff0c;一节课十分钟左右&#xff0c;可让小白在很短时间内产生对计算机的总体理解 本文是听课后做的笔记&#xff0c;便于复习回顾 点击观看计算机科学速成课 …