机器学习中的标准化/归一化
2017-09-20 20:20
183 查看
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在一些数据比较和评价中常用到。典型的有归一化法,还有比如极值法、标准差法。
归一化方法的主要有两种形式:一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。在数字信号处理中是简化计算的有效方式。
两个特征区间相差非常大时,如左图中的x1[0-2000]和x2[1-5],形成的等高线偏椭圆,迭代时很有可能走“之字型”路线(垂直长轴),从而导致需要迭代很多次才能收敛。
而右图对两个特征进行了归一化,对应的等高线就会变圆,在梯度下降进行求解时能较快的收敛。
因此在机器学习中使用梯度下降法求最优解时,归一化也很有必要,否则模型很难收敛甚至有时不能收敛。
2 有可能提高模型的精度
一些分类器需要计算样本之间的距离,如果一个特征的值域范围非常大,那么距离计算就会主要取决于这个特征,有时就会偏离实际情况。
这种归一化适合数值比较集中的情况,缺陷就是如果max和min不稳定,很容易使得归一化结果不稳定,使得后续的效果不稳定,实际使用中可以用经验常量来代替max和min。
标准差标准化(z-score standardization)
经过处理的数据符合标准正态分布,均值为0,标准差为1。
非线性归一化
经常用在数据分化较大的场景,有些数值大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括log、指数、反正切等。需要根据数据分布的情况,决定非线性函数的曲线。
log函数:x = lg(x)/lg(max);反正切函数:x = atan(x)*2/pi
归一化方法的主要有两种形式:一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。在数字信号处理中是简化计算的有效方式。
归一化处理的好处:
1 加快梯度下降的求解速度,即提升模型的收敛速度两个特征区间相差非常大时,如左图中的x1[0-2000]和x2[1-5],形成的等高线偏椭圆,迭代时很有可能走“之字型”路线(垂直长轴),从而导致需要迭代很多次才能收敛。
而右图对两个特征进行了归一化,对应的等高线就会变圆,在梯度下降进行求解时能较快的收敛。
因此在机器学习中使用梯度下降法求最优解时,归一化也很有必要,否则模型很难收敛甚至有时不能收敛。
2 有可能提高模型的精度
一些分类器需要计算样本之间的距离,如果一个特征的值域范围非常大,那么距离计算就会主要取决于这个特征,有时就会偏离实际情况。
标准化/归一化处理的类型及含义:
线性归一化(min-max normalization)这种归一化适合数值比较集中的情况,缺陷就是如果max和min不稳定,很容易使得归一化结果不稳定,使得后续的效果不稳定,实际使用中可以用经验常量来代替max和min。
# 使用scikit-learn函数 min_max_scaler = preprocessing.MinMaxScaler() feature_scaled = min_max_scaler.fit_transform(feature) # 使用numpy自定义函数 def min_max_norm(x): x = np.array(x) x_norm = (x-np.min(x))/(np.max(x)-np.min(x)) return x_norm
标准差标准化(z-score standardization)
经过处理的数据符合标准正态分布,均值为0,标准差为1。
# 使用scikit-learn函数 standar_scaler = preprocessing.StandardScaler() feature_scaled = standar_scaler.fit_transform(feature) # 使用numpy自定义函数 def min_max_norm(x): x = np.array(x) x_norm = (x-np.mean(x))/np.std(x) return x_norm
非线性归一化
经常用在数据分化较大的场景,有些数值大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括log、指数、反正切等。需要根据数据分布的情况,决定非线性函数的曲线。
log函数:x = lg(x)/lg(max);反正切函数:x = atan(x)*2/pi
相关文章推荐
- 机器学习-归一化、标准化
- 【机器学习】【数据预处理】数据的规范化,归一化,标准化,正则化
- 机器学习_标准化和归一化
- 机器学习——标准化/归一化的目的和作用
- 机器学习中关于数据的归一化和标准化
- 【机器学习】数据归一化与标准化
- python机器学习库sklearn——数据归一化、标准化、特征选择、逻辑回归、贝叶斯分类器、KNN模型、支持向量机、参数优化
- 【机器学习笔记】数据归一化
- 理解:回归与拟合、归一化与标准化
- 数据归一化与z-score标准化
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- Matlab 归一化(normalization)/标准化 (standarization)
- 归一化、标准化区别的通俗说法
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- 统计数据归一化与标准化
- matlab归一化&标准化
- 机器学习中特征归一化的方法
- 为什么一些机器学习模型需要对数据进行归一化?
- 特征工程(三) 数据标准化和归一化
- 机器学习-数据归一化