归一化是对连续特征来说的。那么连续特征的归一化,起到的主要作用是进行数值缩放。数值缩放的目的是解决梯度下降时,等高线是椭圆导致迭代次数增多的问题。
一、概率模型\树模型 不需要归一化
而xgboost等树模型是不能进行梯度下降的,因为树模型是阶越的,不可导。树模型是通过寻找特征的最优分裂点来完成优化的。由于归一化不会改变分裂点的位置,因此xgboost不需要进行归一化。
参考《xgboost使用之前是否需要对数据进行归一化处理 或者 ONEHOT处理?》
从概率模型角度,概率模型不关心变量值,而关心变量的分布、变量之间的条件概率。这类模型像决策树、随机森林。
关于为什么决策树和随机森林是概率模型,我觉得可以从《关于sklearn决策树和随机森林的predict_proba方法的原理解释》得到解释
二、关心变量值、使用梯度下降的算法,需要归一化
如逻辑斯特回归(logistic regression)、支持向量机(svm)、集成学习(adaboost)、KNN、K-Means等算法。
三、汇总
需要 | 不需要 |
---|---|
LR(线性回归、逻辑回归) | 决策树 |
SVM(支持向量机) | 随机森林 |
KNN | 朴素贝叶斯 |
K-Means | XGBoost |
高斯过程 | lightGBM |
AdaBoost | GBDT |
神经网络 | |
LSTM |