机器学习中为什么要对特征做数据归一化?

对于线性模型来说,对特征做数据归一化是为了使不同的特征处于同样的量级范围内,不至于出现某些特征所占比重过大,从而主导预测结果。

另外,归一化可以提升收敛速度
对于梯度下降优化的算法,如果我们的数据没有做归一化,会导致特征空间的不规则性,求最优解过程中,很可能会导致Z字形路线,需要迭代多次才能收敛。
机器学习中为什么要对特征做数据归一化?_第1张图片
归一化之后,在梯度下降进行求解时能较快的收敛。
机器学习中为什么要对特征做数据归一化?_第2张图片

归一化方法:
1)x=(x−min)/(max−min)
这种方法适用于数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。
2)x=(x-μ)/σ
特征属性减去均值,除以方差。

什么模型需要归一化?
像Adaboost、SVM、LR、Knn、KMeans之类的最优化问题就需要归一化。树形模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。

你可能感兴趣的:(python,机器学习,机器学习,python)