为什么一些机器学习模型需要对数据进行归一化?
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做手写数字识别时,对数据归一化后精确度确实提高了不少,具体原理还无法解释明白)
针对这个问题参考了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做手写数字识别时,对数据归一化后精确度确实提高了不少,具体原理还无法解释明白)
相关文章推荐
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?——1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度
- 为什么一些机器学习模型需要对数据进行归一化?
- 为什么一些机器学习模型需要对数据进行归一化?
- 机器学习中为什么需要对数据进行归一化?
- 机器学习中为什么需要对数据进行归一化?
- 机器学习---之为什么要对数据进行归一化
- Command不是也可以对数据库进行insert,update,delete操作吗,为什么还需要DataAdapter。我知道DataAdapter可以用来想AataSet中填充数据,Command不可以吗?
- 机器学习笔记:为什么要对数据进行归一化处理?
- pandas进行数据分析需要的一些操作
- python机器学习库sklearn——数据归一化、标准化、特征选择、逻辑回归、贝叶斯分类器、KNN模型、支持向量机、参数优化
- 机器学习为什么需要训练,训练出来的模型具体又是什么?
- 如何选择机器学习模型进行数据分析_简要笔记
- Html表格<table>还是需要添加一些标签进行优化,可以添加标题<caption>和摘要<table summary>
- [人工智能]机器学习实践中数据和模型的选择