数据归一化为什么有用?对归一化无法直观理解

来源:4-7 数据归一化

神经旷野舞者

2018-02-03

之前接触归一化就感觉很难理解,虽然表面上不难理解似乎操作很有道理,因为数值大的特征计算两个向量之间的距离会掩盖值小的特征,但还是有些不相信归一化是否有道理。

我是觉得应该要考虑这些特征之间是独立还是相关的:

如果是相关的,归一化是不是就否定了特征之间本来就有的差距。

如果是独立的,归一化是不是否定了特征之间的差距。

还是说归一化特征之间的差距是不重要的?为什么不重要呢?有没有一些其他解释?


写回答

2回答

liuyubobobo

2018-02-04

这其实是一个非常好的问题。同时其实也是一个非常大的问题。


整体上,@慕无忌9014402 的回答是对的。在机器学习算法上,算法看待每一个特征都是独立的。虽然你对特征的直观解释有可能是相关的,但是算法将他们作为独立的特征处理。我们关注的是特征和output(也就是y)之间的依赖关系,而不是特征之间的依赖关系。所以,我们进行归一化处理,是在同一个尺度下看各个特征对output(也就是y)的影响。


特征之间可能是相关的。但是这个相关性是我们在特征工程阶段关注的。比如我们有一个房产数据,采集了房屋的长(L)和宽(W)。看他们和房屋价格之间的关系。我们很有可能会发现找不到L和W两个特征和房价之间的关系。有的时候L很大,房价也很高,有的时候L不大,房价也很高,反之亦然,对W也亦然。但是当我们引入L*W这个特征以后,我们管它叫area,就会发现area和房价之间的关系非常强烈。我们通过“相关的特征”组合出了一个更好的特征,能够更准确地反映和房价(y)之间的关系。


在这个简单的例子里,L, W和area是相关的。但是在实践中,这种相关对于预测房价没有意义,甚至可能起反效果,我们很有可能将L和W两个特征扔掉,效果更好。这就是feature selection了。


具体特征之间的差距是否可能有意义。这就要看我们怎么定义“差距”了,在我们的例子里,我们完全可以定义L和W之间的差距,就是L*W:)


当然了,在一些更复杂的应用中,会检测特征之间的独立程度。相应的其实也有很多方法,大多是统计学上的方法。他们的作用,也在于特征工程。通过特征之间可能存在的微妙联系,去发现;提取;筛选;甚至是生成更好的特征。

2
12
liuyubobobo
回复
神经旷野舞者
大赞!
2018-02-10
共12条回复

ianzhang

2018-02-03

我觉的特征之间应该是独立的,每个特征只是对结果label有影响,归一化也只是针对特征与结果之间差距进行标准化

1
1
神经旷野舞者
有的特征也可能相关吧,比如x,和x^2,x^3,就是相关的? 会不会特征之间的差距也是有意义的,这样归一化是不是没了,我直观上理解是没了,可能我弄错了,就是这个地方想不明白?
2018-02-03
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5761 学习 · 2427 问题

查看课程