上一篇博文中我们得到的最后求解方程是:

接着我们将详解它的求解方法。这一步涉及到拉格朗日求解问题,有点难,建议如果想学这个问题是怎么求解的,先去好好学学拉格朗日的对偶问题求解。

一、数学基础知识复习:

这里我们先复习一下拉格朗日求解约束型最大最小值问题:用“拉格朗日乘数法”求函数f(x,y,z)在条件φ(x,y,z)=0下的极值,步骤如下:

1.做拉格朗日函数L=f(x,y,z)+λφ(x,y,z),λ称拉格朗日乘数;

2.求L分别对x,y,z,λ求偏导,并且令偏导数方程为零,得四个方程组成的方程组,然后联立方程组,可求出驻点P(x,y,z)。

如果这个实际问题的最大或最小值存在,一般说来驻点唯一,于是最值可求。接着讲一下拉格朗日对偶问题,根据上面问题构造的拉格朗日函数:

L(x,y,z,λ)=f(x,y,z)+λφ(x,y,z),

此时,我们只对未知的变量x,y,z进行求偏导并令求导的等式为零,这样我们可以得到三个方程,然而这三个方程中有四个未知数:x,y,z,λ。此时我们根据三个方程,可以把x,y,z表示成λ的函数,也就是我们可以得到x(λ),y(λ),z(λ)。最后我们把这三个方程代入原拉格朗日方程L(x,y,z,λ),可以得到关于变量λ的函数L(λ),然后上面的关于变量x,y,z的最值约束问题,这就转化成了关于变量拉格朗日乘子λ的最值问题,是就是所谓的拉格朗日对偶问题。

说的简单一点,对偶问题就是把原拉格朗日问题转换成其等价形式,以便于求解。需要注意的是,如果原拉格朗日是求解最小值,那么其对偶方程为求解最大值;反之,如果原拉格朗日求解最大值,那么其对应的对偶问题为求解最小值。

二、svm对偶问题转化

回到svm求解方程,然后我们根据上面的知识,把它转化成其对应的对偶方程。转化步骤如下:

1、构建拉格朗日函数:

2、对拉格朗日函数求偏导:

3、令,可得:

(这个公式告诉我们w是训练样本x的加权线性组合)

(这个公式告诉我们所有的数据点的分类符号与拉格朗日乘子乘积和为0)。

在这里我们可以知道,如果拉格朗日乘子α已经求得,那么我们就可以根据上面的公式得:

这里请记住这个公式,因为这个公式,将作为后续计算拉格朗日乘子是否满足KKT条件的第一步。

4、回待入拉格朗日函数,并整理得:

其约束条件为:

这就是我们最后的转化结果。因此接着我们的目的便是要研究这个方程怎么继续求解。

三、松弛因子

由于在给定的训练样本中,总存在噪声,因为人工标号,有的训练数据标号甚至是错误的。还有以上的推导过程我们都是以数据100%线性可分为假设,进行推导的。如果我们采用硬约束的方法,很容易引起过拟合。因此我们需要引入所谓的松弛变量,来允许有些数据点可以存在较小的误差。因此svm算法的求解方程变为:

参考文献:http://blog.csdn.net/zouxy09/article/details/17291543

机器学习(七)支持向量机svm中级篇相关推荐

  1. 机器学习实战 支持向量机SVM 代码解析

    机器学习实战 支持向量机SVM 代码解析 <机器学习实战>用代码实现了算法,理解源代码更有助于我们掌握算法,但是比较适合有一定基础的小伙伴.svm这章代码看起来风轻云淡,实则对于新手来说有 ...

  2. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  3. 机器学习之支持向量机SVM及代码示例

    一.线性可分SVM SVM算法最初是用来处理二分类问题的,是一种有监督学习的分类算法. 对于线性可分的二分类问题,我们可以找到无穷多个超平面,将两类样本进行区分.(超平面:一维中是一个点:二维中是一条 ...

  4. 优达学城机器学习之--支持向量机(SVM)

    前言 SVM是支持向量机的简称(Support Vector Machine) 文章目录如下: 简述 选择分隔线 核函数(kernel)及其参数c, gamma 过拟合 over-fitting SV ...

  5. OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

  6. 机器学习:支持向量机SVM的SVC和SVR

    支持向量机SVM SVM的工作原理及分类 支持向量机的原理 线性可分的SVM 非线性可分的支持向量机 支持向量机分类SVC 支持向量机回归SVR SVR原理 SVR模型 时间序列曲线预测 SVM的工作 ...

  7. 机器学习(六)支持向量机svm初级篇

    为了理解svm算法,我这边以2位空间的点数据集分类为例,在二维空间中,直线的一般公式为:Ax+By+c=0:然后我们希望通过已有的数据点,求出直线的A,B,C三个参数,这就是SVM算法的目的. (1) ...

  8. 机器学习(八)支持向量机svm终结篇

    一.SMO算法简单推导 前面讲了一大堆都是理论推导,最后得到的公式是: KKT条件为: 接着我们要将的就是如何求解,编程如何实现,这才是我们学习的真正目的. 在这里我们先不管KKT条件,相关公式推导, ...

  9. [机器学习-实践]支持向量机(SVM)从例子代码中学习

    [机器学习-原理篇]支持向量机(SVM)深入理解 1.用SVM的linear做鸢尾花分类 利用sklearn中自带的dataset,鸢尾花数据库为例,进行二分类. #载入鸢尾花数据集,datasets ...

最新文章

  1. 聚焦与发散——浅谈编程的发展方向
  2. 真香!使用 Goland 网页版实现真正的云开发
  3. iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100%,说明产生的I/O请求太多...
  4. Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程
  5. 微信公众号手机无法直接下载APK文件是怎么回事
  6. 探讨JS合并两个数组的方法
  7. 【Python3】【爬虫】bilibili摄影板块
  8. 循环中需要调用异步怎么确保执行完再执行其他的_什么是事件循环和异步编程?5种使用async/await更好地编码方式!...
  9. IE7IE8不支持rgba的方法
  10. 【计算技巧】分数复数的共轭--分数复数模的平方计算技巧
  11. sqrt函数java_Java BigDecimal sqrt()用法及代码示例
  12. 攻防世界Web新手区题解(超详细)
  13. 蚂蚁借呗的利息计算方式?
  14. php搞笑证件,什么软件可以制作搞笑证件,多种搞笑证件制作
  15. 有关三年级计算机课的日记,有趣的一节课日记 三年级日记
  16. mstsc远程桌面连接失败,提示CredSSP加密Oracel修正
  17. postgresq | pg命令
  18. 企业WiFi管理需求
  19. python习题练习(一)
  20. RFID Kill密码是什么

热门文章

  1. dll注入工具_bypassUAC amp;amp; DLL劫持
  2. python不支持prelu_MTCNN(九)更改python与c代码的PReLU为ReLU
  3. linux双网卡架设FTP,LINUX系统上架设FTP服务器
  4. python判断密码是否正确三次机会_python密码错误三次锁定(实例讲解)
  5. ccs 移植创建新工程_3D生物打印器官新突破,模拟肺与肝脏,未来可能实现定制人类器官...
  6. python接口编程_Python 中的面向接口编程
  7. 11.* 指针 引用
  8. [HNOI2013]比赛 搜索
  9. 从对集合数据去重到Distinct源码分析
  10. 如何通过TortoiseGit(小乌龟)把本地项目上传到github上