如何以及何时处理数据集中的异常值一般策略

问题描述

我偶然发现了以下问题:

我正在从事数据科学的初学者项目。我得到了我的测试和训练数据拆分,现在我正在分析每个特征,然后将其添加到离散连续变量的数据帧或连续变量的数据帧中。 这样做我遇到了一个带有大异常值的功能。如果我想删除它们,我已经添加到我的子数据框中的其他功能将有比这更多的列条目。

我是应该找到一种策略来用“更好”的值覆盖异常值,还是应该重新考虑在开始时为两种类型的变量拆分训练数据的策略?我不认为 摆脱真实 train_data 中的异常行会很有用...

解决方法

处理异常值的方法有很多。 在我的数据科学课程中,我们使用了“数据插补”:

但是在您开始替换或删除数据之前,重要的是分析异常值有什么不同以及异常值是否对我们有效。

  • 如果异常值无效,您可以删除异常值并使用数据插补,如下所述。

  • 如果您的异常值有效,请检查有无异常值的结果差异。如果差异非常小,则没有问题。如果差异很大,您可以使用标准化归一化

您可以将异常值替换为:

  • 随机值(不推荐)
  • 基于色调逻辑的值
  • 基于邻居的值
  • 中位数、均值或模式。
  • 基于插值的值(使用某个 ml 模型进行预测)

我建议使用具有最佳结果的策略。

Statquest 以非常简单易懂的方式解释了数据科学和机器学习概念,因此如果您遇到更多理论问题,请咨询他:https://www.youtube.com/user/joshstarmer