确定 SVM 最佳 C 和 gamma 参数的搜索范围是多少?

机器算法验证 分类 支持向量机 内核技巧
2022-01-25 16:31:24

我正在使用 SVM 进行分类,并且正在尝试确定线性和 RBF 内核的最佳参数。对于线性内核,我使用交叉验证参数选择来确定 C,对于 RBF 内核,我使用网格搜索来确定 C 和 gamma。

我有 20 个(数字)特征和 70 个训练示例,应该分为 7 个类。

我应该使用哪个搜索范围来确定 C 和 gamma 参数的最佳值?

2个回答

查看SVM 分类的实用指南以获取一些提示,尤其是第 5 页。

我们建议使用交叉验证进行“网格搜索” 。尝试了各种值对,并选择了具有最佳交叉验证精度的值。我们发现尝试指数增长的序列是识别良好参数的实用方法(例如,)。Cγ(C,γ)CγC=25,23,,215;γ=215,213,,23

请记住首先规范化您的数据,如果可以,请收集更多数据,因为从外观上看,您的问题可能严重不足。

查看Chapelle 和 Zien的这篇论文的第 2.3.2 节。他们有一个很好的启发式方法,可以为RBF 内核和SVM 的选择一个好的搜索范围。我引用σC

为了确定剩余自由参数的良好值(例如,通过 CV),在正确的范围内进行搜索很重要。因此,我们修复了具有正确数量级的的默认值。类问题中,我们使用所有数据点的成对距离的默认值的默认值的倒数,可以通过 来自核矩阵Cσc1/cDijρσCs2s2=1niKii1n2i,jKijn×nK

之后,他们使用默认值的倍数(例如 for)作为使用交叉验证的网格搜索中的搜索范围。这对我来说总是很好。2kk{2,...,2}

当然,我们@ciri 说,规范化数据等总是一个好主意。