数据归一化处理

简介: 为什么要对数据进行归一化?    归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。下面我简单扩展解释下这两点。1 归一化为什么能提高梯度下降法求解最优解的速度?      斯坦福机器学习视频做了很好的解释:https://class.coursera.org/ml-003/lecture/21      如下图所示,蓝色的圈圈图代表的是两个特征的等高线。

为什么要对数据进行归一化?

    归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。下面我简单扩展解释下这两点。

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

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

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

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

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

2 归一化有可能提高精度

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

3 归一化的类型

1)线性归一化

x' = \frac{x - \text{min}(x)}{\text{max}(x)-\text{min}(x)}

      这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。

2)标准差标准化

  经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

  其中μ为所有样本数据的均值,σ为所有样本数据的标准差。


3)非线性归一化

     经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。

目录
相关文章
|
机器学习/深度学习 算法 数据可视化
浅析特征数据离散化的几种方法(上)
什么是离散化? 离散化就是把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:
|
数据处理
数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化
数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化
328 0
数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化
|
2月前
|
数据采集 定位技术 计算机视觉
归一化
【9月更文挑战第15天】
69 3
|
30天前
|
数据采集 机器学习/深度学习 算法
|
6月前
|
数据可视化
R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
PyTorch使用一维卷积对时间序列数据分类
PyTorch使用一维卷积对时间序列数据分类
280 0
|
算法 数据可视化 数据挖掘
基于GMM的一维时序数据平滑算法
本文将介绍我们使用高斯混合模型(GMM)算法作为一维数据的平滑和去噪算法。
200 0
|
机器学习/深度学习 算法
为什么要对数值类型特征做归一化?
为什么要对数值类型特征做归一化?
|
数据采集 Python
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
406 0
数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
|
机器学习/深度学习 数据采集 算法
数据预处理|关于标准化和归一化的一切
数据预处理|关于标准化和归一化的一切
数据预处理|关于标准化和归一化的一切