SVM 网格搜索是否应该显示周围精度较低的高精度区域?

机器算法验证 支持向量机
2022-03-18 07:53:29

我有 12 个积极的训练集(用药物治疗的癌细胞,每种都有 12 种不同的作用机制)。对于这些正训练集中的每一个,我想训练一个支持向量机,以将其与从实验中采样的相同大小的负集区分开来。每组有 1000 到 6000 个细胞,每个细胞有 476 个特征(图像特征),每个都线性缩放到 [0, 1]。

我使用LIBSVM和高斯 RGB 内核。使用五折交叉验证,我对 log₂ C ∈ [-5, 15] 和 log₂ ɣ ∈ [-15, 3] 进行了网格搜索。结果如下:

网格搜索结果

令我失望的是,没有一组参数可以为所有 12 个分类问题提供高精度。我也很惊讶网格通常不会显示被较低精度包围的高精度区域。这是否只是意味着我需要扩展搜索参数空间,或者网格搜索是否表明其他问题?

1个回答

对于不同的学习任务,超参数的最佳值会有所不同,您需要针对每个问题分别调整它们。

您没有获得单一最优值的原因是因为内核参数和正则化参数都控制着模型的复杂性。如果 C 很小,你会得到一个平滑的模型,同样如果内核很宽,你会得到一个平滑的模型(因为基函数不是很局部)。这意味着 C 和内核宽度的不同组合会导致相似的复杂模型,具有相似的性能(这就是为什么您在许多图中获得对角线特征的原因)。

最优值还取决于训练集的特定采样。过度拟合交叉验证错误是可能的,因此如果运气不好,通过交叉验证选择超参数实际上会使性能变差。有关这方面的一些讨论,请参阅Cawley 和 Talbot

事实上,超参数的值有一个广泛的平台,你会得到类似的好值,这实际上是支持向量机的一个很好的特性,因为它表明它们在模型选择中不太容易受到过度拟合的影响。如果您在最佳值处有一个尖锐的峰值,那将是一件坏事,因为使用有限数据集很难找到该峰值,这将提供该峰值实际所在位置的不可靠指示。