除了SVM之外,哪些算法需要功能缩放?


17

我正在使用许多算法:RandomForest,DecisionTrees,NaiveBayes,SVM(内核=线性和rbf),KNN,LDA和XGBoost。除了SVM之外,所有其他功能都非常快。那就是当我知道它需要功能缩放以更快地工作时。然后,我开始怀疑是否应该对其他算法执行相同的操作。



Answers:


21

通常,利用诸如k-NN和SVM之类的数据样本之间的距离相似性(例如,以标量积的形式)的算法对特征转换很敏感。

基于图形模型的分类器,例如Fisher LDA或Naive Bayes,以及决策树和基于树的集成方法(RF,XGB)对于特征缩放都是不变的,但是重新缩放/标准化数据仍然是一个好主意。


3
+1。只需注意,XGBoost实际上也基于线性增强实现了第二种算法。缩放比例会有所不同。
usεr11852恢复单胞菌说,

2
您能否详细说明如何为RF和XGB重新缩放/标准化数据?我不知道它如何影响模型的质量。
Tomek Tarczynski,

17

这是我在http://www.dataschool.io/comparing-supervised-learning-algorithms/上找到的列表,该列表指示哪个分类器需要特征缩放

在此处输入图片说明

全表:

在此处输入图片说明

k均值聚类中,您还需要标准化输入

除了考虑分类器是否利用距离或相似性(如Yell Bond提到的那样)之外,随机梯度下降法对特征缩放也很敏感(因为随机梯度下降法则更新方程中的学习率对于每个参数{1}都是相同的):

在此处输入图片说明


参考文献:


这个答案缺乏的是为什么的一些解释!看到我的答案。
kjetil b halvorsen

2
@kjetilbhalvorsen我很好地解释了k均值和SGD,但是还有许多其他算法和模型。堆栈交换的上限为3万个字符:)
Franck Dernoncourt,2017年


@FranckDernoncourt我可以问您一个以此为基础的问题吗?我有一个分类数据和连续数据的数据集,为此我正在构建一个SVM。连续数据高度偏斜(长尾巴)。有关连续变换我应该做一个log transformation / Box-Coxnormalise the resultant data to get limits between 0 and 1?因此,我将标准化日志值。然后一起计算连续和分类(0-1)数据的SVM?为您提供的任何帮助加油。
Chuck

7

ÿ一世=β0+β1个X一世+β2ž一世+ϵ一世
一世=1个ñ
X一世=X一世-X¯/标清Xž一世=ž一世-ž¯/标清ž
ÿ一世=β0+β1个X一世+β2ž一世+ϵ一世
β1个2β^1个2
β0=β0-β1个X¯sd(x)-β2ž¯sd(z)β1个=β1个sd(x)β2=β2sd(z)

这个关于线性回归的讨论告诉您在其他情况下您应该注意什么:是否存在不变性?通常,依赖于预测变量之间的距离量度的方法不会显示不变性,因此标准化很重要。另一个例子是集群。


1
在您应用的这一缩放示例中,您可以明确显示一个如何从另一个贝塔计算一组贝塔吗?
Mathews24 '18

@kjetil我可以问一个问题吗?我有一个分类数据和连续数据的数据集,为此我正在构建一个SVM。连续数据高度偏斜(长尾巴)。对于连续转换,我应该执行对数转换/ Box-Cox,然后还对结果数据进行规范化以获得0到1之间的限制?因此,我将标准化日志值。然后一起计算连续和分类(0-1)数据的SVM?干杯任何帮助,您可以提供
查克

1
您能否将此添加为新问题?参考回来这里!
kjetil b halvorsen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.