支撑向量机SVM-1.原理

支撑向量机的英文名叫: Support Vector Machine,是机器学习领域中的很重要的一种算法。它的思想背后有极强的统计理论的支撑,也是统计学上常用的一种方法。此算法在机器学习中既能解决分类问题,又能解决回归问题。且对真实的数据具有很好的泛化能力。
原理:考虑如下样本数据集,如何分辨此数据集?

之前的逻辑回归算法,确定决策边界的思路是定义了一个概率函数,根据这个概率函数进行建模,形成了损失函数,最小化损失函数来确定决策边界。
支撑向量机和逻辑回归不同,它的实现是找到一条最优的决策边界,距离两个类别的最近的样本距离最远,如下图:

最近的点也称为支撑向量,这些支撑向量定义了一个区域,而我们找到的决策边界就是被这个区域所定义的,是位于区域中心的一条线。支撑向量机的目标就是最大化margin,即最大化d。

数学求解

回忆解析几何知识,求点到直线的距离:
点\((x,y)\)到直线\(Ax+By+C=0\)的距离公式为:
\[ \frac{\left | Ax+By+C \right | }{\sqrt{A^2+B^2}} \]
扩展到n维空间直线 \(\theta ^T\cdot X_b = 0\) -> \(w^T \cdot X +b = 0\):
\[\frac{\left | w^T \cdot X +b \right | }{\left \| w \right \|}\]
其中\(\left \| w \right \| = \sqrt{w_1^2+w_2^2+...+w_n^2}\)

假设决策边界为\(w^T \cdot X +b = 0\),对于上图中的两类样本,假设一类为1,在直线的上方,另一类为-1,在直线的下方,分别有:

式子两边同除于d

对于上式,\({\left \| w \right \|}d\)是一个常数,再化简得:

上式可合为:

对于任意支撑向量x,d的距离应该经可能大,即要解决的是:
\[max \frac{\left | w^T \cdot X +b \right | }{\left \| w \right \|}\]
而又因为支撑向量构成的直线如下:

即\({\left | w^T \cdot X +b \right | } = 1\),所以,目标函数为:\(min {\left \| w \right \|}\)
为了方便求导,最终的目标为:
\[min \frac{1}{2}{\left \| w \right \|}^2
\\s.t.\quad y^{(i)}(w^Tx^{(i)}+b)>1\]
注:\(s.t.\) 为约束条件。

Soft Margin和SVM的正则化

对于数据样本如下的数据集,严格的按红蓝样本点来确定决策边界是不太准确的,因为最右边的这个蓝色点或许是一个错误的点或者是一个特殊的点,而采用另一个有容错的直线可能泛化能力会好一点。

为了更好的容错,将限定条件改为:
\[s.t.\quad y^{(i)}(w^Tx^{(i)}+b)>1-\xi _i (\xi \geq 0)\]
但\(\xi\)也不能无限制的大,所以在目标函数中加入正则项:

原文地址:https://www.cnblogs.com/shuai-long/p/11772694.html

时间: 2024-10-13 03:06:51

支撑向量机SVM-1.原理的相关文章

走过路过不要错过 包你一文看懂支撑向量机SVM

假设我们要判断一个人是否得癌症,比如下图:红色得癌症,蓝色不得. 看一下上图,要把红色的点和蓝色的点分开,可以画出无数条直线.上图里黄色的分割更好还是绿色的分割更好呢?直觉上一看,就是绿色的线更好.对吧. 为啥呢?考虑下图,新来了一个黑色点,明显靠蓝色点更近,如果用黄线分割,却把它划分到了红色点这个类别里. 现在细想一下为什么绿线比黄线分隔效果更好? 黄色线太贴近蓝色点 绿色线到红色点群和蓝色点群距离大致相等.恰好位于两个点群中间的位置 由此我们就引申出了SVM的理论基础:使得距离决策边界最近的

支撑向量机 SVM(一)

本文总结支撑向量机的基础知识,加入一点个人的直观理解.个人比较不太喜欢照搬书里的东西,而是喜欢自己推导然后时不时闭上研究回忆,想方设法用自己的方式简单理解. 1. 分类支撑向量机         1.1 可分SVM与间隔最大化:                   对于二分类SVM,一种直观的理解就是要寻找一条有宽度的带子来分开两类数据,而不是一条线.为何要这样呢? 如果仅仅是一条线的话,那么例如上图中,这条边界并不唯一,那么模型的鲁棒性成问题.但是如果是找一条边界带,那么可能可以找到一条宽度最

SVM学习笔记-线性支撑向量机

最大间隔超平面 线性分类器回顾 当数据是线性可分的时候,PLA算法可以帮助我们找到能够正确划分数据的超平面hyperplane,如图所示的那条线. 哪一条线是最好的? 对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的  Eout(w)≤Ein0+Ω(H)dvc=d+1 直观来看,最右边的线是比较好的hyperplane. 为什么最右边的分隔面最好? 对于测量误差的容忍度是最好的.例如对于每

class-支持向量机SVM全析笔记

support vector machines,SVM是二类分类模型.定义在特征空间上间隔最大的线性分类器,由于包括核技巧实质上成为非线性分类器.学习策略是间隔最大化,可形式化为求解凸二次规划问题(convex quadratic programming).求解算法是求解凸二次规划的最优化算法. SVM学习方法分为线性可分支持向量机(linear support vector machine in linearly separable case).线性支持向量机(linear support v

Python-基于向量机SVM的文本分类

项目代码见 Github: 1.算法介绍 2.代码所用数据 详情参见http://qwone.com/~jason/20Newsgroups/ 文件结构 ├─doc_classification.py ├─stopwords.txt ├─vocabulary.txt ├─train.data ├─train.label ├─train.map ├─test.data ├─test.label └─test.map python代码 需要安装的库: pandas, liblinearutil 注:

SVM数学原理推导

//2019.08.17 #支撑向量机SVM(Support Vector Machine)1.支撑向量机SVM是一种非常重要和广泛的机器学习算法,它的算法出发点是尽可能找到最优的决策边界,使得模型的泛化能力尽可能地好,因此SVM对未来数据的预测也是更加准确的. 2.支撑向量机SVM有两种:Hard Margin SVM和Soft Margin SVM,对于第一种严格的支撑向量机算法主要解决的是线性可分的数据问题,而第二种SVM是在第一种的基础上改进而来,可以解决普遍的数据问题,对于问题的线性可

SVM-支持向量机(一)线性SVM分类

SVM-支持向量机 SVM(Support Vector Machine)-支持向量机,是一个功能非常强大的机器学习模型,可以处理线性与非线性的分类.回归,甚至是异常检测.它也是机器学习中非常热门的算法之一,特别适用于复杂的分类问题,并且数据集为小型.或中型的数据集. 这章我们会解释SVM里的核心概念.原理以及如何使用. 线性SVM分类 我们首先介绍一下SVM里最基本的原理.这里先看一张图: 这个是Iris数据集中的部分数据,可以看到这两个类别可以由一条直线很简单地直接分开(也可以说它们是线性可

SVM-支持向量机原理详解与实践之一

目录(?)[+] 前言 SVM机器学习与深度学习 人工智能领域 机器学习与深度学习 SVM简介 SVM原理分析 快速理解SVM原理 线性可分和线性不可分 函数间隔和几何间隔 超平面分析与几何间隔详解 二次最优化 SVM-支持向量机原理详解与实践 前言 去年由于工作项目的需要实际运用到了SVM和ANN算法,也就是支持向量机和人工神经网络算法,主要是实现项目中的实时采集图片(工业高速摄像头采集)的图像识别的这一部分功能,虽然几经波折,但是还好最终还算顺利完成了项目的任务,忙碌一年,趁着放假有时间好好

SVM-支持向量机算法概述

(一)SVM的背景简单介绍 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它机器学习问题中[10]. 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,依据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别随意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14]