svm 中的特征缩放:它依赖于内核吗?

机器算法验证 机器学习 支持向量机 标准差 正常化 内核技巧
2022-04-11 19:44:04

在使用支持向量机时,通常建议进行特征缩放(例如通过归一化)。例如这里:

使用 SVM 时,为什么需要扩展功能?

或者在维基百科上:

应用。在随机梯度下降中,特征缩放有时可以提高算法的收敛速度。在支持向量机中,它可以减少寻找支持向量的时间。请注意,特征缩放会改变 SVM 结果。

这取决于内核吗?您是否建议在某些内核上进行功能扩展,而在其他内核上不推荐?关于什么:

  • 线性内核
  • 多项式核
  • 高斯核
  • RBF内核
  • 和其他内核?
1个回答

是的,功能扩展取决于内核,一般来说这是一个好主意。内核实际上是一个距离,如果不同的特征在不同的尺度上有所不同,那么这可能很重要。例如,对于 RBF 内核,我们有

K(x,x)=exp(γ||xx||2)
因此,如果一个维度的值比其他维度大得多,那么它将主导内核值,并且您将在其他维度上丢失一些信号。这也适用于线性内核。

但这并不适用于所有内核,因为有些内核内置了缩放功能。例如,您可以使用 ARD 内核或Mahalanobis 内核

K(x,x)=exp(γ(xx)TΣ^1(xx))
在哪里Σ^是样本协方差矩阵,或者可能只是个体方差的对角矩阵。作为一个函数xx这仍然是 PD,所以它是一个有效的内核。

作为确定这是否是任何特定内核的问题的一般策略,只需执行他们在链接问题中所做的操作,并使用类似的数据进行尝试x=(1000,1,2,3),x=(500,.5,3,2)看看第一个维度是否一定占主导地位。

尝试评估给定内核的另一种方法是尝试查看它是否继承了子功能的规模问题。例如,考虑多项式核Kpoly(x,x)=(a+cxTx)d. 我们可以把它写成线性核的函数xTx,我们已经知道它对比例敏感,而地图z(a+cz)d不会撤消规模问题,因此我们可以看到多项式内核继承了这些问题。我们可以通过将 RBF 内核编写为尺度敏感的函数来进行类似的分析||xx||2.