当前位置:首页 > 未命名 > 正文内容

[W7]优化目标

u3blog8年前 (2016-11-29)未命名206

SVM支持向量机

支持向量机是一种监督学习算法,有时比现有算法更加简洁高效。 回顾一下逻辑回归的代价函数
%e9%80%bb%e8%be%91%e5%9b%9e%e5%bd%92%e4%bb%a3%e4%bb%b7%e5%87%bd%e6%95%b0%e5%b1%95%e5%bc%80 注意展开后的第一项 %e5%b1%95%e5%bc%80%e5%90%8e%e7%ac%ac%e4%b8%80%e9%a1%b9 当 θTx远远大于1的时候,此项接近于0 当 θTx远远小于1的时候,我们可以用一条直线来替代sigmoid曲线,最终图形如下 %e4%bc%98%e5%8c%96%e7%ac%ac%e4%b8%80%e9%a1%b9 对于第二项,我们的标尺是-1 小于等于-1的时候是0,大于等于-1的时候是一条直线,如下图 %e4%bc%98%e5%8c%96%e7%ac%ac%e4%ba%8c%e9%a1%b9

KernelsI

Kernels 允许我们在SVM上创建复杂的,非线性的算法 给出一个x,可以通过计算其与地标l1,l2,l3的相似度来选取是否增加为新的特征域 例如,高斯kernel如下
%e9%ab%98%e6%96%afkernel 当x与l接近时,fi ≈ 1 当与l远离时,fi ≈ 0

Kernels II

有了高斯Kernels,我们就知道了kernels算法,那么我们的优化目标就可以用下面公式来表达了
kernels%e4%bc%98%e5%8c%96%e7%9b%ae%e6%a0%87

选择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

扫描二维码推送至手机访问。

版权声明:本文由u3blog发布,如需转载请注明出处。

本文链接:https://u3blog.xyz/?id=587

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。