支持向量机算法流程图
Ⅰ 支持向量机学习算法
支持向量机学习算法主要有以下五种:
(1)获取学习样本(xi,yi),i=1,2…,其中xi∈Rn,y∈任 {1,-1}l,对样本进行预处理;
(2)选择进行非线性变换的核函数及对错分(误差)进行惩罚的惩罚因子c;
(3)形成二次优化问题用优化方法(如:Chuknlng算法、内点算法、SMO算法);
(4)获得a,a*及b0的值,代入方程中,获得分类或函数拟合的支持向量机;
(5)将需预测或分类的数据代入支持向量机方程中获得结果。
基坑降水环境影响评价参数选取降水方式、岩土性质、水文地质边界、基坑侧壁状态、边载分布、后续使用年限、基础型式、差异沉降8级,目标输出模式对应4个级别:优等级(Ⅰ)、良好级(Ⅱ)、中等级(Ⅲ)、差级(Ⅳ)。
用一对多多类支持向量机水质分类法:有四类等级要划分,于是在抽取训练集的时候,分别抽取I所对应的向量作为正集,其余所对应的向量作为负集;Ⅱ所对应的向量作为正集,其余所对应的向量作为负集……,这四个训练集分别进行训练得到四个分类器。然后,利用这四个训练结果文件对测试集分别进行测试,最后每个测试都有一个结果,最终的结果便是这四个值中最大的一个。
利用支持向量机进行基坑降水环境影响评价就是寻找影响基坑降水环境系统和孕灾环境系统的指标和基坑降水环境影响等级之间的关系,可建立以下四个分类函数:
基坑降水工程的环境效应与评价方法
Ⅱ 支持向量机请通俗介绍 高中文化
超级通俗的解释:
支持向量机是用来解决分类问题的。
先考虑最简单的情况,豌豆和米粒,用晒子很快可以分开,小颗粒漏下去,大颗粒保留。
用一个函数来表示就是当直径d大于某个值D,就判定为豌豆,小于某个值就是米粒。
d>D, 豌豆
d<D,米粒
在数轴上就是在d左边就是米粒,右边就是绿豆,这是一维的情况。
但是实际问题没这么简单,考虑的问题不单单是尺寸,一个花的两个品种,怎么分类?
假设决定他们分类的有两个属性,花瓣尺寸和颜色。单独用一个属性来分类,像刚才分米粒那样,就不行了。这个时候我们设置两个值 尺寸x和颜色y.
我们把所有的数据都丢到x-y平面上作为点,按道理如果只有这两个属性决定了两个品种,数据肯定会按两类聚集在这个二维平面上。
我们只要找到一条直线,把这两类划分开来,分类就很容易了,以后遇到一个数据,就丢进这个平面,看在直线的哪一边,就是哪一类。
比如x+y-2=0这条直线,我们把数据(x,y)代入,只要认为x+y-2>0的就是A类,x+y-2<0的就是B类。
以此类推,还有三维的,四维的,N维的 属性的分类,这样构造的也许就不是直线,而是平面,超平面。
一个三维的函数分类 :x+y+z-2=0,这就是个分类的平面了。
有时候,分类的那条线不一定是直线,还有可能是曲线,我们通过某些函数来转换,就可以转化成刚才的哪种多维的分类问题,这个就是核函数的思想。
例如:分类的函数是个圆形x^2+y^2-4=0。这个时候令x^2=a; y^2=b,还不就变成了a+b-4=0 这种直线问题了。
这就是支持向量机的思想。
机的意思就是 算法,机器学习领域里面常常用“机”这个字表示算法
支持向量意思就是 数据集种的某些点,位置比较特殊,比如刚才提到的x+y-2=0这条直线,直线上面区域x+y-2>0的全是A类,下面的x+y-2<0的全是B类,我们找这条直线的时候,一般就看聚集在一起的两类数据,他们各自的最边缘位置的点,也就是最靠近划分直线的那几个点,而其他点对这条直线的最终位置的确定起不了作用,所以我姑且叫这些点叫“支持点”(意思就是有用的点),但是在数学上,没这种说法,数学里的点,又可以叫向量,比如二维点(x,y)就是二维向量,三维度的就是三维向量( x,y,z)。所以 “支持点”改叫“支持向量”,听起来比较专业,NB。
所以就是 支持向量机 了。
Ⅲ 什么是SVM支持向量机
大家好,今天要讲的内容是,SVM支持向量机。
如果没有深度学习,可能现在依然是SVM的天下。
也许SVM过时了,但不管怎么说,SVM都是算法工程师必须要学习的常识性算法。
1.什么是SVM
SVM是用来解决分类问题的。
下面这个例子,直接表明了SVM分类器的特点:
假设在平面上分布着蓝色和红色两种样本,M和N对应了两个不同模型的决策边界。
直观来说,哪个模型更好一些?为什么?
很明显,M要比N,看起来更好。
因为对于M,即使样本在观测时产生了误差,但只要在绿色圆圈范围内,就不会影响最终的分类结果。
对于N,绿色圆圈很小,样本稍有变化,超出圆圈,分类器就会产生不同的结果。
因此M比N有更好的容忍测量误差的能力,M对样本的分类信心更强。
SVM就是要找到一个“对样本分类最有信心”的决策边界。
SVM的决策边界,到各个样本的间隔margin,是最大的。
因此SVM也被称为是最大间隔分类器。
例如,分界面M和N都可以将样本正确的分开。
这时将红色的分界面同时向左右两边平移,到达与某个样本点相切的位置,此时在分界面的两侧,就得到了两条平行的黄线。
黄线之间的距离即为间隔margin。
我们可以看出,M是large margin,N是small margin。
SVM算法,就是要找到间隔margin最大的决策边界。
而支撑这个间隔的样本,会被称为支持向量。
因此该算法得名,支持向量机,Support Vector Machine。
2.SVM目标函数的推导
无论训练哪种模型,例如,感知器、逻辑回归还是SVM,都需要先设计出模型的目标函数。
我们需要基于寻找最大间隔的分界面这一目标,来设计SVM的目标函数:
下面就来详细讨论,SVM目标函数的推导过程。
设样本的特征向量为X,其中包含x1到xn,n个特征,
每个特征对应的权重为w1到wn,保存在向量W中:
因此,得到决策边界的方程为w1x1+w2x2+...+wnxn+b=0,
它的向量形式为WT*X+b=0:
设空间中有m个样本,第i个样本表示为(xi, yi):
如果样本xi是正例,那么标记yi=+1。
如果样本xi是负例,那么标记yi=-1。
我们可以将第i个样本的预测值,表示为W转置乘向量xi加b。
SVM将尝试寻找最大间隔的分界面M:
而我们要将这个目标,转为具体的目标函数,进而设计出迭代算法。
设第i个样本xi到分界面的距离为distance(xi, W),其中W是分界面的参数。
在全部样本到分界面的距离中,有一个最短的距离,我们设它的长度是d。
而间隔margin就等于2d:
SVM就是要求出,在所有样本正确分类的条件下,使margin=2d最大的,分界面参数W。
根据空间中点到平面的距离公式,可以将第i个样本xi到平面M的距离distance表示出来。
它等于将第i个样本的预测值WT*xi+b,取绝对值,然后除以平面法向量W的模。
因为d是样本到分界面最短的距离:
所以对于任意的正例yi=1,它们到分界面M的距离都大于等于d。
而任意的负例yi=-1,到分界面M的距离,都小于等于负d。
我们将不等式的两边都除以距离d。
然后将平面的法向量w的模和距离d相乘的结果看做是一个常数。
接着将不等式左侧的分子和分母同时除以该常数,就会得到新的参数wd和bd:
此时相当于对所有的参数w和b,都缩放了相同的长度。
接着,对于原分界面WT*x+b=0:
同时令该等式的两边除以,法向量w的模和距离d的乘积。
这会使该分界面的参数,进行相同比例的缩放。
因此,我们将w和b的右下角,标记一个d。
缩放操作不会改变分界面本身,但可以使分界面和两条间隔边界线的参数保持一致。
我们将 wd 和 bd 的名称重新修改为w和b:
得到所有正样本满足不等式1,负样本满足不等式2。
另外,恰好在分界面的黄色间隔边界上的正样本的代入值是+1,负样本的代入值是-1。
接着,将间隔边界上的样本的预测值正负1,再代入到距离公式中:
就会得到最短距离d等于法向量w的模分之1。
因此我们推导出,margin=2倍的W模分之1:
而为了使margin最大,就是要使w的模最小。
求间隔margin的最大值,等价于求模的平方的最小值。
再根据模的计算公式展开,就可以得到二分之一倍的W转置乘W。
另外,由于全部样本都会被预测正确,因此预测值和真实值的符号是一致的。
在正负样本满足的不等式的两边,都乘以标记值yi,就得到了一个合成的约束条件。
最终,总结出SVM算法的目标函数为:
在满足所有样本的真实值乘上预测值大于等于1的情况下,
求出使W转置乘W取得最小值时的参数w和b的值。
3.一个具体的例子
设平面上有4个样本,每个样本有x1和x2两个特征:
样本的坐标为0-0、2-2、2-0和3-0。
其中蓝色圆圈是正例,红色叉子是负例。
我们要基于SVM的目标函数:
求出直线方程中的w1、w2和b三个参数的值。
首先,将4个样本点代入到约束条件中,可以得到4个不等式,A、B、C、D:
例如,将负例A(0, 0)代入,得到-b>=1。
接下来,要基于这4个不等式:
求1/2(w1^2+w2^2)取得最小值时,参数w和b的值。
将A和C联立,得到w1>=1。
B和C联立,得到w2=<-1。
很明显,在w1=1、w2=-1的情况下,待优化的函数,会取得最小值1。
然后将w1=1和w2=-1,重新代入到4个不等式中,可以求得b=-1:
因此,就得到了平面方程x1-x2-1=0。
从计算的过程中可以发现:
实际上只有A、B、C三个样本对应的不等式,参与了运算,所以它们是支持向量。
另外还可以计算出margin的长度,它等于w的模分之2,等于根号2,也就是1.414。
4.关于SVM的求解
在刚刚的例子中,我们手动计算了SVM的结果。
实际上,如果要用算法求解SVM,还要有如下三个关键点:
1)拉格朗日乘子法和KKT条件。
2)SVM的等价问题和对偶问题。
3)对偶SVM的化简和计算。
通过一系列的数学推导,我们可以得到一个,只关于拉格朗日乘子α的SVM最优化函数:
在该函数中,只有参数α和需要满足的条件。
该最优化函数说明了,如果我们有m个样本数据,那么就有α1到αm这些参数。
其中解出的α需要大于等于0,并且所有α与样本标签y相乘,再相加的结果是0。
当解出α后,再根据KKT条件:
就可以计算出参数w和b了。
那么到这里,SVM支持向量机,就讲完了,感谢大家的观看,我们下节课再会。