[W7]优化目标
SVM支持向量机
支持向量机是一种监督学习算法,有时比现有算法更加简洁高效。
回顾一下逻辑回归的代价函数
注意展开后的第一项
当 θTx远远大于1的时候,此项接近于0
当 θTx远远小于1的时候,我们可以用一条直线来替代sigmoid曲线,最终图形如下
对于第二项,我们的标尺是-1
小于等于-1的时候是0,大于等于-1的时候是一条直线,如下图
KernelsI
Kernels 允许我们在SVM上创建复杂的,非线性的算法
给出一个x,可以通过计算其与地标l1,l2,l3的相似度来选取是否增加为新的特征域
例如,高斯kernel如下
当x与l接近时,fi ≈ 1
当与l远离时,fi ≈ 0
Kernels II
有了高斯Kernels,我们就知道了kernels算法,那么我们的优化目标就可以用下面公式来表达了
选择SVM的参数
选择C(C=1/λ)
1.C很大,我们有高方差,低偏差
2.C很小,我们有高偏差,低方差
选择σ^2
1.很大的情况,fi变量非常平滑,导致高偏差低方差
2.很小的时候,fi变得不那么平滑,导致高方差低偏差
使用SVM
现在已经有很多现成的库来实现SVM了,比如 'liblinear' 和'libsvm',当我们使用的时候我们需要做一些选择
1.选择C
2.选择kernel方法
3.无kernel——会产生标准的线性分辨算法
4.高斯kernel需要选择σ^2
5.在n很小m很大的时候做选择
逻辑回归vsSVM
如果n很大,使用逻辑回归
如果n很小m很大,使用逻辑回归
如果n很小m适中,使用高斯Kernel的SVM