在 SVM 分类中,原始数据优于 Z-score 转换数据

机器算法验证 分类 支持向量机 scikit-学习 正常化
2022-04-09 19:55:50

我一直在尝试使用 SVM 分类器(带有 RBF 内核的 scikit-learn 的 SVC)执行二进制分类。我有一个大约 100 个样本,每个大约有 70 个特征。这些特征在其原始形式中的数量级大致相同,并且值往往已经分布在 0 附近(尽管并非总是如此)。下面的直方图中显示了两个这样的特征的分布。 特征分布示例

我对所有特征进行了 Z 分数转换,因为我知道在机器学习中使用多个特征时,这被认为是一种很好的做法。问题是当我使用原始数据时,我总是设法获得比 Z 分数更好的准确度(大约 2-3%)。请记住,每种情况下 SVM 的参数都是使用网格搜索优化的,所以我没有使用完全相同的分类器。

这有意义吗,用 Z 分数得到更差的结果?我希望得到相同或更好的结果。这背后的数学逻辑可能是什么?

编辑

要回答评论和答案中的两个常见问题:

  1. 我的班级确实是平均分配的(正好 50%/50%)
  2. 我还使用精度以外的测量方法(AUC、F1 等),但是在这个项目上工作了一段时间后,精度与我的需求密切相关。
3个回答

请记住,为什么人们通常会在估计 SVM 之前对特征进行缩放。这个概念是数据在不同的尺度上,并且这种偶然的测量方式可能是不可取的——例如,以米和公里为单位测量一些长度量。显然,即使两者代表相同的物理量,它们的范围也会大得多。

但是,没有理由认为新的缩放比例必须更好。虽然重新缩放的特征在可比较的单位中都会有所不同,但也有可能原始缩放恰好对数据进行了编码,使得一些重要的特征在模型中更加突出。

考虑两个不同版本的高斯 RBF 内核的示例:这是一个各向同性内核,这意味着在所有方向上都应用更一般的核函数可能具有以下形式它是各向异性的,因为是对角 PSD 矩阵,每个元素对每个方向应用不同的缩放比例。这个核函数的优点是它在某些方向上的变化会比其他方向更强烈。K1(x,x)=exp(γ||xx||22).γK2(x,x)=exp((xx)Γ(xx));Γ

回到您的问题,可以想象,无论出于何种原因,您的数据具有一些比其他特征更重要的特征,并且这与测量它们的尺度相吻合。将它们放在新的尺度上,它们都出现在相似的尺度上,并且都被视为同等重要,这意味着不重要的或噪声特征会使信号变得模糊。

顺便说一句,不要使用准确性作为比较模型的指标:

SVM 通过岭正则化最小化铰链损失

minwi(1yiwxi)++λ||w||2

因此,当我们有正则化项时,缩放会产生差异。

我的假设是你的特征的原始规模会影响不同特征的正则化并使性能更好,但在缩放之后,这种情况就消失了。

例如,您有 2 个特征,第一个特征的比例为,第二个特征的比例为10,0000.1

  • 如果您不执行缩放,SVM 将对第二个特征进行更多正则化,并且对第一个特征的权重几乎没有影响。
  • 如果您确实执行缩放,SVM 将平等地规范这两个特征

您可以验证我的假设以检查数据中的“特征重要性”。如果您看到,较大量级的功能更为重要,同时您在小范围内拥有“许多无用功能”。那么,我的假设可能是正确的。

两点:

  • 第一:你的班级分布均匀吗(我认为这是在 General Abrial 的链接中;但我没有读过它,所以不确定)?即您有 50% 的 A 类和 50% 的 B 类吗?或者是你有一个班级更占主导地位?准确性对类不平衡问题非常敏感。例如,如果 90% 的测试用例是 A,10% 是 B 类,那么总是预测“A”的愚蠢分类器将获得 90% 的准确率(显然不是一个好的分类器,但得到了 90%)。因此,您应该告诉我们类别的分布,以便我们得出结论,准确度提高 2% 到 3% 是否实际上是由于良好的泛化(而不是利用不平衡的类别分布微不足道的愚蠢模型) )。
  • 第二:一旦我们对准确性没有被滥用感到高兴,并且在我们试图解释/证明可能导致准确性提高 2% 到 3% 的原因之前,首先回答这个问题非常重要:这种差异是否显着开始?还是纯粹因为运气不好?

    我们有两个假设:

    • Null:没有系统差异,观察到的变化是随机的。
    • Alt:存在系统性差异。

    在我看来,当准确率差异只有 2% 到 3% 时,通常 100 个样本太少而无法拒绝原假设。

    我真的认为您需要显示统计显着性检验。根据经验,鉴于您的样本只有 100 个,我认为您将无法拒绝p0.05

    在我看来,这种 2% 到 3% 的差异很可能是由于与决定训练测试拆分或 k 折交叉验证的初始随机化相关的随机性。

总之:

  • 报告 A 类样本数与 B 类样本数之比。
  • 报告观察到的精度差异值。p

基于此,我们可以得出一些疯狂的结论,例如如果更准确的分类器对多数类盲目敏感,那么它实际上可能是劣等的。但也许我们也可以得出你所期望的结论。无论如何,在我看来,输入不足以了解正在发生的事情,我们需要首先解决上述问题。