根据scikit-learn中StandardScaler对象的文档:
例如,学习算法的目标函数中使用的许多元素(例如支持向量机的RBF内核或线性模型的L1和L2正则化器)都假定所有特征都围绕0居中并且具有相同顺序的方差。如果某个特征的方差比其他特征大几个数量级,则它可能会支配目标函数,并使估计器无法按预期从其他特征中正确学习。
分类前应先缩放特征。有什么简单的方法可以说明为什么我应该这样做?引用科学文章会更好。我已经找到了,但可能还有很多。
根据scikit-learn中StandardScaler对象的文档:
例如,学习算法的目标函数中使用的许多元素(例如支持向量机的RBF内核或线性模型的L1和L2正则化器)都假定所有特征都围绕0居中并且具有相同顺序的方差。如果某个特征的方差比其他特征大几个数量级,则它可能会支配目标函数,并使估计器无法按预期从其他特征中正确学习。
分类前应先缩放特征。有什么简单的方法可以说明为什么我应该这样做?引用科学文章会更好。我已经找到了,但可能还有很多。
Answers:
所有内核方法均基于距离。RBF核函数是(使用γ = 1为简单起见)。
鉴于3的特征向量:
然后,即X 1是所谓更类似于X 3再到X 2。
之间的相对差和: X 2 → [ 0.1 ,0 ,0 ] ,
因此,没有缩放,我们得出结论,更类似于X 3不是X 2,即使每个要素之间的相对差异X 1和X 3是比那些大得多X 1和X 2。
换句话说,如果不将所有要素缩放到可比较的范围,则具有最大范围的要素将完全主导内核矩阵的计算。
您可以在以下论文中找到简单的示例来说明这一点:支持向量分类的实用指南(第2.2节)。
这取决于您使用的内核。迄今为止,除线性外,最常用的是高斯核,其形式为
哪里 是您的示例,并且的价值 是地标。
如果功能 该功能的范围是0-50,000 范围从0-0.01,您可以看到 将占主导地位,而 几乎没有影响。因此,在应用内核之前必须先缩放特征。
如果您想了解更多信息,我建议您在Coursera的斯坦福在线机器学习课程中学习模块12(支持向量机)(免费并随时可用):https : //www.coursera.org/course/ml