机器学习——图解SVM中gamma和c参数的作用
参数c和gamma的作用
我们通过下图详解参数c的作用,首先我们以一个简单的线性分类器为例,上一个博客中我们知道影响分类器的主要因素是支持向量,即虚线上的样本,如下图可知:
但当正负样本的分布在如下情况时,需要引入核函数对数据进行高维度的映射,具体如下图:
实线为决策平面,虚线上的样本为支持向量。
参数c
上图中我们知道决策平面与支持向量之间有一个距离差,而在实际工程中,参数c正是影响了支持向量与决策平面之间的距离,具体效果为:
c越大,分类越严格,不能有错误
c越小,意味着有更大的错误容忍度
具体可以通过下图展示:
c越大分类结果越好相应的泛化能力降低,c越小,我们的决策边界更大一些,即在训练时容忍一些样本的误差,拿一些边界更宽的样本作为支持向量。
参数gamma
参数gamma主要是对低维的样本进行高度度映射,gamma值越大映射的维度越高,训练的结果越好,但是越容易引起过拟合,即泛化能力低。具体效果如下图表示:
当gamma较大时,决策平面如一个梅花,分类的效果好,但是模型的鲁棒性不一定高。
因此我们需要合理的选择c和gamma的值,使得在训练结果准确的同时,测试结果同样相对高,即鲁棒性能力强。
总结
在实际工程应用中,我们需要不断的调整gamma和c的值,并对数据不断地进行交叉验证,使得模型的预测结果更高。此时对应的训练结果w和b作为svm最终的训练结果。
本文参考:《【机器学习】图解SVM中gamma和c参数的作用》