非线性支持向量机及代码

SVM代码实现非线性分类 Matlab版 一、前言        在已经实现线性分类的基础上,进一步实现非线性分类的情况。其流程与代码与上一篇博客中的线性分类实现很相似。下面先谈一下sv与bsv,这些概念在西瓜书上可以找到的。关于这里出现的公式的推倒,请参考上上一篇博客:二、流程及实现流程图与线性分类一样而关于二次规划查看帮助文档即可。还是直接上代码,注释都比较详细:%------------主函数---------------- cle... 阅读详情

1.问题引入

线性支持向量机模型假设其训练样本是线性可分的,即存在一个超平面将两个类完全分开。然而在现实任务中,或许样本空间根本就不存在一个超平面能进行分类。下图是不存在分类超平面的例子:
在这里插入图片描述
为了解决这个问题,可以将样本从原始空间映射到一个更高的特征空间,使得样本在高维的特征空间变得线性可分。映射到高维一定能线性可分吗?幸运地是,如果原始空间是有限的,则一定存在一个特征高维空间使得样本线性可分。

我们定义映射 ϕ ( x ) \phi(x) ϕ(x)将 x x x从m维空间映射到n维空间(n>m),于是在特征空间的超平面表示为:
f ( x ) = w T ϕ ( x ) + b \begin{aligned} f(x) = w^T\phi(x)+b \end{aligned} f(x)=wTϕ(x)+b​
在特征空间的线性SVM模型为:
m i n [ w , b ] 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T ϕ ( x i ) + b ) ≥ 1 , i ∈ [ 1 , m ] \begin{aligned} &min_{[w,b]}\enspace \cfrac{1}{2}||w||^2 \\\\ &s.t.\enspace y_i(w^T\phi(x_i)+b) \geq 1,i\in[1,m] \end{aligned} ​min[w,b]​21​∣∣w∣∣2s.t.yi​(wTϕ(xi​)+b)≥1,i∈[1,m]​
其对偶问题为:
m a x [ α ] ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i , α i ≥ 0 , i ∈ [ 1 , m ] \begin{aligned} &max_{[\alpha]}\enspace\sum_{i=1}^m \alpha_i- \cfrac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) \\\\ &s.t.\enspace \sum_{i=1}^m \alpha_i y_i,\enspace\alpha_i \geq0,\enspace i \in[1,m] \end{aligned} ​max[α]​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​ϕ(xi​)Tϕ(xj​)s.t.i=1∑m​αi​yi​,αi​≥0,i∈[1,m]​
从上述表达式中发现,样本向高维空间映射后,难度在于计算 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi​)Tϕ(xj​),因为特征空间可能维度很高,甚至是无穷维。故而,我们定义这样一个函数:
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \begin{aligned} k(x_i,x_j) = \phi(x_i)^T\phi(x_j) \end{aligned} k(xi​,xj​)=ϕ(xi​)Tϕ(xj​)​
这就是核函数。引入核函数,我们可以避免高维空间的计算,也不用知道 ϕ ( . ) \phi(.) ϕ(.)的具体形式。

2. 核函数

