向量遍历_支持向量机

news/2024/8/26 9:55:28 标签: 向量遍历

0b0bd014457c1a7f1bb2ec50d53d9a8a.png

1. 线性可分支持向量机

  • 线性可分条件:给定训练数据集T,通过间隔最大化学习得到分离超平面:
    ,以及决策函数:
    称为线性可分支持向量机。实际上就是用超平面可以进行分类的数据集。
  • 函数间隔:
  • 几何间隔:
    在二维中就是点到直线的距离
  • 最大化几何间隔:

化简为

  • 线性可分支持向量机学习算法——最大间隔法

输入:训练数据集

输出:超平面

,决策函数

(1)求解上述条件极值的极值点(上面的优化问题)

(2)得到超平面和决策函数

  • 定理:最大间隔分离超平面存在且唯一

支持向量:离超平面距离最近的点

  • 对偶问题

拉格朗日函数:

对偶问题:

(1)求

(2)求

(3)解出

,(已解得
),取
对应的

  • 支持向量:训练数据集中对应于
    的样本点
    的实例
    称为支持向量机

2.(线性不可分)支持向量

  • 支持向量机的原始问题

  • 对偶问题
  • 解出
    (已由对偶问题解得
    对应的
  • 支持向量:同样
    对应的
    为支持向量

(1)

,则
在间隔边界上

(2)

,则分类正确,
在间隔边界与超平面之间

(3)

,则
在超平面上

(4)

,则分类有误
  • 合页损失函数

定义:

合页损失函数:

经验风险函数:

定理:最小化经验风险与支持向量机的原始问题等价

3. 核函数

  • 定义核函数:输入空间
    ,特征空间
    ,有映射

,函数

:核函数,
:内积
  • 核技巧:观察到目标函数和决策函数

其中只有向量之间的内积,因此只需要知道核函数而不需要解出映射函数

  • 正定核的充要条件:设
    是对称函数,则
    为正定函数的充要条件是
    对应的Gram矩阵
    是半正定矩阵
  • 常用核函数

(1)多项式核函数:

​ 决策函数:

(2)高斯核函数:

​ 决策函数:

(3)字符串核函数

:字符表
:从
中取有限个字符组成的字符串

的长度
:用来表示
中的每一个元素

:长度为n的字符串集合
:所有字符串集合

的子串

:指标序列,满足
,但是可以跳越,如

:指标序列的长度,注意这里的长度不同于

假设

,其中
表示定义在
上的实数空间,每一维对应一个字符串

:对应
中向量在​
维上的取值,即

:衰减参数,
为i的长度,求和在
中所有与
相同
的子串上进行

例:

为英文字符集
,其中下划线'_'代表空格

核函数:

(这也是特征向量的余弦相似度)

4. 序列最小化算法SMO

  • 序列最小化思想

解决问题:

选择2个变量,固定其他变量,针对这2个变量构建二次规划问题

  • 2个变量的二次规划问题

考虑

​,选​
为变量,原​
,优化后

已知

为预测与真实值
之间的误差

由定理知

其中

剪辑后:

  • 选择两个
    的方法以及计算
    的方法

(1)第一个变量:检验训练样本点

是否满足KTT条件

(2)第二个变量:找

最大值,或者遍历间隔边界上支持向量点,直到找到目标函数有足够的下降

(3)更新b

有参考代码为《机器学习实战》的代码,以后更新代码的分析。


http://www.niftyadmin.cn/n/1032045.html

相关文章

saltstack的部署、认证机制|、远程执行、目标匹配

saltstack的部署、认证机制、远程执行、目标匹配(写博客) 1. SaltStack介绍 1.1 自动化运维工具 作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工…

unity2018关联不到vs_vs2017里装了一个unity,现在又装了一个unity3d2018,有何区别?...

一个unity project只能对应一个特定的unity版本,通常来讲,不可混淆但大概率向下兼容可以,向上不行。同一个大版本可以互相打开。比如,同为2018.2系列的任何小版本都可以打开同一份工程。这里面有一个特例,每年最后一个…

UWA GOT | 三分钟带你玩转Unity性能优化!

原文链接:https://blog.uwa4d.com/archives/uwagot_usage.html 不久前,UWA发布了本地版性能测试工具:Game Optimization Toolkit(简称:UWA GOT),它既能方便研发团队在本地直接进行真机测试&…

saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用

saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用 1. YAML语言 YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。 它类似于标…

资源管理也能快如闪电!

原文链接:https://blog.uwa4d.com/archives/ResManagement.html 几乎所有的Unity开发者都曾为AssetBundle管理机制填过“坑”。如何巧妙合理地设计AssetBundle的依赖关系来尽可能减小包体的大小?怎样针对不同的资源选择不同的API来提高加载的效率&#x…

SaltStack常用的模块

SaltStack常用的模块 1. SaltStack模块介绍 Module是日常使用SaltStack接触最多的一个组件,其用于管理对象操作,这也是SaltStack通过Push的方式进行管理的入口,比如我们日常简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过…

怎么设置图表左对齐_这3个Excel图表技巧,很可能被你忽略了

本文将重点介绍三个Excel图表相关的技巧,掌握后可以节省你做图表报告的时间喔~1 让图表不再消失有没有试过,当你做好图表后,然后把数据源隐藏(或者你使用分组数据、筛选数据时),然后图表竟然也不见了!来,马…

游戏中的角色渲染技术之皮肤篇

原文链接https://blog.uwa4d.com/archives/Usparkle_Skin.html 这是侑虎科技第253篇原创文章,感谢作者洛城供稿,欢迎转发分享,未经作者授权请勿转载。当然,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。&a…