机器学习之支持向量机

目录

一、数学知识(不重要,可直接结论)

1.1平面方程

1.2决策方程

1.3支持向量

1.4目标函数

1.5求解

二、核函数

2.1数学模型

2.2核函数

2.3常见核函数

线性核

多项式核

高斯核

拉普拉斯核

Sigmoid核

核函数的组合

2.4核方法

三、软间隔

常用替代损失函数

hinge损失

指数损失

对率损失

四、支持向量回归

五、Python中的函数


支持向量机的主要任务就是从样本空间中找到合适的划分超平面,将属于不同类别的样本分开。

我们希望找到的决策边界距离两个类别中位于边界上的点最远。

一、数学知识(不重要,可直接结论)

不重要,知道结果即可

1.1平面方程

样本空间中的划分超平面的线性方程可描述如下:

为法向量,决定平面方向

b为平面与原点的距离

划分超平面被记为(w,b)

样本空间中任意一点x到平面的距离为

1.2决策方程

其中,对于x,需要一定的数学处理。

对于样本空间中的,其中前者为样本的属性,后者为类别

当x为正例时,Y=+1

当x为负例时,Y=-1

定义分类对应的关系式如下

1.3支持向量

使得等号成立的是距离超平面最近的几个点,它们即为支持向量。

两个异类支持向量到平面的距离为

它被称为间隔。

我们的目标就是找到参数使得间隔最大。

1.4目标函数

因此,目标函数为

对于第二行中的"s.t."意思是"使得······(后面的式子)满足"

为什么要乘以yi,是为了将正负的两个式子整合在一起。

1.5求解

目标函数实际上是一个凸二次规划问题

运用拉格朗日乘子法进行求解

该问题的拉格朗日函数为

其中,

分别对w和b求偏导,并令偏导为0

消去上述拉格朗日函数中的w和b

得到目标函数的对偶问题

之后,对求极大值

最终,是对以下式子求解

其中,仍有约束条件

求出后,再去求w和b

为了解决过拟合,可以加入松弛因子

新的目标函数

C趋近很大的时候,要求严格

C趋近很小的时候,要求不严格

二、核函数

2.1数学模型

如果训练的样本线性不可分,那么可以将样本从原来的空间映射到一个更高维的空间,使得样本在高维空间线性可分。

设变换方法为

则划分超平面对应的模型为

求解的目标函数为

对应约束条件为

其中

表示样本映射到高维空间后的内积,可通过核函数计算

2.2核函数

k(xi,xj)就是核函数

引入核函数后,划分超平面对应的模型为

如果一个对称矩阵所对应的核矩阵半正定,它就可以核函数。

有如下定理:

为输入空间,为定义在上的对称函数,则k是核函数当且仅当对于任意数据,核矩阵K是正定的

每一个核函数都定义了一个称为"再生核希尔伯特空间"的特征空间。

2.3常见核函数

线性核

多项式核

d>=1为多项式的次数

高斯核

,为高斯核的带宽

拉普拉斯核

Sigmoid核

tanh为双曲正切函数

核函数的组合

核函数的组合也是核函数

线性组合结果是核函数

直积结果也是核函数

也是核函数

2.4核方法

基于核函数的学习方法

核化:引入核函数

核化使得线性学习器转为非线性学习器

三、软间隔

软间隔即允许对样本的划分出错

优化目标为

其中

是"0/1损失函数",非凸,非连续,可用"替代损失"函数进行代替

常用替代损失函数

hinge损失

指数损失

对率损失

四、支持向量回归

支持向量回归SVR

当f(x)与y之间的差别达到一定范围才计算损失。

即以f(x)为中心,构建一定宽度的隔离带,当样本落入隔离带,则被认为是正确的。

五、Python中的函数

都在sklearn.svm中

参考文献:周志华《机器学习》

相关推荐
骊城英雄几秒前
Rust从入门到精通-trait
人工智能·算法·rust
可编程芯片开发34 分钟前
基于PI控制算法的pwm直流电机控制系统Simulink建模与仿真
算法
怕浪猫1 小时前
2840亿参数只卖白菜价:DeepSeek V4 Flash 正式版上线,Agent 能力暴涨6倍
人工智能·算法
让学习成为一种生活方式1 小时前
苄基异喹啉生物碱糖基转移酶UGT74AN1晶体--Journal of Agricultural and Food Chemistry
人工智能·算法
alphaTao1 小时前
LeetCode 每日一题 2026/7/27-2026/8/2
python·算法·leetcode
布鲁飞丝2 小时前
彩笔运维勇闯机器学习--cpu与qps的线性关系
运维·人工智能·机器学习
2501_926978332 小时前
提示工程的实战报告(二):模型的失败模式与边界行为
人工智能·深度学习·算法
小小晓.2 小时前
C++记:函数
开发语言·c++·算法
casual~2 小时前
模逆元计算方法详解:扩展欧几里得算法与费马小定理
学习·算法·逆元
LayZhangStrive2 小时前
线性代数 - 第1章 行列式
人工智能·线性代数·机器学习