1. SVM算法总结

  1. 选择 核函数 以及对应的 超参数

    为什么要选择核函数?

    升维 将线性问题不可分问题 升维后转化成 线性可分的问题

    核函数 有那些? linea gauss polinormail tanh

  2. 选择惩罚项系数C

    min ||w||2 + Csum(ei)

  3. 构造优化问题:

  4. 利用SMO算法 计算 α*

  5. 根据α* 计算w*

  6. 根据α* 得到支撑向量 计算每个支撑向量 对应的bs*

  7. bs* 求平均得到b*

    学得超平面:

    仔细观察这个式子就会发现:

    其实只需要关注 支撑向量的C>α>0 非支撑向量的alpha为0

    W*的计算:

其实也就只需要关注 是支撑向量的几个点,支撑向量对于W,b的求解起关键作用,其他的非支撑向量,对模型没起任何作用

  1. 得到最终的判别式

神奇的SMO算法到底是如何进行的?

2. SMO算法



其中(xi,yi)表示训练样本数据,xi 为样本特征,yi∈{−1,1}为样本标签,C 为惩罚系数由自己设定。上述问题是要求解 N 个参数(α1,α2,α3,...,αN),其他参数均为已知

把原始求解 N 个参数二次规划问题分解成很多个子二次规划问题分别求解,每个子问题只需要求解 2 个参数,方法类似于坐标上升,节省时间成本和降低了内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。

同时优化两个参数,固定其他 N-2 个参数,假设选择的变量为α1,α2,

固定其他参数α3,α4,...,αN,由于参数α3,α4,...,αN 的固定, 可以简化目标函数为只关于α1,α2的二元函数,Constant 表示常数项(不包含变量α1,α2 的项)。

v1 表示 x1 与 3---N 之后所有的样本运算

v2 表示 x2 与 3---N 之后所有的样本运算



其中:

Kij表示 xi 与 xj 输入到核函数 进行运算的结果



两边同时乘以 y1, 任意的y*2 = 1

得到:

需要优化的目标函数转化成:

上式中是关于变量α2 的函数,对上式求导并令其为 0 得:

将4, 6, 7 带入求导=0 的式子



令η=K11+K22−2K12



这里得到的α2 是未经过修建的alpha 不一定满足约束条件





翻译一下:

两个拉格朗日算子 0< α1 α2 < C限定必须在正方形盒子内部

α1y1+α2y2=固定值 限定了必须在直线上 最优解 必须是一条线段

新的α2 下限L 上限H

修建后的alpha



由于其他 N-2 个变量固定:

两边同时乘以y1:

选择α1 α2采用上述方法进行优化,直到不违反kkt条件

α1 α2优化的同时对b进行更新:

  1. 如果:

    则 x1 y1 为支撑向量

    两边乘以y1:

得到bnew:



只不过是拆成3部分而已





前两项可以替换为



得到:

如果

同理:

  1. α1 α2 都满足:



    取一个就行:

  2. 如果都不满足 他们的中点:

    取1/2 *(α1 + α2)

