为什么对数值类型的特征归一化?

特征归一化主要是为了消除量纲的影响,以房价预测为例,卧室面积城镇人口数量都会对房价有影响,在进行距离有关的计算时,单位的不同会导致计算结果的不同,尺度大的特征会起决定性作用,而尺度小的特征其作用可能会被忽略,所以,为了消除特征间单位和尺度差异的影响,以对每维特征同等看待,需要对特征进行归一化。

对数值特征进行归一化,可以将不同的特征统一到大致相同的范围内,常用归一化方法有:

  • 线性归一化

根据最大值、最小值对原始数据进行先行变换,讲结果映射到[0, 1]

x ∗ = x − x m i n x − x m a x x^* = \frac{x - x_{min}}{x - x_{max}} x=xxmaxxxmin

x x x为原始数据, x m i n , x m a x x_{min}, x_{max} xmin,xmax为特征的最小值和最大值

  • 零均值归一化(标准化)

将原始数据映射到均值为0,方差为1的正太分布上

x ∗ = x − μ σ x^* = \frac{x - \mu}{\sigma} x=σxμ

两个特征对应的参数分别为 θ 1 \theta_1 θ1, θ 2 \theta_2 θ2,左图为未归一化对应的损失函数等值图,右图为归一化后对应的损失函数等值图。在学习速率相同的情况下,归一化前, θ 1 \theta_1 θ1的更新速率大于 θ 2 \theta_2 θ2,需要更多的迭代次数才能达到最优解;归一化后, θ 1 \theta_1 θ1, θ 2 \theta_2 θ2在相同分数值区间,两者的更新速率更一致,有助于梯度下降找到最优解。

归一化通常在通过梯度下降方法求解的模型中,例如逻辑回归、神经网络、支持向量机等,树模型以基尼指数、信息增益等进行分裂,归一化在树模型中并不适用

欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~

算法工程师面试那些事儿

猜你喜欢

转载自blog.csdn.net/qq_40006058/article/details/121217923
今日推荐