ML算法(二)——SVM的原理

 参考:(5条消息) Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM_Jack-Cui-CSDN博客

【机器学习实战】【python3版本】【代码讲解】_哔哩哔哩_bilibili

SVM简介

支持向量机(support vector machines, SVM)是一种二分类模型,定义在特征空间上的间隔最大的线性分类器,还包括核技巧。SVM的学习策略就是间隔最大化,SVM的学习算法就是求解凸二次规划的最优化算法。涉及到KKT条件,拉格朗日对偶,二次规划等数学知识。SVM主对付小样本问题,对于如今大数据时代,存在较大弊端,但其具有非常严格的理论推导,值得GET。

支持向量: 支持起超平面的样本点即为支持向量

核函数:本质上为一种非线性映射函数,目的是将输入空间映射到高维特征空间,从而将在低维线性不可分的模式转换为高维线性可分的模式,同时核函数将m维高维空间的内积运算转化为n维低维输入空间的核函数计算,从而避免了“维数灾难”,大大简化计算。

常用核函数:

线性核(Linear Kernel)    即不使用核函数 

多项式核(Polynomial Kernel)

有三个参数设置,degree:多项式核函数的阶数,默认3;-a用来设置核函数中的gamma参数设置,和RBF作用相同,默认是1/k(k为样本个数);-c用来设置核函数中的coef0(类似于b),默认值是0.

径向基核函数(Radial Basis Function): 

应用最广泛,有一个参数。- g用来设置核函数中的gamma参数设置,默认是1/k(k为类别数)

 高斯核(Gaussian Kernel):

 Sigmoid核(Sigmoid Kernel):

有两个参数,-a用来设置核函数中的gamma参数设置,也就是公式中的第一个a(gamma),默认是1/k(k为类别数)。-c用来设置核函数中的coef0

support vector machines

惩罚项参数C作用等效于正则化参数1/λ, gamma参数作用等效于δ,表示函数值跌落到0的速度,其实就是标准差。

 推荐:LIBSVM

SVM算法原理

SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。 

 如图,wx+b=0 即为分离超平面

 

preview

 具体参考(5条消息) Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM_Jack-Cui-CSDN博客   写的超详细!

  拉格朗日函数:

 KTT条件:

 SMO算法:目标是求出一系列alpha和b,一旦求出了这些alpha,就很容易计算出权重向量w并得到分隔超平面。

工作原理:每次循环中选择两个alpha进行优化处理。

 

对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。由于在线性支持向量机学习的对偶问题里,目标函数和分类决策函数都只涉及实例和实例之间的内积,所以不需要显式地指定非线性变换而是用核函数替换当中的内积。核函数表示,通过一个非线性转换后的两个实例间的内积。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值