我正在使用许多算法:RandomForest,DecisionTrees,NaiveBayes,SVM(内核=线性和rbf),KNN,LDA和XGBoost。除了SVM之外,所有其他功能都非常快。那就是当我知道它需要功能缩放以更快地工作时。然后,我开始怀疑是否应该对其他算法执行相同的操作。
我正在使用许多算法:RandomForest,DecisionTrees,NaiveBayes,SVM(内核=线性和rbf),KNN,LDA和XGBoost。除了SVM之外,所有其他功能都非常快。那就是当我知道它需要功能缩放以更快地工作时。然后,我开始怀疑是否应该对其他算法执行相同的操作。
Answers:
通常,利用诸如k-NN和SVM之类的数据样本之间的距离或相似性(例如,以标量积的形式)的算法对特征转换很敏感。
基于图形模型的分类器,例如Fisher LDA或Naive Bayes,以及决策树和基于树的集成方法(RF,XGB)对于特征缩放都是不变的,但是重新缩放/标准化数据仍然是一个好主意。
这是我在http://www.dataschool.io/comparing-supervised-learning-algorithms/上找到的列表,该列表指示哪个分类器需要特征缩放:
全表:
除了考虑分类器是否利用距离或相似性(如Yell Bond提到的那样)之外,随机梯度下降法对特征缩放也很敏感(因为随机梯度下降法则更新方程中的学习率对于每个参数{1}都是相同的):
参考文献:
log transformation / Box-Cox
和再还normalise the resultant data to get limits between 0 and 1
?因此,我将标准化日志值。然后一起计算连续和分类(0-1)数据的SVM?为您提供的任何帮助加油。
这个关于线性回归的讨论告诉您在其他情况下您应该注意什么:是否存在不变性?通常,依赖于预测变量之间的距离量度的方法不会显示不变性,因此标准化很重要。另一个例子是集群。