背景,在看原理的时候,发现很多地方一知半解的,补充如下。

其他补充:

注:以下的默认为2分类

1、SVM原理:

(1)输入空间到特征空间得映射

所谓输入空间即是输入样本集合,有部分情况输入空间与特征空间是相同得,有一部分情况二者是不同的,而模型定义都是定义到特征空间的,特征空间是指所有的输入特征向量,特征向量是利用数值来表示的n维向量,输入空间到特征空间的映射,也就是对所用的特征进行数值量化(本人这么理解),与概率中的随机变量是一样的形式,随机变量是由样本空间到实数集的映射,例如:抛硬币的样本空间是{正面,反面},映射到实数集便为{1,0}

(2)求得间隔最大化最优分离超平面

所谓分离超平面,即是能够将所有的特征向量划分为两类的平面或直线(特征有两个变为直线,多个变为平面,即几维的问题),比如二维的情况下,一条线,能够坐标系中的所有点划分为两类,最优意为可以将所有的点尽量进行正确的划分,间隔最大化意为:在两类区域中各自距离直线最近的点到直线的距离是最大的,因此可以求得唯一的间隔最大化最优分离超平面w*x+b*=0,由于是距离因此是由法向量和截距决定,w*为法向量,b*为截距,此处对这个方程进行解释:法向量是从点到平面的垂直方向,在几何中求平面的方程时,平面方程可以设为一般方程Ax+By+Cz+D=0,这便可以看作为(A,B,C)*(x,y,z)即w*=(A,B,C),特征向量x=(x,y,z),b*=D.同理在求直线直线可设为Ax+By+C=0,因此求超平面时即为求w*,b*.

(3)求分类决策函数

所谓分类决策函数只是一个符号函数f(x)=sign(w*x+b*),sign是一个符号函数,取输入值的符号(正负),在上边取得法向量和截距以后与输入特征向量运算后将结果带入sign()得到分类

2、基础概念

(1)函数间隔

上边已经说了是求到超平面的最近距离的点的距离最大的超平面,因此求距离是很重要的一步,根据点到平面的距离公式分子为|w*x+b|,由于分母是相同的,所以|w*x+b|可以相对的表示出距离的大小。y(向量)在此表示的是每个特征向量的分类,而由上边已经知道,分类决策是求的符号的,因此可以确定w*x+b与y的符号(相对应元素)是相同的,因此可以利用y(w*x+b)来表示分类的正确性和确信度,这就是函数间隔:                          

注:超平面关于特征空间的函数间隔是值所有特征向量到超平面的函数间隔中的最小值

                          

(2)几何间隔

利用函数间隔来具体衡量时,会出现一个问题,当法向量和截距同时扩大两倍时,超平面不变,但是函数间隔却便为原来的两倍,因此引入几何间隔的概念,其实简单的来说,几何间隔便是函数间隔除以法向量的模,具体公式如下:

                            

同时由超平面关于特征空间的几何间隔是所有特征向量到超平面的几何间隔中的最小值

                          

(3)支持向量

在线性可分的情况下,特征空间中距离分离超平面的距离最近的特征向量为支持向量

上面一段话来着:https://www.cnblogs.com/fantasy01/p/4633557.html

SVM 推到期间 遇到的 表背景知识 (间隔最大化)的更多相关文章

  1. {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器

    Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...

  2. SVM中的间隔最大化

    参考链接: 1.https://blog.csdn.net/TaiJi1985/article/details/75087742 2.李航<统计学习方法>7.1节 线性可分支持向量机与硬间 ...

  3. Windows_Program_Via_C_Translate_Win32编程的背景知识/基础知识_包括基本输入输出机制介绍

    Some Basic Background Story of The Win32 APIs Win32 API背景故事/背景知识 The Win32 application programming i ...

  4. Tomcat(一):背景知识和安装tomcat

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 基础背景知识 1.1 java和jdk概念 无论是何种程序,要能在计算机 ...

  5. jenkins X实践系列(1) —— 背景知识

    本文介绍jenkins X(以下简称jx)相关的背景技术. jenkins X 简介 Jenkins X 是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务 ...

  6. {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll

    Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...

  7. [H5表单]一些html5表单知识及EventUtil对象完善

    紧接着上面的文章,一开始准备一篇文章搞定,后来看到,要总结的东西还不少,干脆,把上面文章拆成两部分吧,这部分主要讲讲表单知识! 表单知识 1.Html5的autofocus属性. 有个这个属性,我们不 ...

  8. 『Python基础-1 』 编程语言Python的基础背景知识

    #『Python基础-1 』 编程语言Python的基础背景知识 目录: 1.编程语言 1.1 什么是编程语言 1.2 编程语言的种类 1.3 常见的编程语言 1.4 编译型语言和解释型语言的对比 2 ...

  9. HTML5元素背景知识

    目录 HTML5元素背景知识 语义与呈现分离 元素选用原则 少亦可为多 别误用元素 具体为佳,一以贯之 对用户不要想当然 元素说明体例 ol元素 元素速览 文档和元数据元素 文档和元数据元素 文本元素 ...

随机推荐

  1. protobuf标准消息方法

    protobuf标准消息方法 1.标准消息方法 每个消息类包含一些其他方法允许你检查和控制整个消息,包括: · IsInitialized() :检查是否所有必须(required)字段都已经被赋值了 ...

  2. Netty端口被占用问题

    问题:   最近发现Netty项目每次发布的时候Netty在重启时都会报端口被占用的异常, 需要过十几秒左右手动重启一遍, Netty才能恢复正常 目前猜测是由于Tomcat_restart的时候Ne ...

  3. Spring Data JPA 实现多表关联查询

    本文地址:https://liuyanzhao.com/6978.html 最近抽出时间来做博客,数据库操作使用的是 JPA,相对比 Mybatis 而言,JPA 单表操作非常方便,增删改查都已经写好 ...

  4. 【电信我想问一下,网页上多出的隐藏广告】究竟谁在耍流氓,还要不要脸了??? 0817tt 植入广告

    最近总是有网页 莫名的有声音,是网页游戏的,一刷新就没了. 这次 我怒了! 我觉得不可能是这个网站的chinaunix的广告.左边是 有广告的,右侧标签 是无广告的. 有广告的 实际上 隐藏了一个页面 ...

  5. iOS:自定义导航栏,随着tableView滚动显示和隐藏

    自定义导航栏,随着tableView滚动显示和隐藏 一.介绍 自定义导航栏是APP中很常用的一个功能,通过自定义可以灵活的实现动画隐藏和显示效果.虽然处理系统的导航栏也可以实现,但是这个是有弊端的,因 ...

  6. Andriod源码搜集

    1.一个左侧抽屉式导航NavigationDraw 教程:http://developer.android.com/training/implementing-navigation/nav-drawe ...

  7. Mongodb的windows服务安装和卸载

    不用 InstallUtil.exe,直接用mongod.exe做就可以: 安装:mongod --dbpath "C:\mongodb\db" --logpath "C ...

  8. C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像

    搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...

  9. ubuntu服务器常见使用技巧及-kill掉后GPU显存不释放进程-

    如何解决python进程被kill掉后GPU显存不释放的问题 1 重新开一个shell,然后输入: ps aux|grep user_name|grep python.所有该用户下的python程序就 ...

  10. Ios开发之多线程编程——NSThread

    IOS程序在运行的时候是通过主线程来进行UI视图的更新和响应屏幕触摸事件,但是,在视图更新的时候,会有一些非常耗时的工作,这样我们会出现系统出现卡顿的现象,这是因为主线程堵塞造成的,这样会使用户体验非 ...