svm实现二分类_支持向量机原理详解(三): 核函数与非线性SVM

2023-10-31

前文推导了(线性)SVM的对偶问题(见支持向量机原理详解(二): 拉格朗日对偶函数,SVM的对偶问题)。不过,线性SVM以超平面来划分两类数据,如果数据本身是非线性的,那么以超平面作为决策边界就显得不太适用了。通过引入核函数,可以使SVM适用于非线性分类问题。本文介绍核方法在SVM中的应用,以及引入核函数后的SVM对偶问题。

6. 非线性SVM

关于核函数和核技巧,已在之前'Kernel PCA'一文中做了介绍,供参考:

数据降维: 核主成分分析(Kernel PCA)原理解析

SVM中的核技巧也是类似的,大致思路是:

  1. 对于
    维输入空间(input space)的数据集,通过一个(非线性)映射
    ,将其映射到
    维特征空间(feature space);在这个更高维的特征空间,容易实现数据的线性可分;
  2. 然后,在特征空间中用高维的数据求解线性SVM,得到最优分离超平面,也就得到了分类决策函数;
  3. 对于新数据,先将其映射到特征空间,然后用特征空间中的分类决策函数来进行分类。

那么引入映射

后,SVM形成的优化问题是什么样的呢?

线性SVM的原问题为:

将样本

映射到特征空间得到
,由于我们并不显式地定义映射
,所以直接在原问题
中将
替换为
似乎不太方便求解。

下面来看线性SVM的对偶问题:

其中,矩阵

列的元素为

对偶问题

中,样本
仅出现在目标函数的矩阵
中,且矩阵
的元素为样本之间的点积。如果将
映射为
,相应的对偶问题只需对矩阵
做调整:

这表明可以通过对偶问题来引入核函数。

定义核函数

,用输入空间中的向量来计算特征空间中高维向量的点积,则特征空间中,

所以,引入核函数的非线性SVM的对偶问题如下:

其中,

若核函数

为正定核,则对偶问题
是凸二次规划问题(参考文献[3], page 124)。解之得到最优拉格朗日乘子向量

<分类决策函数 & 决策边界>

回忆在线性SVM中,由对偶问题

得到原问题
的最优解为

(

后续再推导。)

分类决策函数为

类似地,特征空间中由线性SVM得到的最优分离超平面的法向量为

这里

维向量。当然,
是无法(也不需要)显式计算的,因为分类决策函数中的向量点积由核函数计算:

在线性SVM中,决策边界是一个超平面:

而在非线性SVM中,决策边界在特征空间中是超平面,对应于输入空间中的一个超曲面:

解对偶问题

,得到最优拉格朗日乘子向量
,就得到了(1)式的决策函数,用于对新数据的分类。

To be continued...

参考文献

[1] C. Cortes and V. Vapnik. Support-Vector Networks. Machine Learning, 20:273–297, 1995.

[2] Christopher J. C. Burges. A Tutorial on Support Vector Machines for Pattern Recognition. Data Mining and Knowledge Discovery, 2, 121-167, 1998.

[3] 李航,统计学习方法,清华大学出版社,北京,2012年。第7章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

