您的位置:首页 > 其它

为什么一些机器学习模型需要对数据进行归一化?

2018-01-12 21:55 316 查看
转自:http://www.open-open.com/lib/view/open1429697131932.html

针对这个问题参考了wiki的解释:
http://en.wikipedia.org/wiki/Feature_scaling。归一化后有两个好处:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度”。

1 归一化为什么能提高梯度下降法求解最优解的速度?

斯坦福机器学习视频做了很好的解释:
https://class.coursera.org/ml-003/lecture/21

如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是 [1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;

而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。

因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。



2 归一化有可能提高精度

一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

(我在用LR做手写数字识别时,对数据归一化后精确度确实提高了不少,具体原理还无法解释明白)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