核函数形式如下:
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \begin{aligned} k(x_i,x_j) = \phi(x_i)^T\phi(x_j) \end{aligned} k(xi​,xj​)=ϕ(xi​)Tϕ(xj​)​
我们举个例子来说明核函数的强大:
令 X = ( x 1 , x 2 ) T Y = ( y 1 , y 2 ) T ϕ ( X ) = ( x 1 2 , 2 x 1 x 2 , x 2 2 ) T ϕ ( Y ) = ( y 1 2 , 2 y 1 y 2 , y 2 2 ) T k ( X , Y ) = ϕ ( X ) T ϕ ( Y ) = x 1 2 y 1 2 + 2 x 1 x 2 y 1 y 2 + x 2 2 y 2 2 ‘ = ( x 1 y 1 + x 2 y 2 ) 2 = ( X T Y ) 2 \begin{aligned} 令 X=&(x_1,x_2)^T \\ Y=&(y_1,y_2)^T \\ \phi(X)=&(x_1^2,\sqrt{2}x_1x_2,x_2^2)^T \\ \phi(Y)=&(y_1^2,\sqrt{2}y_1y_2,y_2^2)^T \\ \\ k( X,Y)=&\phi(X)^T\phi(Y) \\=&x_1^2y_1^2+2x_1x_2y_1y_2+x_2^2y_2^2` \\=&(x_1y_1+x_2y_2)^2 \\= &(X^TY)^2 \end{aligned} 令X=Y=ϕ(X)=ϕ(Y)=k(X,Y)====​(x1​,x2​)T(y1​,y2​)T(x12​,

机器学习——支持向量机 支持向量机SVM的原理和实例 阅读详情

相关推荐

OpenCV非线性可分离数据的支持向量机的实例(附完整代码)

OpenCV非线性可分离数据的支持向量机的实例OpenCV非线性可分离数据的支持向量机的实例 OpenCV非线性可分离数据的支持向量机的实例 #include <iostream> #include <opencv2/core.hpp> #include <opencv2/imgproc.hpp> #include "opencv2/imgcodecs.hpp" #include <opencv2/highgui.hpp> #include <openc

希望我的博客,能帮上你解决学习中工作中所遇到的问题 528

[怕难?]支持向量机SVM基础实战篇(一)

[怕难?]支持向量机SVM基础实战篇(一) ​ 这几篇SVM介绍是从0到1慢慢学会支持向量机,将是满满的干货,都是我亲自写的,没有搬运,可以随我一起从头了解SVM,并在短期内能使用SVM做到想要的分类或者预测~我也将附上自己基础训练的完整代码,建议同我一样初学者们,自己从头到尾打一遍,找找手感,代码不能光看看,实践出真知! ​ 基本上每本机器学习书籍和资料都会介绍SVM算法,但是更多的书籍是原...

cv君的博客 1万+

基于误差的支持向量机和偏最小二乘相结合的非线性建模附Matlab代码

支持向量机(Support Vector Machine,SVM)和偏最小二乘(Partial Least Squares,PLS)是两种常用的非线性建模方法。本文将介绍如何将基于误差的支持向量机(Least Squares Support Vector Machine,LS-SVM)和偏最小二乘(Partial Least Squares,PLS)相结合,实现更准确的非线性建模。结合这两种方法,可以在LS-SVM的基础上引入PLS的特征提取能力,进一步提高建模的准确性。

CyberGenius的博客 130

基于FreeSwitch与SIP UA的蓝牙电话坐席系统实战部署

本文详细介绍了如何基于FreeSwitch开源软交换平台,结合SIP UA软电话与蓝牙电话App,在局域网内搭建一套低成本、自主可控的电话坐席系统。文章提供了从环境准备、FreeSwitch安装配置、用户与拨号计划创建,到SIP软电话测试和蓝牙设备接入的完整实战部署流程,并给出了关键优化与排坑指南,适合小微团队或个人开发者构建内部通讯工具。

zeta9的博客 545

传感器融合的智能演进:ST-MC-Workbench中霍尔与编码器的协同控制策略

本文探讨了ST-MC-Workbench中霍尔传感器与编码器的协同控制策略,通过传感器融合技术提升电机控制精度。文章详细介绍了分层处理架构、霍尔安装角度优化及编码器Z脉冲容错机制,展示了在新能源汽车和工业应用中的实际效果,为高精度位置检测提供了解决方案。

weixin_29159441的博客 482

ESP32蓝牙配网实战:微信小程序中的blufi协议实现与优化

本文详细介绍了在微信小程序中实现ESP32蓝牙配网的实战经验,重点解析了blufi协议的应用与优化。内容涵盖从开发环境配置、协议帧格式解析,到小程序端蓝牙通信、数据转换的核心步骤,并提供了配网状态机设计、错误处理及性能调优等进阶方案,旨在帮助开发者高效、稳定地完成物联网设备配网功能开发。

weixin_29159613的博客 459

【项目管理】第8章 项目整合管理 --知识点整理

制定项目章程: 第一步,旨在明确项目的目标、范围、关键里程碑等关键信息,为项目的后续工作奠定基础。制订项目管理计划: 在项目章程的基础上,进一步详细规划项目的执行过程,包括时间、成本、质量、风险等方面的管理计划。指导与管理项目执行: 按照项目管理计划执行项目,同时监控项目的进展,确保项目按照计划进行。监控项目工作: 对项目的执行情况进行持续监控,及时发现并解决问题,确保项目目标的实现。

weixin_42081167的博客 1596

告别上位机!用MCGS触摸屏+FTP服务器,5分钟搞定工控机文件自动同步

本文介绍了一种工业自动化领域的高效解决方案,通过MCGS触摸屏结合FTP服务器实现工控机文件的自动同步,无需开发上位机软件。该方案特别适用于图像采集、参数同步、数据备份等场景,具有成本低、可靠性高、维护简便等优势。详细配置指南和实战案例帮助用户快速实现零代码文件同步。

weixin_30872499的博客 561

金融行业软件测试面试题(含答案)

6、假如发现了一个BUG,跟开发本身没什么关系,涉及到理念,需求问题,如何解决?11、假如要你测试6个月期限的p2p借款产品,你应该怎么设计案例,说出测试点。17、如果京东有一个购物网页给你,你要怎么进行测试?31、我们公司自动化测试用的语言是Java,Java你不会,该怎么办?23、你们测试用的测试环境是谁给的?24、如果领导分配你的任务超出负荷,领导高估了你的能力,怎么办。26、给你一个模块测试,只有一个星期的时间你如何有效率地完成?29、如果你组长的用例写错了,但他认为是对的,你怎么处理?

crhnb的博客 917

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建(详细文档)

m0_52369979的博客 732

android11-修改屏幕显示方向和触摸方向

参数0表示12点钟方向显示参数90表示3点钟方向显示参数180表示6点钟方向显示参数270表示9点钟方向显示。

Paper_Love的博客 2118

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 软间隔支持向量机
下一篇: K-means及其改进
Jender_Sean
博客等级 码龄10年 36粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值