在pyspark数据帧中检测异常值

时间:2017-09-23 08:50:16

标签: python apache-spark dataframe pyspark pyspark-sql

我对Spark和Hadoop世界很新。我已经开始从互联网上学习这些主题了。我想知道我们如何在Spark DataFrame中执行异常值检测,因为Spark中的DataFrame是不可变的?有没有可以执行此操作的Spark包或模块?我正在使用PySpark API for Spark,所以如果有人回答如何在PySpark中完成这项工作,我将非常感激。如果我在PySPark(Pyhton)中获得一个用于在Spark DataFrame中执行异常检测的小代码,我将非常感激。非常感谢提前!

1 个答案:

答案 0 :(得分:2)

据我所知,没有一个API也没有专门用于检测异常值的包,因为数据本身因应用程序而异。然而,有几种已知的方法都有助于识别异常值。 让我们首先看看术语异常值的含义,它只是指超出观察范围/范围的极值。可以看到这些异常值的一个很好的例子是,当以直方图方式或散点图可视化数据时,它们可以强烈地影响静态并且大量压缩有意义的数据。或者它们可以被视为对数据统计汇总的强烈影响。例如在使用平均值或标准偏差之后。 这肯定会产生误导,当我们使用包含异常值的训练数据时,危险就会出现,因为模型会在超出范围的值上挣扎,所以训练需要更长的时间,因此我们会得到一个不太准确的模型,结果很差或者从不收敛客观测量,即将测试和训练的输出/得分与训练时间或某些准确度值范围进行比较。

虽然通常会将异常值作为数据中的不良实体,但它们仍然可以签署异常情况,并且检测本身将是发现欺诈或提高安全性的方法。

这里有一些k自己的异常值检测方法(更多细节可以在这个好的article中找到):

  • 极值分析,
  • 概率统计模型,
  • 线性模型:减少数据维度,
  • 基于邻近的模型:主要使用聚类。

对于代码,我建议来自mapr的这个好tutorial。希望这个答案有所帮助。祝你好运。