当我使用由75%的“ true”标签和25%的“ false”标签组成的不平衡数据集时,如何在libSVM中设置gamma和Cost参数?由于数据不平衡,将所有预测标签都设置为“ True”时经常出现错误。
如果问题不是libSVM,而是我的数据集,那么我应该如何从理论机器学习的角度处理这种不平衡?*我正在使用的功能数量在4到10之间,而我只有250个数据点。
类的不平衡与C和gamma的选择无关,要解决此问题,您应该使用类加权方案,例如,在scikit-learn
程序包(基于libsvm
)中可用
最好选择C
和gamma
使用具有交叉验证网格搜索执行。您应该在此处尝试广泛的值范围,因为C
在之间选择值是合理的1
,10^15
而gamma
范围值的简单而有效的启发方法是计算所有数据点之间的成对距离,并根据此分布的百分位数选择伽玛-考虑一下在每个点中放置一个方差等于1/gamma
-的高斯分布,如果选择gamma
该分布以使许多点重叠,则会得到非常“平滑”的模型,而使用较小的方差会导致过度拟合。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句