为什么决策树相关的算法不需要标准化?那么那些模型需要标准化那?

时间:2024-10-23 07:36:02

为什么决策树相关的算法不需要标准化?那么那些模型需要标准化那?

基于树的算法,如决策树(Decision Tree)、随机森林(Random Forest)和GBDT,xgboost等,对变量的大小不敏感。因此,在拟合这类模型之前,不需要进行标准化。

以决策树使用信息熵进行特征区间的划分为例,对于特征的划分只能信息熵的变化有关,而和特征的本身的大小无关,即只和特征对于模型分类或者回归的确定性的能力有关,而和特征本身数值的幅度无关;

也就是说,因为数值缩放不会影响分裂点位置,对树模型的结构不造成影响。

树生长,按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。而且,树模型是不能进行梯度下降的,因为构建树模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,因此树模型是阶跃的,阶跃点是不可导的,并且求导没意义,也就不需要归一化。

既然树形结构不需要标准化,那为何非树形结构比如线性模型则需要标准化呢?

对于基于距离的模型,标准化是为了防止更大范围的特征支配距离度量。但我们对数据进行标准化的原因并不适用于所有的机器学习模型,而且不同的模型也不尽相同。

对于线性模型,特征值差别很大时,比如说LR,我有两个特征,一个是(0,1)的,一个是(0,10000)的,运用梯度下降的时候,损失等高线是椭圆形,需要进行多次迭代才能到达最优点。

常见的需要进行标准化的模型有:PCA、基于距离的聚类算法、KNN、SVM、LASSO、Ridge等;

但是如果进行了标准化,那么等高线就是圆形的,促使随机梯度下降SGD往原点迭代,从而导致需要的迭代次数较少,学习过程能够更快地收敛到期望的位置。

参考:WHEN AND WHY TO STANDARDIZE YOUR DATA?

参考:What algorithms need feature scaling, beside from SVM?

参考:标准化

参考:STANDARDIZATION