<老古董>1962年的线性支持向量机解法
我们说“训练”支持向量机模型,其实就是确定"最大间隔超平面"。
用数学语言来说就是确定一个最优的W。好比训练一个逻辑回归模型
的目的是确定最优的W和b。
输入 X,为一个n维向量
输出 y,为-1或1
1.”弱鸡版支持向量机“——硬间隔 线性支持向量机(1962)
我更喜欢叫它 ”弱鸡版支持向量机“,因为它还什么都没有。
判别函数 f(X) = sign( W*X + b )。
我们要根据训练数据集{(X,y)}来计算出最优的参数W和b。

首先基于训练数据集我们有限制条件: y(i) * (W*X(i)+b) >=1,对于训练集中所有的(X(i) ,y(i))。
在此基础上我们找最优的W,也就是使margin = 2 / ||W|| 最大。
总结下来,即求解下面问题,解出最优的W和b。(相比之下,现代神经网络的求解是对于多项式目标函数J(W)求解使J(W)最小的W。只需要使用链式法则和求导计算这两个简单的数学技巧,这应该算是一个明显的进步吧)

拉格朗日乘子法转换为对偶问题,再KKT条件,
具体数学解决过程这里不写了,较为繁琐。
我们在求解过程中引入了一组拉格朗日乘子,a1,a2,a3,a4.....
推导出:

(SV是支持向量们的集合)
解出上式即可。
可以看出,最初支持向量机就是一个完全的数学模型。
2.“勃起版支持向量机”————软间隔 线性支持向量机(1962年)
在前面的硬间隔线性支持向量机上做了一些变化,即给目标函数加了铰链损失项,目标函数变为
J(W) = 
其中称为惩罚参数,
越小时对误分类惩罚越小,越大时对误分类惩罚越大,当
取正无穷时就变成了硬间隔优化。实际应用时我们要合理选取
,
越小越容易欠拟合,
越大越容易过拟合。
(下面用ξ表示铰链函数)
接下来只要采用同样方法求解下面问题即可。

<老古董>1962年的线性支持向量机解法的更多相关文章
- <老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么
_________________________________________________________________________________________________ Th ...
- SVM-非线性支持向量机及SMO算法
SVM-非线性支持向量机及SMO算法 如果您想体验更好的阅读:请戳这里littlefish.top 线性不可分情况 线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,为了满足函数间隔大 ...
- 逻辑回归&线性支持向量机
代码: # -*- coding: utf-8 -*- """ Created on Tue Jul 17 10:13:20 2018 @author: zhen &qu ...
- 统计学习:线性支持向量机(SVM)
学习策略 软间隔最大化 上一章我们所定义的"线性可分支持向量机"要求训练数据是线性可分的.然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的.这就要求我们 ...
- 统计学习3:线性支持向量机(Pytorch实现)
学习策略 软间隔最大化 上一章我们所定义的"线性可分支持向量机"要求训练数据是线性可分的.然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的.这就要求我们 ...
- 算法实践——Twitter算法面试题(积水问题)的线性时间解法
问题描述:在下图里我们有不同高度的挡板.这个图片由一个整数数组所代表,数组中每个数是墙的高度.下图可以表示为数组(2.5.1.2.3.4.7.2).假如开始下雨了,那么挡板之间的水坑能够装多少水(水足 ...
- SVM(三)线性支持向量机
本文是在微信公众号发表的原创~ 额,图片粘不过来~就把链接给你们吧 http://mp.weixin.qq.com/s?__biz=MjM5MzM5NDAzMg==&mid=400740076 ...
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- 支持向量机原理(四)SMO算法原理
支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...
随机推荐
- Mixin类的实现
python类的多重继承由于C3算法的原因导致实现时需要提前规划先后顺序才能正常使用. 这会让人在python中使用多重继承时感到十分的麻烦. 而Mixin类则为我们带来了自由的多重继承和插拔式的舒适 ...
- UDP打洞实验
依云 posted @ 2 年前 in 网络 with tags python 网络 socat UDP , 7095 阅读 本文来自依云's Blog,转载请注明. 两台没有外网 IP.在 NAT ...
- Visual c++6.0如何创建工程项目
首先,打开电脑里安装的visual C++ 6.0 ,进入其选择的主界面,如果兼容性不对,先调整一下电脑与软件的兼容性. 进入主界面之后,点击左上角的文件,然后点击新建,可以创建新的文件. 打开后弹出 ...
- Vue3中的Proxy作用在哪里?
目录 前言 Vue没有Proxy会怎么样? proxy开始 前言 在讲解Proxy之前,我们有些前置知识点是必要掌握的: Object相关静态函数 Reflect相关静态函数 简单说明知识盲点 名称 ...
- JForum项目搭建
JForum 是采用Java开发的功能强大且稳定的论坛系统.它提供了抽象的接口.高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制.多语言支持(包括中文).高性能.可自定义的用户接口.安全. ...
- 吴裕雄--天生自然JAVAIO操作学习笔记:字节流与字符流操作
import java.io.* ; public class Copy{ public static void main(String args[]){ if(args.length!=2){ // ...
- Codestorm:Counting Triangles 查各种三角形的个数
题目链接:https://www.hackerrank.com/contests/codestorm/challenges/ilia 这周六玩了一天的Codestorm,这个题目是真的很好玩,无奈只做 ...
- 清北学堂例题 LUOGU2519 【HAOI2011】PROBLEM A
题目描述 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个整数,第i+1行 ...
- Day7 - H - 青蛙的约会 POJ - 1061
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特 ...
- 014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果
01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ...