过度拟合可能会降低训练精度(一类 SVM)

机器算法验证 机器学习 支持向量机 交叉验证 libsvm 过拟合
2022-03-20 11:20:40

我正在使用来自LibSVM的 heart_scale 数据。原始数据包括 13 个特征,但我只使用了其中的 2 个来绘制图中的分布。我没有训练二元分类器,而是通过仅选择标记为 +1 的数据将问题视为一类 SVM。

在我的固定为 ,我为我的 RBF 内核尝试了 6 个不同的值:理论上较小可能导致高偏差和低方差,而较大可能会相反,并倾向于过度拟合。但是,我的结果表明上述陈述仅部分正确。ν0.01γ103102101100101102γγ

  1. 随着 的增加,支持向量的数量为 3、3、3、7、35 和 89。γ

  2. 然而,另一方面,训练精度(120 个中的校正分类数据)为 117、118、119、117、96 和 69。训练误差急剧增加。

  3. 我还尝试处理二元分类器,和方差/偏差性能之间的关系符合“理论”趋势。Cγ

我试图理解为什么一类 SVM 会出现这种“矛盾”。

我还附上了下面 6 个不同超平面的轮廓。

3个回答

正确分类的比例是由虚假模型优化的不连续的不正确评分规则。我不会相信你从中学到的任何东西。

更新

LibSVM 中的一类 nu-svm 可能存在数值错误。在最佳情况下,一些训练实例应该满足w'*x - rho = 0但是,在数值上它们可能略小于零然后它们被错误地算作训练错误。由于nu是超平面错误一侧的训练点比率的上限,因此在计算第一种情况时会出现数值问题,因为某些训练点满足y*(w'*x + b) - rho = 0变为负数。

用于二分类的 nu-SVC 不会出现此问题。

作者将此问题添加到他们的 FAQ中。

-----------下面的旧答案------------------------------------ -------------------------------------

感谢@cbeleites 的说明。我调查了在一类 SVM 中的影响。我使用了 5 折交叉验证(但不是libsvm 中的选项),将数据洗牌 100 次,然后平均准确度(仍然使用正确分类的比例)。的不同组合的训练准确度、测试准确度和泛化误差(前两者之间的差异) γν'-v 5'γν

在此处输入图像描述

Cbeleites 是正确的,本身不足以确定模型的方差。欠拟合在子图(3)中非常清楚地显示,但似乎在中间部分(,我没有找到确切的坐标)周围只有轻微的过拟合。正如Cbeleites在评论中提到的那样,还有“长期最优”。基本上大可能会导致欠拟合,但过拟合对系数的依赖性并不那么明显。我使用的对数来更清楚地显示下面的较小值区域。γν0.1γ5γνγν

在此处输入图像描述

根据 Harrell 博士的建议,我尝试了对数和 Brier 评分规则。由于 libsvm 不支持对 nu-svm 进行概率估计,因此我必须使用二进制类 SVM 来进行。

在此处输入图像描述

结果图像的一些注释:

  1. 正确分类的比例与'-b 1'训练和测试中的选项不同。由于其他评分规则是用 计算的'-b 1',因此比较最后三个子图更有意义;

  2. 对数和brier的最大值和最小值相同(),子图2中的精度为,子图2中的精度为函数是连续的但不是单调的,所以我对 OP 的关注仍然存在。γ 500100%

OP 中只有 2 个特征的数字:

在此处输入图像描述