数据标准化vs规范化vs Robus

2024-05-13 15:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行数据预处理,并希望实际比较数据标准化与规范化与健壮的Scaler的好处。

理论上,指导方针是:

优势:

  1. 标准化:比例尺的特点是分布以0为中心,标准偏差为1。
  2. Normalization:缩小范围,使范围现在介于0和1之间(如果有负值,则为-1到1)。
  3. Robust Scaler:与标准化类似,但它使用四分位区间,因此对异常值具有鲁棒性。

缺点:

  1. 标准化:如果数据不是正态分布(即没有高斯分布),则不好。
  2. 标准化:受到异常值(即极值)的严重影响。
  3. Robust Scaler:不考虑中值,只关注批量数据所在的部分。

我创建了20个随机数值输入,并尝试了上述方法(红色数字表示异常值):

Methods Comparison


我注意到-确实-标准化受到异常值的负面影响,新值之间的变化范围变得很小(所有值几乎相同-小数点后6位-0.000000x),即使原始输入之间有明显的差异!


我的问题是:

  1. 我说标准化也会受到极端值的负面影响,这是对的吗?如果没有,为什么要根据提供的结果?
  2. 我真的看不出健壮的Scaler是如何改进数据的,因为我在生成的数据集中仍然有extreme值?有什么简单完整的解释吗?

p.S

我想象一个场景,我想为神经网络准备数据集,我担心消失梯度问题。不过,我的问题仍然是一般性的。


Tags: 数据理论规范化中心normalizationrobust缺点区间
2条回答

Am I right to say that also Standardization gets affected negatively by the extreme values as well?

事实上,你是;scikit学习docs他们自己清楚地警告这种情况:

However, when data contains outliers, StandardScaler can often be mislead. In such cases, it is better to use a scaler that is robust against outliers.

或多或少,对于MinMaxScaler也是如此。

I really can't see how the Robust Scaler improved the data because I still have extreme values in the resulted data set? Any simple -complete interpretation?

健壮并不意味着免疫,或不受攻击,缩放的目的是以“删除”异常值和极值-这是一个单独的任务,有自己的方法;这在relevant scikit-learn docs中再次明确提到:

RobustScaler

[...] Note that the outliers themselves are still present in the transformed data. If a separate outlier clipping is desirable, a non-linear transformation is required (see below).

其中“see below”指的是^{}^{}

它们都不是健壮的,因为缩放会处理异常值,并将它们放在一个有限的尺度上,即不会出现极值。

您可以考虑以下选项:

  • 在缩放之前剪切(例如,在5%到95%之间)序列/数组
  • 如果剪裁不理想,则采用平方根或对数之类的转换
  • 显然,添加另一列“is clipped”/“对数剪裁量”将减少信息丢失。

相关问题 更多 >