机器学习:为什么需要对数值型的特征做归一化

为什么需要对数值型的特征做归一化?

假设有这样一组数据

身高(米)体重(斤)
1.6130
1.7125
1.8145
1.9135

公式:健康 = 3*身高 + 2*体重,那么,体重相对于身高而言,在健康中的比重占的多的多,显然这样是并不合理的,此时我们需要通过归一化方法,把两个特征处在同一个数量级上。

问题一:归一化的方法有哪些?

一. 最大最小值归一化(线性函数的归一化):

公式: Xnormal = ( X − X   m i n   X   m a x   − X   m i n   ) \left(\frac{X - X~min~}{X~max~-X~min~}\right) (X max X min XX min ),

例如当X=130时, Xnormal = ( 130 − 125 145   − 125 ) \left(\frac{130 - 125}{145~-125}\right) (145 125130125) = 0.25,这样就把数据归到[0, 1]之间。
缺陷:对异常值敏感。
假如体重中出现了500斤的数据,显然Xnormal = ( 130 − 125 500 − 125 ) \left(\frac{130 - 125}{500 - 125}\right) (500125130125) = 0.013,与真实的值0.25相差过大,影响最终结果。

二. 零均值归一化方法

公式: Xnormal = ( X − μ σ ) \left(\frac{X - \mu}{\sigma}\right) (σXμ)

μ \mu μ 是均值, σ \sigma σ 是标准差,计算同上。

问题二:为什么要归一化?

归一化加快模型训练,减少迭代次数(以等高线展示)。

左图是未归一化的时候,由于两个特征不在同一个数量级上,等高线的平面图呈椭圆状,边上的点切线的垂直方向是代价函数的收敛方向,程序经过多次迭代,最终才到达中心点的最小值。
右图是归一化的时候,边上的点切线的垂直方向是代价函数的收敛方向,每次收敛的方向几乎直接指向圆心,程序经过多次迭代,最终才到达中心点的最小值。
由此可以得出,右图比左图收敛的更快,迭代次数更少。

问题三:哪些模型需要归一化?

线性回归, 逻辑回归,SVM, 神经网络

问题四:哪些模型不需要归一化?

树形结构不需要,eg:决策树,往往看的是增量

参考链接: https://www.bilibili.com/video/av94598037.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值