版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章支持向量机目录CONTENTS8.1SVM简介8.2线性SVM算法实现8.3非线性SVM与核函数8.4SVM回归8.5SVM算法实现8.6本章小结8.1SVM简介学习基础学习认知能力信息素养高支持向量机是Cortes和Vapnik于1995年提出的一种基于统计学习的二分类模型。它是一种监督学习方法,在学习过程中通过最大化分类间隔使得结构风险最小化。从图8-2可以看出,能将不同样本分开的超平面有很多,但只有一条超平面位于两类样本的“正”中间,这个超平面通常用一个方程d(X)=0来表示,d(X)被称为判决函数或决策函数。图8-1所示是两类线性可分的样本数据分布及划分的示例。图中的线段就是对样本分隔的超平面。8.1SVM简介1.感知机模型假设输入样本空间,输出空间是Y={+1,-1},输入样本表示样本的特征向量,即输入空间的样本点;输出表示样本的类别。从输入样本空间到输出样本空间的函数可表示为:该函数称为感知机(Perceptron),其中,称为权值(Weight)或权值向量(WeightVector),称为偏置(Bias),sign为符号函数,即8.1SVM简介判决函数若f(x)>0,则属于正例;若f(x)<0,则属于负例。在特征空间中,令判决函数g(x)=
,线性方程是一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两部分,这两部分的样本点分别被分成正、负两例,超平面S就是分离超平面。8.1SVM简介2模型参数学习任意一点(x,y)到直线的距离为,因此二维样本点(x,y)到线性方程的距离为,其中,。,对于误分样本点(xi,yi),当时,有;当时,有。因此,
于是误分样本点到超平面S的距离为:若超平面S的误分样本点个数为N,则误分样本点到超平面S的总距离为:8.1SVM简介采用随机梯度下降法(StochasticGradientDescent,SGD)学习参数w和b:参数w和b的迭代更新公式:8.1SVM简介输入:训练数据集D={(x1,y1),(x2,y2),…,(xN,yN)}、迭代次数、学习率,其中:,Y={+1,-1}。过程:(1)初始化参数:,b=0。(2)对于j=1,2,…,N,当为空集,即没有误分样本点,则结束循环,否则转到第(3)步执行。(3)任意取X中的样本点(xi,yi)更新参数。输出:感知机模型参数w和b,并利用计算分类的准确率。8.1SVM简介利用以上感知机算法对样本进行分类,其散点图及分类结果如图8-4所示。8.1SVM简介1.间隔最大化在对样本数据分类时,超平面离数据点的间隔越大,产生误差的可能性就会越小,也就是分类的确信度越大。因此,为了使分类的确信度尽可能高,需要让选择的超平面尽可能地最大化这个间隔。以最大间隔把两类样本分开的超平面,称之为最大间隔超平面。分类问题中的最大间隔、支持向量表示如图8-5所示。8.1SVM简介支持向量就是离最大间隔超平面最近的样本点,根据前面得到的支持向量到超平面的距离为将上式进行变换,进而有:8.1SVM简介SVM算法的目标就是最大化这个几何间隔d:间隔最大化问题就是求最优化问题:8.1SVM简介这是一个凸二次规划问题,不容易求解,可用拉格朗日乘子法对其对偶问题进行求解。对上面的公式构造拉格朗日函数:其中,。原问题与对偶问题有相同的解:调整w和b,使拉格朗日函数取最小值。8.1SVM简介将上式代入拉格朗日函数:下面调整参数,使目标函数取得最大值:对任意的支持向量(xs,ys),有:8.1SVM简介输入:训练数据集D={(x1,y1),(x2,y2),…,(xN,yN)}、迭代次数、惩罚因子C、学习率,其中:,
。过程:(1)初始化参数:,b=0。(2)对于j=1,2,…,N:①计算误差向量,其中。②取出误差最大的一项,即。③如果,则退出循环;否则对该样本数据利用随机梯度下降算法进行优化:
输出:SVM模型参数w和b,并利用计算分类的准确率。8.2线性SVM算法实现1分别随机生成两类样本数据各20条,绘制散点图#生成二维正态分布的样本数据mu=np.array([3,5])Sigma=np.array([[1,0],[0,2]])#半正定矩阵Q=np.linalg.cholesky(Sigma)sigma=np.array([2,4])x1=np.random.normal(0,1,(20,2))8.2线性SVM算法实现为了训练SVM算法中的w和b参数,可利用cvxopt模块库中的solvers.qp函数求解,其格式为cvxopt.solvers.qp(P,q[,G,h[,A,b[,solver[,initvals]]]])。二次规划问题的标准形式如下:Gx≤b表示的是所有的不等式约束,同样,若存在诸如x≥0的限制条件,也可以通过乘以−1转换为≤的形式。Ax=b表示所有的等式约束。8.2线性SVM算法实现#y的内积r=np.inner(y,y)#定义凸优化pq方法p=matrix(r*m)#目标函数q=matrix(np.ones(40)*-1)A=matrix(y.reshape(1,-1))#定义等式约束b=matrix(0.)#定义不等式约束g=matrix(np.vstack((np.eye(40)*-1,np.eye(40))))h=matrix(np.vstack((np.zeros(len(y)).reshape(-1,1),np.ones(len(y)).reshape(-1,1)*C)))8.3非线性SVM与核函数所谓线性不可分,是指用线性分类器进行划分时,存在一些样本会被误分类的情况。对于在有限维度向量空间中线性不可分的样本,我们将其映射到更高维度的向量空间里,再通过间隔最大化的方式,学习得到支持向量机,就是非线性SVM。8.3非线性SVM与核函数对于图8-7中线性不可分问题,在原空间中无法用一条直线将正例和副例正确分隔开来,但可通过一个圆形曲线分隔开来,这就属于非线性分类问题。而求解分隔超曲面要比求解分隔超平面复杂得多,但我们可以将这样的非线性分类问题通过非线性变换,将原空间中的数据映射到高维的空间H中8.3非线性SVM与核函数序列最小优化(SequentialMinimalOptimization,SMO)算法作为非线性SVM的典型代表,于1998年由JohnPlatt提出,目前被广泛应用于各领域。SMO算法的思想是将大的优化问题转换为多个小优化问题,这些小的优化往往很容易求解,并且对其进行顺序求解和作为整体求解的结果是完全一致的。输入:训练数据集D={(x1,y1),(x2,y2),…,(xN,yN)}、迭代次数、容错误差,其中:,={+1,-1}。过程:(1)初始化参数:,,计算核矩阵:
8.3非线性SVM与核函数2)对于j=1,2,…,N:①选择违反KKT条件最严重的样本点(xi,yi),若违反程度小于容错误差,则退出循环。②否则,选择其他任何一个样本点,其对应下标为j,针对和,构造一个新的只有两个变量的二次规划问题,并求出解析解。具体地说,就是更新参数:8.3非线性SVM与核函数③利用更新、b1:④利用和进一步更新b1、b2和ei:⑤利用和更新预测向量:8.3非线性SVM与核函数根据SMO算法描述,我们来实现SVM分类器。在构造SVM分类器之前,首先加载样本数据,观察散点图的分布情况,如图8-8所示。#利用测试样本进行评测error_count=0test_dat_mat=np.mat(test_data)test_label_mat=np.mat(test_label).transpose()rows,cols=np.shape(test_dat_mat)foriinrange(rows):kernel_eval=kernel_value(sv_sample,test_dat_mat[i,:],('rbf',k))pre=kernel_eval.T*np.multiply(sv_label,lambdas[sv_index])+b#预测值
ifnp.sign(pre)!=np.sign(test_label[i]):error_count+=1accuracy=100*(1-float(error_count)/rows)print("准确率:%%%f"%(accuracy))总迭代次数:141[01256712192023343637384143454651]有19个支持向量准确率:%100.0000008.4SVM回归SVM也可以用于解决回归问题。假定训练数据集D={(x1,y1),(x2,y2),…,(xN,yN)},回归模型就是要让与y尽可能接近,以确定w和b的值。f(x)-与f(x)+之间的区域称为街道或管道区域。最小化误差函数的优化目标为:8.5SVM算法实现──鸢尾花的分类SVM可分为两类:支持向量机分类(SupportVectorClassification,SVC)和支持向量机回归(SupportVectorRegression,SVR)。data_X,data_y=load_data()X_train,X_test,y_train,y_test=split_data(data_X,data_y)show_data(X_train,y_train)#使用linear线性核函数,C越大分类效果越好,但可能会过拟合
linear_svm=svm.SVC(C=1,kernel='linear',decision_function_shape='ovr').fit(X_train,y_train)#使用rbf径向基核函数rbf_svm=svm.SVC(C=1,kernel='rbf',gamma=1).fit(X_train,y_train)#使用poly多项式核函数
poly_svm=svm.SVC(kernel='poly').fit(X_train,y_train)defSVC(C=1.0,kernel='rbf',degree=3,gamma='auto_deprecated',coef0=0.0,shrinking=True,probability=False,tol=1e-3,cache_size=200,class_weight
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车队长岗位安全培训通知课件
- 车队安全培训新闻报道课件
- 垂径定理及其推论提高试题
- 《滑轮和滑轮组》物理授课课件
- 2026年某某项目安全生产自查自纠报告
- 银行客户关系维护制度
- 车间生产安全培训插排课件
- 2026年电力系统工作总结常用版(二篇)
- 车间安全线路培训记录课件
- 机电工程管理与实务二级建造师考试试卷及答案指导
- 快递行业运营部年度工作总结
- 《苏教版六年级》数学上册期末总复习课件
- 上海市二级甲等综合医院评审标准(2024版)
- 油漆班组安全晨会(班前会)
- 消费类半固态电池项目可行性研究报告
- 山东省济南市2024年1月高二上学期学情期末检测英语试题含解析
- 口腔门诊医疗质控培训
- (正式版)JBT 9229-2024 剪叉式升降工作平台
- HGT4134-2022 工业聚乙二醇PEG
- 小学教职工代表大会提案表
- ESC2023年心脏起搏器和心脏再同步治疗指南解读
评论
0/150
提交评论