除了 SVM,还有哪些算法需要特征缩放?

机器算法验证 机器学习 支持向量机 随机森林 朴素贝叶斯 助推
2022-01-26 20:10:29

我正在使用许多算法:RandomForest、DecisionTrees、NaiveBayes、SVM(内核=线性和 rbf)、KNN、LDA 和 XGBoost。除了 SVM 之外,它们都非常快。那时我才知道它需要功能扩展才能更快地工作。然后我开始想我是否应该对其他算法做同样的事情。

3个回答

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

基于图形模型的分类器,例如 Fisher LDA 或朴素贝叶斯,以及决策树和基于树的集成方法(RF、XGB)对于特征缩放是不变的,但是重新缩放/标准化您的数据。

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

在此处输入图像描述

全表:

在此处输入图像描述

k-means 聚类中,您还需要标准化您的输入

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

在此处输入图像描述


参考:

加入 Yell Bond 的出色(但太短)答案。看看线性回归模型会发生什么,我们只用两个预测变量编写它,但问题不依赖于此。 现在,如果您将预测变量居中并缩放以获得 而是拟合模型(使用普通最小二乘法)

Yi=β0+β1xi+β2zi+ϵi
i=1,,n
xi=(xix¯)/sd(x)zi=(ziz¯)/sd(z)
Yi=β0+β1xi+β2zi+ϵi
然后拟合的参数(beta)会改变,但它们的改变方式可以通过简单的代数从应用的转换中计算出来。因此,如果我们使用 \beta_{\beta}_{1,2} 的变换预测器从模型中调用估计的 betas,表示来自未变换模型的 betas ,我们可以计算一个一组来自另一个的 beta,知道预测变量的均值和标准差。当基于 OLS 时,转换参数和未转换参数之间的关系与其估计值之间的关系相同。一些代数会给出这样的关系 β1,2β^1,2
β0=β0β1x¯sd(x)β2z¯sd(z),β1=β1sd(x),β2=β2sd(z)
所以标准化不是建模的必要部分。(可能由于其他原因仍会这样做,我们在这里不做介绍)。这个答案也取决于我们使用普通最小二乘法。对于其他一些拟合方法,例如 ridge 或 lasso,标准化很重要,因为我们失去了最小二乘法的这种不变性。这很容易看出:lasso 和 ridge 都基于 beta 的大小进行正则化,因此任何改变 beta 相对大小的变换都会改变结果!

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