svm实现二分类_支持向量机原理详解(三): 核函数与非线性SVM 的相关文章

  • ffmpeg-linux系统编译so库

    windows10下安装双系统 这个流程百度一下一大把资料 1 ubuntu 18 04 3 desktop amd64 iso 驱动器 2 安装VMware Workstation Pro 3 配置linux下配置ndk环境 4 下载ff
  • Android 7.0 Camera架构源码分析1 - CameraService启动

    本系列教程主要讲解Camera从APP层到HAL层的整个流程 第一篇先讲解CameraService的启动 后面会讲解open preview takepicture的流程 Android 7 0之前CameraService是在media
  • Java中抛出的内存异常总结

    Java中抛出的内存异常总结 根据上述的总结 可以整理出来 JVM在运行的时候大致会分为五个区域 方法区 堆区 本地方法栈 虚拟机栈 程序计数器 其中程序计数器不会报出OutOfMemoryError错误 其他的都有可能会报出这个错误 St
  • 逆向百度翻译

    逆向步骤 访问首页 https fanyi baidu com 获取set cookie 第二次根据cookie 获取的首页包含token 正则匹配出来 算出sign 根据查询入参 js逆向算出sign 最终 cookie sign 和 t
  • 【魔改YOLOv5-6.x(上)】结合轻量化网络Shufflenetv2、Mobilenetv3和Ghostnet

    文章目录 前言 一 Shufflenetv2 论文简介 模型概述 加入YOLOv5 二 Mobilenetv3 论文简介 模型概述 深度可分离卷积 逆残差结构 SE通道注意力 h swish激活函数 加入YOLOv5 三 Ghostnet
  • fifo读写写测试

    记录学习日常 本实验参考正点原子的实验教程 按照自己的理解来完成实验 四个模块 第一个模块是调用fifo IP核并设计类型 二 写如数据模块 三 读数据模块 四 顶层模块 ip核设置如图 二 写数据模块的输入有时钟 复位 写满 写空 输出有
  • 实战:彻底搞定 SpringBoot 整合 Kafka

    前言 kafka是一个消息队列产品 基于Topic partitions的设计 能达到非常高的消息发送处理性能 Spring创建了一个项目Spring kafka 封装了Apache 的Kafka client 用于在Spring项目里快速
  • Java初识 (数据类型)

    有人说Java是一种简单的语言 实际上没有简单的语言 只有相对简单 Java是一种面向对象的语言 学习Java 首先得了解 JDK JDK Java开发者工具 JRM Java运行环境 JVM Java虚拟机 面试题 main 函数的参数是
  • 编写shell脚本——一键启动Hadoop集群

    第一步 1 创建一个存放脚本的目录 命令 mkdir bin 注 如果不了解存放脚本目录的命名 就将目录名命名为 bin 如果 自己命名为其他可能在后面第四步的时候查找不到脚本 2 在bin目录下创建 hadoop sh 脚本 1 进入新创
  • gp基础篇-用户与资源队列管理

    author skate time 2012 11 16 gp基础篇 用户与资源队列管理 gp像oracle一样 有自己的独立的用户管理模块 但gp不像oracle那样 把用户和用户组分的那么细 gp中的用户 即是用户 又是用户组gp中的用
  • 目标检测研究现状调研

    近期在调研目标检测的研究现状 包括two stage和one stage 以及anchor based和anchor free 把用到的一些链接记录一下 方便查阅 机器之心的一篇文章 从锚点到关键点 最新的目标检测方法发展到哪了 这篇文章介
  • linux jmap命令详解,jmap命令 linux jmap如何使用

    1 linux jmap如何使用 jmap命令可以获得运行中的jvm的堆的快照 从而可以离线分析堆 以检查内存泄漏 检查一些严重影响性能的大对象的创建 检查系统中什么对象最多 各种对象所占内存的大小 命令格式 jmap options pi
  • Linux和Windows火狐浏览器书签无法同步

    前言 装了ubuntu后发现Windows下的firefox书签无法同步 而且都登陆了相同的Google账号 最终发现问题所在 firefox有个全球服务和本地服务 ubuntu下的firefox默认是全球服务的 而windows下的fir
  • 利用do while 循环和 switch 分支语句做一个简易的ATM机

    自己的写的过程体会 第一步 重要的 要检查你的电脑是否联网了 本人在写到第3步时没注意到电脑没联网 就一直在显示不了你想要的结果 本来信誓旦旦说没错啊 就是这样啊 可是就显示不了 后来才发现是网络问题 所以 网络很重要 一把泪 啊 然后呢
  • python收集数据做主神_里纲_[综漫]收集数据做主神小说无防盗章节_作者忘却的悠_新书包网(www.51aslz.com)...

    里包恩怎么了 没什么 只是在想 你做为里包恩的学生 能不能帮我个忙 帮忙 纲不好意思的抓了抓头发 所有的心思都写在了脸上 什么我这么废柴能帮什么忙 虽然我很想帮忙 但是我真的什么都做不好 找里包恩本人更快吧 实在不行还有山本和狱寺他们 不过
  • RequestMapping中produces属性作用

    注解RequestMapping中produces属性可以设置返回数据的类型以及编码 可以是json或者xml RequestMapping value xxx produces application json charset UTF 8
  • mysql如何将表导出到excel

    一 显示当前使用或者指定的database中的每个表的信息 信息包括表类型和表的最新更新时间 show table status 二 mysql如何将表结构导出到excel SELECT TABLE NAME 表名 COLUMN NAME
  • 计算机视觉与深度学习-图像分割-视觉识别任务03-实例分割-【北邮鲁鹏】

    目录 参考 定义 Mark R CNN 结构 思路 Mask R CNN训练阶段使用的Mask样例 Mask R CNN实例分割结果 Mask R CNN检测姿态 参考 论文题目 Mask R CNN 论文链接 论文下载 论文代码 Face
  • 四、在原理图中添加每个元件的封装

    画完每个元件的封装后 回到原理图界面 双击每个原理图元件 在编辑中添加封装 全部添加好右键点击原理图 选择validate pcb 那个 编译原理图文件 会自动检查错误 检查出来可以导出一个错误文档 然后根据文档修正即可 这个编译是将元件的

