在sklearn的SVC函数中,有两个非常重要的超参数:gamma和C
其中C = 1/alpha,C越大,表示正则化效果越弱,模型越复杂,容易过拟合;C越小,表示正则化效果越强,模型越简单,容易欠拟合;
gamma是kernel=‘rbf’时自带的参数,公式表现为?(?,?′)=exp [−?⋅ ||?−?′|| 2],其中? = 1/(2*sigma^2),sigma为正态分布的参数
由下图可知:
当gamma增大时,sigma减小,高斯分布就会又高又窄,会造成只会作用于支持向量样本附近,对于未知样本分类效果很差,存在训练准确率可以很高,而测试准确率不高的可能,即过拟合;
当gamma太小时,sigma很大,高斯分布就会又矮又胖,会使得训练和测试准确率都不高,即欠拟合;
还有一点经验是:当gamma很大时,调整C几乎没有影响;当gamma很小,C控制正则化效果
下图是各个参数的比较: