特征归一化

什么是特征?

特征就是描述一个事物的属性。例如:一个人的属性可以有姓名、性别、年龄等。一个事物可以有多个特征,在机器学习中可以有选择性的选择需要的特征训练模型。

在机器学习中,通常认为数据和特征决定了结果的上限,而模型和算法只是逼近这个上限而已。因此,没有合适的特征,即使数据量再大,模型和算法再合适也不会得到理想的结果。


什么是特征归一化?

         对特征进行归一化处理是为了消除数据特征之间量纲对结果的影响,使模型在训练过程中不同的特征之间具有可比性。比如:对一个人的身体状况进行分析时的身高和体重,身高大多分布在1.6m----1.9m之间,而体重一般在50kg----100kg的范围内(采用m和kg作为单位的时候)。采用这种方式分析得到的结果会倾向于数值较大的体重特征。此时,要想得到理想的结果,就需要对特征进行归一化,使各种特征处于同一数量级。


常用的归一化方法有哪些?

         这里只探讨对数值型数据的归一化方法。对于数值型数据常用的归一化方法有:线形归一化和零均值归一化。

  1. 线形归一化:对原始数据进行线形变换,使数据映射到[0,1]之间,实现数据的等比例缩放。具体公示如下:

Xnorm = (X - Xmin)/(Xmax - Xmin)

其中,X是原始数据,Xmin是数据的最小值,Xmax是数据的最大值。

  1. 零均值归一化:把原始数据变换到均值为0,方差为1的分布上。具体来说,假如原始数据的均值为a,方差为b,归一化公示可以表示如下:

Xnorm = (X - a)/b


为什么需要特征归一化?

         对数据进行归一化的主要原因有两个:

  1. 使各种特征处于同一数量级,从而使模型不会偏向某一个特征,使用结果更理想(具体解释请参考什么是特征归一化);
  2. 加快模型收敛到最优解的速度。具体解释如下:

这里借梯度下降说明归一化的重要性。假如两种数值型特征,x1的取值范围是[0,10],x2的取值范围是[0,3]。于是可以构造如图1(a)所示的等高线图。在学习速率相同的情况下,x1的更新速度回大于x2,需要较多次迭代才可以找到最优解。如果把x1和x2归一化到相同的数值范围,优化后的数值曲线呈图1(b)所示的圆形,x1和x2的更新速度一致,可以更快的得到最优解。

图1 数据归一化对梯度下降速度产生的影响


哪些模型需要进行归一化?

         需要通过梯度下降求解的模型通常是需要归一化的,需要归一化的模型有:线形回归、逻辑回归、支持向量机、神经网络等。而决策树并不适用归一化,以C4.5为例,决策树在进行节点分裂的时候采用数据集关于特征x的增益比,而增益比与特征是否进行归一化是无关的,因为归一化不改变特征的信息增益。

 


来源:百面机器学习

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值