数据预处理

标准化、归一化 or 中心化?

注意:需要去除离群值时,当数据本身比较聚集,也就是离散程度不高,使用3 σ \sigma σ会比箱型图要好,因为这个时候的箱型图可能找不出离散值,都在1.5IQR以内。

为什么要线性变化

线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序,那么数值缩放比例呢?

(1)某些模型求解需要

在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。如左图所示,未归一化/标准化时形成的等高线偏椭圆,迭代时很有可能走“之”字型路线(垂直长轴),从而导致迭代很多次才能收敛。而如右图对两个特征进行了归一化,对应的等高线就会变圆,在梯度下降进行求解时能较快的收敛。
在这里插入图片描述
梯度下降轨迹

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

(3)无量纲化
  例如房子数量和收入,因为从业务层知道,这两者的重要性一样,所以把它们全部归一化。 这是从业务层面上作的处理。

(4)避免数值问题
  太大的数会引发数值问题。

有哪几种处理方式

(1)最小值归一化

x’ = (x - X_min) / (X_max - X_min)

(2)平均值归一化

x’ = (x - μ) / (X_max - X_min)

(3)非线性归一化

对数函数转换:y = log10(x)
反余正切函数转换:y = arctan(x) * 2 / π

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

(4)标准化

Z-score规范化(标准差标准化 / 零均值标准化):标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。
  x’ = (x - μ)/σ

(5)中心化

x’ = x - μ

何时要使用标准化

一般来说,不是输出结果范围有要求,都使用z-score比较好,因为z-score可以排除异常值和噪声的干扰。

SVM用高斯核的时候假设特征分布为圆形,即所有维度的方差都一样;
KNN需要进行距离的度量;
神经网络的坑以后再填吧。

参考:https://www.jianshu.com/p/95a8f035c86c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值