【svm学习笔记】svm_理论基础5
2012-08-30 00:10
344 查看
【线性不可分问题 之 松弛变量】
经过核函数变换,原则上已经能把绝大多数样本分开了(如果还不能大规模分开,那要查一查特征选择那块儿了,是不是抽取特征太少,或者抽取方法不对),剩下的少量样本还不能分开,怎么办?
这里的办法是特殊样本特殊对待,如果样本很“离群”,我们就认为是噪声,不加理会;如果不太“离群”,我们就要多花精力去看看。不过思路是这样,怎么体现在目标优化函数上?这就引入了松弛变量。当我们用固定间隔去分类的时候,叫做“硬分类”;如果对每个训练样本一个不同的间隔,不就可以解决上面的问题么,这叫做软分类。
为了方便对比,我们把原来优化的目标函数也列出来,如下:
min pow (||w||, 2.0) / 2
subject to y(i) ( <w * x(i)> + b ) -1 >= 0
新的目标函数调整如下:
min pow (||w||, 2.0) / 2 + C * SUM_i ( eps(i) )
subject to y(i) ( <w * x(i)> + b ) >= 1 - eps(i)
又一次感受到了在这里面输入公式的痛苦。简单解释一下,先看约束条件部分的修改,对于样本i,增加了它对应的松弛变量 eps(i),eps是epsilon的缩写,是希腊的第五个字母。这里面,知道他是一个比较小的实数就可以了,至少比1小。再看一下目标函数,变化也不大,加上了所有样本的松弛变量的和,同时乘以一个系数C。
据说,变换后的问题,依然是有解的,也是可以解的。至于是怎么解的?没说。不过线性可分的时候也没说完么。对于我们来讲,直到它有解就可以了。
那么这一节我的收获是什么呢?仅仅是知道线性不可分问题通过核函数和松弛变量可以转化为线性可分问题?我个人的收获是:
1. 松弛变量不重要,但是C很重要。在svm中被称为惩罚因子。
2. 其作用是在建模的时候以多大程度来重视那些离群点。C越大,表示惩罚越大,越重视,模型会尽量迎合这些点;否则,越不重视。
3. 可以有不止一个C,例如:对于每个类别都有不同的C。这很有现实意义,当某些样本点在现实中需要更加重视的时候,或者说对这类样本点的误分会造成较大影响时,C要设置的比较大。通常,不同C的取值可以简单的按照样本之间的比例来,如:正反例样本比例失衡(这也被称为样本集偏斜问题——unbalanced,在垃圾文本过滤的时候就是这样),比例为500:1,即每500个正例样本,只对应1个反例样本。此时反例样本更加珍贵。那么,整理惩罚之间的比例与样本数目之间成反比。如:C+设置为1,C-就设置为500(样本比例是N+:N-
== 500:1)。
好了,把我这两天看懂的,都说了,接下来要看看那个凸二次规划到底怎么解决的?模型是怎么训练出来的。有的看了。
经过核函数变换,原则上已经能把绝大多数样本分开了(如果还不能大规模分开,那要查一查特征选择那块儿了,是不是抽取特征太少,或者抽取方法不对),剩下的少量样本还不能分开,怎么办?
这里的办法是特殊样本特殊对待,如果样本很“离群”,我们就认为是噪声,不加理会;如果不太“离群”,我们就要多花精力去看看。不过思路是这样,怎么体现在目标优化函数上?这就引入了松弛变量。当我们用固定间隔去分类的时候,叫做“硬分类”;如果对每个训练样本一个不同的间隔,不就可以解决上面的问题么,这叫做软分类。
为了方便对比,我们把原来优化的目标函数也列出来,如下:
min pow (||w||, 2.0) / 2
subject to y(i) ( <w * x(i)> + b ) -1 >= 0
新的目标函数调整如下:
min pow (||w||, 2.0) / 2 + C * SUM_i ( eps(i) )
subject to y(i) ( <w * x(i)> + b ) >= 1 - eps(i)
又一次感受到了在这里面输入公式的痛苦。简单解释一下,先看约束条件部分的修改,对于样本i,增加了它对应的松弛变量 eps(i),eps是epsilon的缩写,是希腊的第五个字母。这里面,知道他是一个比较小的实数就可以了,至少比1小。再看一下目标函数,变化也不大,加上了所有样本的松弛变量的和,同时乘以一个系数C。
据说,变换后的问题,依然是有解的,也是可以解的。至于是怎么解的?没说。不过线性可分的时候也没说完么。对于我们来讲,直到它有解就可以了。
那么这一节我的收获是什么呢?仅仅是知道线性不可分问题通过核函数和松弛变量可以转化为线性可分问题?我个人的收获是:
1. 松弛变量不重要,但是C很重要。在svm中被称为惩罚因子。
2. 其作用是在建模的时候以多大程度来重视那些离群点。C越大,表示惩罚越大,越重视,模型会尽量迎合这些点;否则,越不重视。
3. 可以有不止一个C,例如:对于每个类别都有不同的C。这很有现实意义,当某些样本点在现实中需要更加重视的时候,或者说对这类样本点的误分会造成较大影响时,C要设置的比较大。通常,不同C的取值可以简单的按照样本之间的比例来,如:正反例样本比例失衡(这也被称为样本集偏斜问题——unbalanced,在垃圾文本过滤的时候就是这样),比例为500:1,即每500个正例样本,只对应1个反例样本。此时反例样本更加珍贵。那么,整理惩罚之间的比例与样本数目之间成反比。如:C+设置为1,C-就设置为500(样本比例是N+:N-
== 500:1)。
好了,把我这两天看懂的,都说了,接下来要看看那个凸二次规划到底怎么解决的?模型是怎么训练出来的。有的看了。
相关文章推荐
- 【svm学习笔记】svm_理论基础3
- 【svm学习笔记】svm_理论基础4
- 【svm学习笔记】svm_理论基础2
- 【svm学习笔记】svm_基础理论1
- IOS学习笔记 多线程基本理论基础(1)
- [python基础理论]python学习笔记2
- [python基础理论]python学习笔记4
- Gan(Generative Adversarial Net)学习笔记(1)--- Gan的基础理论
- 算法设计和复杂性理论学习笔记_2(数学基础)
- 机器学习深度学习基础笔记(1)——基础理论
- IOS学习笔记 运用Quartz 2D框架绘图理论基础(1)
- 密码学基本概念与信息理论基础学习笔记
- HTTPS学习笔记一----HTTPS的基础理论知识
- JS学习笔记-基础理论+数组
- 【svm学习笔记】svm_理论学习图谱_下
- 自定义View学习笔记01—基础理论
- Linux学习总结笔记(一):硬件理论基础
- OSPF基础理论和过程--CCNP学习笔记
- [python基础理论]python学习笔记1
- 机器学习(二)--- SVM学习:理论基础理解