随机推荐

  • android点击后图片变大,Android实现点击缩略图放大效果

    import android animation Animator import android animation AnimatorListenerAdapter import android animation AnimatorSet
  • 【javascript】获取键盘输入

    获取上下左右键 在JavaScript中 如果我们想要获取键盘中的键对应的键码 可以使用event对象的keyCode属性
  • java连接kafka api_Kafka-JavaAPI(Producer And Consumer)

    Kafka JAVA API Producer和Consumer Kafka 版本2 11 0 9 0 0 producer package com yzy spark kafka import kafka javaapi producer
  • 2008年北大信科研究生复试 机考真题(一)--大数据十进制转换

    描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出 输入 多组数据 每行为一个长度不超过30位的十进制非负整数 注意是10进制数字的个数可能有30个 而非30bits的整数 输出 每行输出对应的二进制数 样例输入 0 1 3
  • LogBack的使用

    需要JAR包 1 slf4j api 1 6 1 jar 2 logback access 0 9 29 jar 3 logback classic 0 9 29 jar 4 logback core 0 9 29 jar 加载顺序 1 l
  • Promise详解

    1 基本概念 Promise是JS异步编程中的重要概念 异步抽象处理对象 是目前比较流行Javascript异步编程解决方案之一 2 Promise的三种状态 pending 对象初始化状态 fulfilled 当调用resolve 成功
  • 计算机管理找不到防火墙,win10系统防火墙服务找不到的具体方案

    win10系统使用久了 好多网友反馈说win10系统防火墙服务找不到的问题 非常不方便 有什么办法可以永久解决win10系统防火墙服务找不到的问题 面对win10系统防火墙服务找不到的图文步骤非常简单 只需要从电脑桌面找到计算机 然后鼠标指
  • Effective C++ 学习笔记 条款06 若不想使用编译器自动生成的函数,就应该明确拒绝

    如想阻止拷贝 但编译器为类声明了拷贝构造函数和拷贝赋值运算符 这样就不能达到目的了 你可以通过将拷贝构造函数和拷贝赋值运算符声明为private的来阻止拷贝 但类的成员函数和友元还是可以调用 此时将它们声明但不定义就行了 这样调用它的函数会
  • 通过href 从http跳转https失效问题 前端解决

    目前 浏览器定位的功能大多数浏览器为了安全需要https协议才可使用 这就需要站点支持https协议 尝试通过a标签跳转至a目录下的index html 发现href中目标地址是https xxx com a 浏览器跳转到https xxx
  • 攻防世界:WEB新手练习区

    题目 https adworld xctf org cn challenges problem set index id 25 rwNmOdr 1678625790128 view source 题目描述 X老师让小宁同学查看一个网页的源代
  • 开源阅读书源_安卓神器

    Hi 新朋友 记得点蓝字关注我们哟 阅读 大家好 我是小昊 今天在论坛看到有人提到这个软件 我才记起来要老早就应该给大家推荐这个软件的 首先这个软件是需要自己添加源的 不加是用不了的哟 如
  • Docker安装以及常用命令

    提示 以下内容均为学习过程中的个人笔记 有用自取 无用勿喷 如有错误欢迎指正 一 什么是docker Docker 是采用Linux Container 基于Golang语言 采用apache2 0开源协议存储于GitHub开源的容器管理引
  • 【网络是怎样连接的】—— TCP/IP 传输数据

    协议栈的工作原理 1 协议栈的内部结构 操作系统中的网络控制软件 协议栈 的内部如图所示 分为几个部分 分别承担不同的功能 这张图中的上下关系具有一定的规则 上面的部分会向下面的部分委派工作 下面的部分接受委派的工作并实际执行 图中最上面的
  • 解决APK签名问题the apk for your currently selected variant(app-release-unsigned.apk)is not signed.

    转载地址 https www cnblogs com galibujianbusana p 7694087 html
  • C语言面试题汇编

    1 局部变量能否和全局变量重名 答 能 局部会屏蔽全局 要用全局变量 需要使用 局部变量可以与全局变量同名 在函数内引用这个变量时 会用到同名的局部变量 而不会用到全局变量 对于有些编译器而言 在同一个函数内可以定义多个同名的局部变量 比如
  • spdlog用法

    转自 spdlog学习笔记 说明 所有内容翻译自spdlog的wiki 受英语水平所限 有所错误或失真在所难免 如果您有更好的建议 请在博文下留言 线程安全 spdlog 命名空间下的是线程安全的 当loggers在不同的线程同时执行时 下
  • Django框架之DRF序列化与反序列化

    概念 序列化 将Python对象转换为json字符串 反之json字符串反序列化为对象 使用drf序列化组件的步骤如下 1 在你的app中新建一个py文件 新建一个序列化的类 2 在类中写要序列化的字段 在视图中使用序列化的类 1 实例化出
  • 从控制台输入基本工资,并计算输出实领工资

    题目 编写程序 public class Test01 这是一个main方法 程序的入口 public static void main String args 键盘输入 Scanner input new Scanner System i
  • 苹果电脑适合python吗_m1的MacBook pro适合python开发吗?

    我的MacBook Air M1到手了 我自己常用的python包都装了 都是arm的版本 不是用Rosseta跑的 请参考 短暂使用还没有发现什么BUG 只不过numpy和tf相关的包是Apple提供的 opencv也不能直接pip或者c
  • svm实现二分类_支持向量机原理详解(三): 核函数与非线性SVM

    前文推导了 线性 SVM的对偶问题 见支持向量机原理详解 二 拉格朗日对偶函数 SVM的对偶问题 不过 线性SVM以超平面来划分两类数据 如果数据本身是非线性的 那么以超平面作为决策边界就显得不太适用了 通过引入核函数 可以使SVM适用于非