当前位置:   article > 正文

Python数据预处理之数据规范化_数据规范化可以降低异常值的影响吗

数据规范化可以降低异常值的影响吗

数据规范化

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。 原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。


数据规范化的意义:

  • 提高模型精度:规范化可以让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
  • 提升收敛速度:数据规范化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

哪些机器学习算法需要数据规范化

  • 需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。
  • 概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。

常见的数据规范化

最大-最小规范化

把数据压缩到指定区间
在这里插入图片描述

m i n A min_A minA为数据的最小值, m a x A max_A maxA为数据的最大值
n e w _ m i n A new\_min_A new_minA为数据的最小值, n e w _ m a x A new\_max_A new_maxA为数据的最大值

n e w _ m i n A new\_min_A new_minA n e w _ m a x A new\_max_A new_maxA取值为[0, 1]时,即为数据归一化

Z-Score规范化(标准化)

把数据映射到均值为0、标准差为1的分布上
v ′ = v − μ σ v'=\frac{v-\mu}{\sigma} v=σvμ

μ \mu μ表示均值, σ \sigma σ表示标准差

归一化和标准化的区别

在这里插入图片描述

什么时候用归一化/标准化

归一化

  • 对输出范围有要求
  • 数据较为稳定,不存在极端值

标准化

  • 适用于流式数据(不断地有数据进入,因此最大/小值会改变)
  • 数据存在较多噪音和异常值,用标准化可以避免异常值和极端值的影响

数据规范化的实现

from sklearn import preprocessing
from scipy.stats import rankdata
std_x = preprocessing.StandardScaler().fit_transform(df.x)
norm_x = preprocessing.MinMaxScaler().fit_transform(df.x)
  • 1
  • 2
  • 3
  • 4

参考来源:
机器学习笔记:为什么要对数据进行归一化处理?
归一化和标准化大全 (写的非常全)
机器学习中数据预处理——标准化/归一化方法(scaler)
Sklearn中文文档: 5.3 预处理数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/148165
推荐阅读
相关标签
  

闽ICP备14008679号