对于异常值处理:剪裁、winsorizing 还是删除?

数据挖掘 机器学习 统计数据 数据清理 预处理 离群值
2022-01-23 12:08:12

我遇到了三种不同的技术来处理异常值winsorization裁剪删除

  • Winsorizing:考虑由以下组成的数据集: {92, 19, 101, 58, 1053 , 91, 26, 78, 10, 13, -40 , 101, 86, 85, 15, 89, 89, 28, -5, 41} (N = 20, mean = 101.5) 第 5 个百分位以下的数据介于 -40 和 -5 之间,而第 95 个百分位以上的数据介于 101 和 1053 之间。(数值以粗体显示。)然后进行 90% 的 Winsorization将导致以下结果: {92, 19, 101, 58, 101 , 91, 26, 78, 10, 13, -5 , 101, 86, 85, 15, 89, 89, 28, -5, 41} ( N = 20,平均值 = 55.65)

  • Clipping:给定一个区间,区间外的值被剪辑到区间边缘。例如,如果指定区间 [0, 1],则小于 0 的值变为 0,大于 1 的值变为 1。

  • 去除:只是把它们拿出来。

我的问题是:

  1. 在哪些情况下我应该使用哪一个?
  2. 如果我总是在丢失重要信息时进行优化(我认为这似乎是最好的)?
  3. 这个模型是依赖的(对于决策树,对于线性......)还是可以将相同的策略应用于所有这些
1个回答

关于 Winsorizing 和 Clipping 的区别:

  • 这些技术非常相似。它们处理极端值(不一定是异常值)。海事组织,您通常应该避免认为大值=异常值。处理大值的解决方案包括通过大小因子对变量进行归一化以提高可比性。
  • 您应该使用哪一个与您的数据及其预测性有关。有时超出阈值的数据将具有预测性,有时则不是。有时,基本过程将取决于等级,有时取决于全球价值观。没有规定何时使用这两种技术中的一种,也没有规定选择哪一种。最后,你应该选择哪一个能给你带来更好的结果。是的,windsorisation 似乎更具“适应性”,因为您不必查看每个预测变量来选择阈值,但除此之外,没有理由在统计上表现更好。
  • 这些技术的主要问题之一是它们是单变量的。如果您的预测变量是相关的,那么修改一个值而不修改另一个值可能会破坏您的关系。
  • 是的,答案取决于模型。具有极值可能不利于基于梯度下降的方法的收敛,因为某些数据点可能会摆动优化路径。对于像树这样依赖空间划分的方法,具有极值不是问题。

去除异常值是一种完全不同的策略。困难在于自信地识别异常值……但这是另一个问题。