我正在使用许多算法:RandomForest、DecisionTrees、NaiveBayes、SVM(内核=线性和 rbf)、KNN、LDA 和 XGBoost。除了 SVM 之外,它们都非常快。那时我才知道它需要功能扩展才能更快地工作。然后我开始想我是否应该对其他算法做同样的事情。
除了 SVM,还有哪些算法需要特征缩放?
通常,利用数据样本之间的距离或相似性(例如以标量积的形式)的算法,例如 k-NN 和 SVM,对特征转换很敏感。
基于图形模型的分类器,例如 Fisher LDA 或朴素贝叶斯,以及决策树和基于树的集成方法(RF、XGB)对于特征缩放是不变的,但是重新缩放/标准化您的数据。
这是我在http://www.dataschool.io/comparing-supervised-learning-algorithms/上找到的列表,指出哪个分类器需要特征缩放:
全表:
除了像 Yell Bond 提到的那样考虑分类器是否利用距离或相似性之外,随机梯度下降对特征缩放也很敏感(因为随机梯度下降的更新方程中的学习率对于每个参数 {1} 都是相同的):
参考:
- {1} 查尔斯·埃尔坎。“对数线性模型和条件随机场。” CIKM 8 (2008) 上的教程说明。https://scholar.google.com/scholar?cluster=5802800304608191219&hl=en&as_sdt=0,22;https://pdfs.semanticscholar.org/b971/0868004ec688c4ca87aa1fec7ffb7a2d01d8.pdf
加入 Yell Bond 的出色(但太短)答案。看看线性回归模型会发生什么,我们只用两个预测变量编写它,但问题不依赖于此。
。现在,如果您将预测变量居中并缩放以获得
而是拟合模型(使用普通最小二乘法)
这个线性回归案例的讨论告诉你在其他情况下应该注意什么:是否存在不变性?通常,依赖于预测变量之间距离度量的方法不会表现出不变性,因此标准化很重要。另一个例子是集群。