支持向量机
优化目标
模型转换
- 在y=0/1时,分别将逻辑回归模型曲线转换为近似的折线
- y=0时, 转折点在 z = θ T x z=\theta^Tx z=θTx = -1处, z > − 1 z > -1 z>−1时,cost > 0
- y=1时, 转折点在 z = θ T x z=\theta^Tx z=θTx = 1处, z < 1 z < 1 z<1时,cost > 0
代价函数
模型特征
相比逻辑回归,支持虚拟机公式对代价函数进行了以下改变
- 移除了m项,移除此项不影响梯度下降结果
- 将 c c c替换了 1 λ \dfrac{1}{\lambda} λ1,不影响正则化结果
- 假设方程项发生了改变
假设方程
假设方程不再进行公式运算,而是简单的二元判断
模型原理
数学边界
- θ T x > = 1 \theta^Tx >= 1 θTx>=1,y = 1
- θ T x < = − 1 \theta^Tx <= -1 θTx<=−1,y = 0
通过扩大边界范围,支持虚拟机给我们带来了更加严格的分类标准(0 --> 1)
最大间隔分类器
支持向量机的决策边界即最大间隔分类器,边界值离不同分类样本间的垂直距离最远,这也是数学上的更严格在几何上的体现
在最大边界分类器中,边界改变的可能性由C反映
- C大时,即 λ \lambda λ小,此时模型接近过拟合,曲线灵敏度高,出现图中边界线由于一个值的增加就发生改变的情况
- C小时,即 λ \lambda λ大,曲线平稳性更强,不容易发生改变
数学原理 - 略,宜看视频
核心程序
核心程序是使用虚拟向量机获得复杂非线性分类器的关键
概念解析
f特征量
使用f项代替样本多项式(在之后都是用的是近似方程),统一称为特征,寻找最佳特征,拟合边界曲线,很快我们就会知道,这个最佳多项式就是近似方程(一种高斯方程),f项随后可以理解为对样本使用高斯近似方差后的结果
近似核心方程
近似的概念是相对的,我们需要设定地标,对这些地标点使用近似方程,如下图中的
l
(
1
,
2
,
3
)
l^{(1,2,3)}
l(1,2,3)
此中核心就是高斯方程(即近似方程,similarity function),所以我们又称之为高斯核心
近似方程的使用:
- 如果x坐标接近样本点 l ( 1 ) l^{(1)} l(1),近似方程结果为1
- 如果远离,近似方程结果为0
近似方程中需要注意的参数是
σ
\sigma
σ,
σ
\sigma
σ越大,曲线越胖,顶点恒为一,底部预测概率则为0,如下图三维模型:
决策边界
根据最小化代价函数得到
θ
\theta
θ,带入假设方程,其实近似方程和f向量的算法对每个样本点的结果是一样的,最终分类还是依靠
θ
\theta
θ参数进行
总的来说,样本曲线接近预测结果为1的样本点
应用指南
- 选择地标
对所有的样本点 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)),选择地标 l ( i ) = x ( i ) l^{(i)}=x^{(i)} l(i)=x(i)
- 应用近似核心方程
对每个输入数据,算出它在所有特征方向对所有地标的近似核心方程,m x n
注意用于最终计算的f矩阵也要加上 f 0 f_0 f0 - 训练样本,得到
θ
\theta
θ值
训练此样本时的主要区别就是用f特征量代替了原始特征量
老规矩正则项不考虑 θ 0 \theta_0 θ0 - 计算假设方程,预测y值
参数选择
打累了上图吧
- C大,低偏置高方差
- C小,高偏置低方差
- σ 2 \sigma^2 σ2大,曲线越胖,曲线光滑,倾向于高偏置低方差
- σ 2 \sigma^2 σ2小,曲线越瘦,曲线欠光滑,倾向于低偏置高方差
实战简明教程
首先,需要声明的是使用别人写的SVM算法库是更加合理的方面,这样一来,压力就来到了参数选择方面(因为大多数时候,我们只需要填参数就够了。。。)
声明参数
- 声明C
- 声明核型程序(无核心即为线性核型方程),一般为高斯核心方程(近似核心方程)
- 声明核心程序参数,高斯核心需声明 σ 2 \sigma^2 σ2
处理高斯核心方程
- 如果要进行规模缩放,请在使用高斯核心方程之前对训练集进行处理
- 高斯核心方程需要填入训练集的输入和输出
其它核心方程
列举一下,不作多言
较多用的是多项式核心,看图蓝色部分应该就能动,就是把核心方程替换了一下而已
处理多类分类问题
大多数SVM库拥有自带的多类分类功能,如果没有,那仍使用一对多模型,注意图中的x是未经过核心程序处理的,不知道可不可以替换为f特征量进行计算
逻辑回归与SVM
逻辑回归和支持向量机又诸多相同之处,最大的不同就在于假设方程和核心程序的使用,逻辑回归的假设方程为逻辑方程,且不适用核心程序
考虑使用逻辑回归和SVM只要是样本数量m和特征维度n两方面
- n大(10000):维度多,计算量大,使用逻辑回归或者无核心支持向量机(记得高斯核心需要计算出所有特征方向上每个样本对所有样本的近似值吗)
- n小,m适中:使用高斯核心的SVM
- n小,m大:组合创造更多的特征量,然后使用逻辑回归或者无核心支持向量机(记得大数据,多特征两者共存才可以获得低方差低偏置的预测模型吗)