Mik*_*ike 3 python machine-learning normalization standardized scikit-learn
我正在进行数据预处理,并希望实际比较数据标准化与规范化与鲁棒缩放器的优势.
从理论上讲,准则是:
好处:
缺点:
我创建了20个随机数字输入并尝试了上述方法(红色数字表示异常值):
我注意到 - 实际上 - 归一化受到异常值的负面影响,新值之间的变化范围变得很小(所有值几乎相同,小数点后的-6位数0.000000x
) - 即使原始输入之间存在明显的差异!
PS
我想象一个场景,我想为神经网络准备我的数据集,我担心消失的梯度问题.不过,我的问题仍然存在.
我是否正确地说,标准化也会受到极端值的负面影响?
的确,你是; scikit-learn 文档本身明确警告这样的情况:
但是,当数据包含异常值时,
StandardScaler
往往会误导.在这种情况下,最好使用对异常值具有鲁棒性的定标器.
或多或少,同样适用于此MinMaxScaler
.
我真的看不出Robust Scaler如何改进数据,因为我在结果数据集中仍然有极值?任何简单完整的解释?
强健并不意味着免疫或无懈可击,缩放的目的不是 "消除"异常值和极端值 - 这是一个单独的任务,有自己的方法; 这在相关的scikit-learn文档中再次明确提到:
RobustScaler
[...]请注意,异常值本身仍然存在于转换后的数据中.如果需要单独的异常值限幅,则需要进行非线性变换(见下文).
其中"见下文"指的是QuantileTransformer
和quantile_transform
.
小智 7
它们都不是稳健的,因为缩放会处理异常值并将它们放在一个受限的范围内,即不会出现极端值。
您可以考虑以下选项:
归档时间: |
|
查看次数: |
3757 次 |
最近记录: |