机器学习-线性分类-支持向量机SVM-SMO算法-14的更多相关文章

  1. SVM-非线性支持向量机及SMO算法

    SVM-非线性支持向量机及SMO算法 如果您想体验更好的阅读:请戳这里littlefish.top 线性不可分情况 线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,为了满足函数间隔大 ...

  2. 线性可分支持向量机--SVM(1)

    线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...

  3. 统计学习:线性可分支持向量机(SVM)

    模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...

  4. 机器学习算法整理(七)支持向量机以及SMO算法实现

    以下均为自己看视频做的笔记,自用,侵删! 还参考了:http://www.ai-start.com/ml2014/ 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还 ...

  5. 机器学习笔记:支持向量机(svm)

    支持向量机(svm)英文为Support Vector Machines 第一次接触支持向量机是2017年在一个在线解密游戏"哈密顿行动"中的一个关卡的二分类问题,用到了台湾教授写 ...

  6. 支持向量机的smo算法(MATLAB code)

    建立smo.m % function [alpha,bias] = smo(X, y, C, tol) function model = smo(X, y, C, tol) % SMO: SMO al ...

  7. 吴裕雄--天生自然python机器学习:基于支持向量机SVM的手写数字识别

    from numpy import * def img2vector(filename): returnVect = zeros((1,1024)) fr = open(filename) for i ...

  8. 机器学习:Python中如何使用支持向量机(SVM)算法

    (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...

  9. 机器学习-支持向量机SVM

    简介: 支持向量机(SVM)是一种二分类的监督学习模型,他的基本模型是定义在特征空间上的间隔最大的线性模型.他与感知机的区别是,感知机只要找到可以将数据正确划分的超平面即可,而SVM需要找到间隔最大的 ...

  10. 机器学习——支持向量机SVM

    前言 学习本章节前需要先学习: <机器学习--最优化问题:拉格朗日乘子法.KKT条件以及对偶问题> <机器学习--感知机> 1 摘要: 支持向量机(SVM)是一种二类分类模型, ...

随机推荐

  1. Spring系列:基于Spring-AOP和Spring-Aspects实现AOP切面编程

    目录 一.概念及相关术语 概念 相关术语 ①横切关注点 ②通知(增强) ③切面 ④目标 ⑤代理 ⑥连接点 ⑦切入点 作用 二.基于注解的AOP 技术说明 准备工作 创建切面类并配置 各种通知 切入点表 ...

  2. 安装MacOS - 初学者系列 - 学习者系列文章

    上次安装了个VMWare Workstation 17.5.0的精简注册版,昨天打开软件,发现竟然支持了MacOS操作系统了,所以就想把安装的过程记录一下. 1. 准备虚拟机: 1) 下载精简版: 从 ...

  3. 数字孪生与VR设备的融合为旅游行业带来革新

    数字时代的推动下,旅游行业正迎来一场革命性的变革.数字孪生系统与虚拟现实(VR)的融合为旅游体验带来了全新的可能性.通过数字孪生技术的实时模拟和VR设备的沉浸式体验,旅游行业迎来了全新的变革时代. 数 ...

  4. 将MultipartFile对象转换成File对象

    将MultipartFile对象转换成File对象 // 将MultipartFile对象转换成File对象 private File convertToFile(MultipartFile mult ...

  5. Python——第三章:函数的定义

    函数的定义: 对某一个特定的功能或者代码块进行封装. 在需要使用该功能的时候直接调用即可 格式: def 函数的名字(): 被封装的功能或者代码块->函数体 调用: 函数的名字() 使用函数的好 ...

  6. vue模板的首次渲染,和重新渲染,有哪些区别?

    搞明白这个,能帮助我们理解开发中出现的很多问题. 一.我们先来回顾一下vue模板的渲染过程: (1)执行render函数,生成虚拟DOM. render函数是根据render.templete.el这 ...

  7. Kubernetes Headless服务

    1.概述 Headless Services是一种特殊的service,其spec:clusterIP表示为None,这样在实际运行时就不会被分配ClusterIP,也被称为无头服务,通过DNS解析提 ...

  8. Prometheus配置Basic Auth进行安全防护,实现登录控制

    本文分享自华为云社区<Prometheus配置Basic Auth进行安全防护,实现登录控制>,作者:可以交个朋友. 一.Prometheus Basic Auth 使用背景 在日常pro ...

  9. 【华为云技术分享】DLI跨源|当DLI遇见MongoDB

    导语: MongoDB作为灵活高效易扩展的no-schema数据库,越来越受到互联网公司.游戏行业等开发者的青睐,但是MongoDB有着独特的语言接口,并不能很好满足数据分析师构建数据治理应用的需求, ...

  10. 华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?

    摘要:GaussDB(openGauss) 基于华为云底座,能够快速全球化部署,同时支持用户的本地化部署诉求,跟云上生态工具紧密结合让用户在迁移.开发.运维上省时省心. GaussDB(openGau ...