机器学习之支持向量机(手推公式版)(代码片段)

夏小悠 夏小悠     2022-12-28     554

关键词:

文章目录

前言

  支持向量机 ( S u p p o r t (Support (Support V e c t o r Vector Vector M a c h i n e , S V M ) Machine,SVM) Machine,SVM)源于统计学习理论,是一种二分类模型,是机器学习中获得关注最多的算法,没错,是“最”,没有之一。

1. 间隔与支持向量

  支持向量机分类方法的核心思想就是在特征空间中找出一个超平面作为决策边界,来将样本划分为正类和负类,并使模型在未知数据集上的泛化误差尽可能的小。

  超平面:在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。 如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则其超平面是一维的直线。

  比如上面这组数据,我们很容易就可以画出一条线将上面的数据划分为两个类别,而且其误差为零。对于一个数据集来说,这样误差为0的超平面可能有很多个,比如下面这样:


  但这样的模型不能保证泛化性能很好,即无法保证这个超平面在未知数据集上也表现很优秀。因此我们引入了一个名词------间隔 ( m a r g i n ) (margin) (margin),就是将我们找到的超平面向两边进行平移,直到碰到离这个超平面最近的样本点后停下,形成两个新的超平面,这两个超平面的距离就叫“间隔”,超平面处于这个“间隔”的中间位置,即我们选择的超平面到平移后的两个新的超平面之间的距离相等。而距离超平面最近的几个样本点称为支持向量 ( s u p p o r t (support (support v e c t o r ) vector) vector)



  比较一下上面两个图,直观上来看,都能够将样本换分为了两类,但如果再往里面加入一些噪声呢,很明显,蓝色的那个超平面对局部扰动的容忍性最好,因为它“够宽”,如果想象不出来,看下面这个例子:

  很明显,引入了一些新的数据样本后, B 1 B_1 B1这个超平面误差依旧为0,分类结果是最鲁棒的, B 2 B_2 B2这个超平面因为间隔较小,所以出现了分类误差。因此我们在寻找超平面时,希望间隔越大越好。
  以上就是支持向量机,即通过找出间隔最大的超平面,来对数据进行分类的分类器。
  支持向量机的模型由简至繁可以分为下面三种:
   ∙ \\bullet 线性可分支持向量机
   ∙ \\bullet 线性支持向量机
   ∙ \\bullet 非线性支持向量机
  当训练数据线性可分时,通过硬间隔最大化 ( h a r d (hard (hard m a r g i n margin margin m a x i m i z a t i o n ) maximization) maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据集近似线性可分时,通过软间隔最大化 ( s o f t (soft (soft m a r g i n margin margin m a x i m i z a t i o n ) maximization) maximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据集线性不可分时,通过使用核技巧 ( k e r n e l (kernel (kernel t r i c k ) trick) trick)及软间隔最大化,学习非线性支持向量机。

  简单是复杂的基础,也是复杂的特殊情况嘛

2. 函数方程描述

  假设给定数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) , y i ∈ − 1 , + 1 D=\\(x_1,y_1),(x_2,y_2),\\dots,(x_n,y_n)\\,y_i \\in \\-1,+1\\ D=(x1,y1),(x2,y2),,(xn,yn),yi1,+1,在上述在样本空间中,任意一条线都可以表示为: w T x + b = 0 \\bm w^T\\bm x+b=0 wTx+b=0  其中 w = ( w 1 , w 2 , … , w d ) T \\bm w=(w_1, w_2,\\dots,w_d)^T w=(w1,w2,,wd)T为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点之间的距离。很显然,超平面也可以被法向量 w \\bm w w和位移 b b b确定。
  为了推导和计算简便,我们做出以下规定:
  在超平面以上的点都标记为正,超平面以下的点都标记为负,即对于 ( x i , y i ) ∈ D (x_i,y_i)\\in D (xi,yi)D,若 y i = + 1 y_i=+1 yi=+1,则有 w T x i + b > 0 \\bm w^T\\bm x_i+b>0 wTxi+b>0;若 y i = − 1 y_i=-1 yi=1,则有 w T x i + b < 0 \\bm w^T\\bm x_i+b<0 wTxi+b<0,表达式如下: w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 \\begincases \\bm w^T\\bm x_i+b\\geq+1, & y_i=+1\\\\ \\\\ \\bm w^T\\bm x_i+b\\leq-1, & y_i=-1 \\endcases wTxi+b+1,wTxi+b1,yi=+1yi=1  其中,+1和-1表示两条平行于超平面的虚线到超平面的相对距离
  那么,样本空间中任意点 x \\bm x x到超平面的距离可以写为: r = ∣ w T + b ∣ ∣ ∣ w ∣ ∣ r=\\frac |\\bm w^T+b| ||\\bm w|| r=∣∣w∣∣wT+b  由此也可以求得两个不同标签的支持向量到超平面的距离之和,也就是间隔,可以表示为: γ = 2 ∣ ∣ w ∣ ∣ \\gamma=\\frac 2 ||\\bm w|| γ=∣∣w∣∣2  我们的目标就是找到最大间隔的超平面,也就是要满足如下约束的参数 w \\bm w w b b b,使得 γ \\gamma γ最大,即 m a x w , b 2 ∣ ∣ w ∣ ∣ s u b j e c t   t o   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , n \\underset \\bm w,b max \\frac 2 ||\\bm w|| \\\\[3pt] subject\\ to \\ y_i(\\bm w^T\\bm x_i+b)\\geq1,i=1,2,\\dots,n w,bmax∣∣w∣∣2subject to y查看详情

机器学习之支持向量机(svm)的求解方法(代码片段)

文章目录前言梯度下降法SMO算法参考前言支持向量机就是寻找一个超平面,将不同的样本分分隔开来,其中间隔分为硬间隔和软间隔,硬间隔就是不允许样本分错,而软间隔就是允许一定程度上样本存在偏差,... 查看详情

python机器学习之svm(支持向量机)实例(代码片段)

其实在很早以前写过一期SVM,只不过当时对SVM只是初步的了解,现在重新来看,其实SVM还是有很多值得学习的地方。1.SVM介绍SVM可以理解为:使用了支持向量的算法,支持向量机是一种基于分类边界分界的方法。以... 查看详情

机器学习之支持向量机:核函数和kkt条件的理解

...用的核函数有哪些;第四部分是支持向量机的应用,按照机器学习实战的代码详细解读。1核函数1.1核函 查看详情

机器学习之支持向量机(svm)的求解方法(代码片段)

...使用SMO等算法进行高效的求解。推导过程可以参考:机器学习之支持向量机之线性可分型原理介绍及代码实现(SVM)下面主要实现模型的求解方法。梯度下降法梯度下降法是一种比较普适的方法,当模型无法得出... 查看详情

机器学习之支持向量机(svm)的求解方法(代码片段)

...使用SMO等算法进行高效的求解。推导过程可以参考:机器学习之支持向量机之线性可分型原理介绍及代码实现(SVM)下面主要实现模型的求解方法。梯度下降法梯度下降法是一种比较普适的方法,当模型无法得出... 查看详情

机器学习之支持向量机(supportvectormachine)(更新中...)

支持向量机  支持向量机(supportvectormachines,SVMs)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类... 查看详情

机器学习之支持向量机

引言:  SVM是一种常见的分类器,在很长一段时间起到了统治地位。而目前来讲SVM依然是一种非常好用的分类器,在处理少量数据的时候有非常出色的表现。SVM是一个非常常见的分类器,在真正了解他的原理之前我们多多少少... 查看详情

机器学习之四:支持向量机推导

一、支持向量机(SVM)支持向量机,是用于解决分类问题。为什么叫做支持向量机,后面的内容再做解释,这里先跳过。在之前《逻辑回归》的文章中,我们讨论过,对于分类问题的解决,就是要找出一条能将数据划分开的边界... 查看详情

机器学习之svm(支持向量机)

支持向量机(SVM)是当前非常流行的监督学习方法,其核心主要有两个:构造一个极大边距分离器——与样例点具有最大可能距离的决策边界;将在原输入空间中线性不可分的样例映射到高维空间中,从而进行线性分离。并且使... 查看详情

机器学习之求解无约束最优化问题方法(手推公式版)(代码片段)

....拟牛顿法5.代码实现结束语前言  本篇博文主要介绍了机器学习里面的常见的求解无约束最优化问题的方法,包括梯度下降法、牛顿法和拟牛顿法,并给出了相关的推导过程及代码实现。  本篇博文内容主要来自 查看详情

机器学习之判别式模型和生成式模型

判别式模型(DiscriminativeModel)是直接对条件概率p(y|x;θ)建模。常见的判别式模型有线性回归模型、线性判别分析、支持向量机SVM、神经网络等。生成式模型(GenerativeModel)则会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来... 查看详情

机器学习之学习路线

机器学习机器学习朴素贝叶斯(NBC) 决策树K-近邻算法回归K-均值聚类算法Apriori算法FP-growth算法主成分分析(PCA)奇异值分析(SVD)支持向量机logistic回归python实现明星专家系统http://9399369.blog.51cto.com/9389369/d-22/p-2本文出自“运维... 查看详情

机器学习之线性回归(代码片段)

文章目录评价方法一元线性回归np.polyfit求解带入公式求解化简公式求解lstsq求解多元线性回归代码实现一元多项式回归代码实现参考评价方法回归问题有很多的评价方法。这里主要想写一下R^2的计算方法。需要计算R^2需要先弄清... 查看详情

机器学习之svm__1

一、支持向量机:1.优点:泛化错误率较低,计算开销不大,结果易解释。2.缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。3.适用数据类型:数值型和标称型数据。 二、重要概念:1.分... 查看详情

菜鸟之路——机器学习之knn算法个人理解及python实现(代码片段)

KNN(KNearestNeighbor)还是先记几个关键公式距离:一般用Euclideandistance  E(x,y)√∑(xi-yi)2 。名字这么高大上,就是初中学的两点间的距离嘛。     还有其他距离的衡量公式,余弦值(cos),相关度(corr... 查看详情

菜鸟之路——机器学习之非线性回归个人理解及python实现(代码片段)

关键词:梯度下降:就是让数据顺着梯度最大的方向,也就是函数导数最大的放下下降,使其快速的接近结果。Cost函数等公式太长,不在这打了。网上多得是。这个非线性回归说白了就是缩小版的神经网络。python实现:1importnump... 查看详情

机器学习之svm

支持向量机(SVM),作为一个分类模型,可以从两部分来理解:1)线性问题即求最优超平面:wTx+b=0。其中要求,向量集合被超平面没有错误地分开,并且离超平面最近的向量与之间距(称作间隔marginmargin)是最大的。所以,问... 查看详情