有哪些比较好的做异常值检测的方法?

理由
举报 取消

数据预处理的好坏,很大程度上决定了模型分析结果的好坏。(Garbage In Garbage Out!)其中,异常值(outliers)检测是整个数据预处理过程中,十分重要的一环。方法也是多种多样。比如有基于经典统计的方法——三倍于标准差之上的数据为异常值等等。由于异常值检验,和去重、缺失值处理不同,它带有一定的主观性。所以,想请问一下各位大牛,平时你们更愿意相信哪种或哪几种异常值检测的方法。谢谢!~

2017年5月28日 9 条回复 1170 次浏览

发起人:Ryan Fan 管理专家

正在搞机器学习,干过搜索引擎,码农

回复 ( 9 )

  1. 张戎
    理由
    举报 取消

    之前写过几篇文章:分别介绍了概率方法,矩阵分解,神经网络的方法。

    (1)异常点检测算法(一)

    (2)异常值检测算法(二)

    (3)异常点检测算法(三)

    (4)异常点检测算法综述

  2. Liang Miya
    理由
    举报 取消

    没有相信哪种,全部都取决于数据。具体来说就是能获得什么样的数据以及数据特征。

    如果可以获得label过的training set, 可以用supervised method. 这部分算法很多,Genetic Algorithm, SVM, etc.

    如果可以获得正确data的label, 则可以用semi-supervised method. 一般是根据正确的数据建立一个模型,不符合这个模型的entry则视为 outliers.

    但更多时候,我们都无法获得有label的training set. 这时候就要用unsupervised method.比较多见的包括:

    -LOF: Local Outlier Factor, 根据数据点周围数据的密度来判断此数据是否outlier. 这里是base on neighbor density 决定的。

    -Cluster: 类聚。被分到小的cluster里的数据即是outlier.

    -KNN: 拿出一个最具代表性的特征A,以其他特征为基础用KNN预测A的值。如果预测错了,则为outlier

    -Etc.

    一般是根据数据特征和你对outlier的定义去选择。

  3. YeZhu(祝烨)
    理由
    举报 取消

    还有一个非常高效的算法,由南京大学周志华老师参与开发的,详见 iForest (Isolation Forest)孤立森林 异常检测 入门篇

  4. 匿名用户
    理由
    举报 取消

    这个问题,要多看paper,少看知乎,毕竟后者是拿来装X用的。

  5. 魏凌峰
    理由
    举报 取消

    基于密度的异常检测,常用LOF,可以看下这篇文章

    异常点/离群点检测算法——LOF

  6. 匿名用户
    理由
    举报 取消

    数据预处理里面通常画图,用box—plot等或者结合现实生活场景,然后我自己感觉重要的是你建模后去看残差的异常值,Q-Q图 或者 cook统计量 leverage 都可以

    毕竟残差异常值很可能直接导致你模型的稳健性。

  7. 匿名用户
    理由
    举报 取消

    这种预处理不需要用复杂的方法去弄,凭感觉吧。当然你可以用聚类,但聚类其实也是用感觉来做的

  8. H Xia
    理由
    举报 取消

    Dixon和Grubbs都不错,算法也容易实行。效果的好坏,还要具体情况,可设定不同的前提条件加上合适的算法,进行组合判断。

  9. 邵德鑫
    理由
    举报 取消

    我好像有点明白自己为什么不怎么回答专业问题了,因为,这种应该查文献而且一查一个准的,你过来问我?回头在电脑上编辑一下,把之前搜集过的资料贴一些给题主感受一下。

我来回答

Captcha 点击图片更换验证码