为什么要对数值类型的特征做归一化,树形算法为啥不需要归一化?

相关解释: 

  1. 没有考虑变量之间相关性,每次筛选都只考虑一个变量(因此不需要归一化);
  2. 对于有权重的模型,Feature可以Scaling 比如:线性回归、SVM、(BP??)对于没有权重的方法,特征不适合做归一化(标准化)如果对特征做了Feature Scaling 那么 可以结合回归的算法,在特征前加上权重。
  3. 对于线性模型,特征值差别很大时,比如说LR,我有两个特征,一个是(0,1)的,一个是(0,10000)的,运用梯度下降的时候,损失等高线是椭圆形,需要进行多次迭代才能到达最优点。但是如果进行了归一化,那么等高线就是圆形的,促使SGD往原点迭代,从而导致需要的迭代次数较少。所以说是因为梯度下降的算法需要进行归一化,归一化后加快了梯度下降求解最优解的速度。树模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,可以看下决策树ID3算法python实现理解。因为求导没意义,也就不需要归一化
  4. 概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。像svm、线性回归之类的最优化问题就需要归一化。决策树属于前者。

实验对比说明结论: 

  • 对于Lasso模型,使用MaxAbsScaler方式时,MSE增大十分明显,且归一化后结果高于不进行归一化时(可能是数据的问题),
  • 对于Redige模型,归一化结果也明显高于不归一化时的结果。
  • 对于SVR模型,不进行归一化时,其MSE会非常大,是因为svm实质上选择的是分割两类数据最远的超平面,由于错分类造成了影响,不进行归一化会造成对平面的影响,导致得到的划分平面不准确测试集成功率低。
  • 对于RandomForest和XGBoost来说,是否进行归一化对结果影响不大。这也是树模型的一大特征。

猜你喜欢

转载自blog.csdn.net/qq_35290785/article/details/100704783