DataWhale组队学习活动

什么是异常检测?

异常

在统计学中,离群值(Outliers)是与其他观测值显著不同的数据点,也成为异常点。异常点的出现可能是因为观测的可变性或实验的错误。异常是指在大量的数据中较为稀少的数据点、事件或者行为。异常通常与正常数据不同,通常代表着数据中出现的一些问题,如欺诈行为、网络、文字的错误等。异常也被成为噪音、偏差和异常。异常可以被分为三类:点异常、条件异常和群体异常。

异常检测

异常检测是在数据集中找到非正常的数据、条件或群体。找到异常节点面临着一些挑战,如用于异常检测的数据集有样本类别不均衡的问题,还有异常节点是不规则的,不同的异常可能表现上完全不同。

异常检测的方法有哪些?

有监督学习

有监督学习方法适用于有标签的数据集,也就是说在训练过程中会知道数据是否是异常的,这就相当于一个分类问题。可以用很多基础的机器学习分类算法进行检测,如SVM,决策树、GBDT、XGBoost等进行分类。但值得注意的是,包含异常的数据集是不均衡的,因此可能会影响性能。可以考虑使用集成学习的方法,如feature bagging。

无监督学习

无监督学习方法适用于没有标签的训练集,可以对数据集进行聚类。用于聚类的方法可以运用在异常检测的场景中,如DBSCAN算法、KNN算法、LOF(local outlier factor)算法等。但无监督学习聚类的方法,有时候会面临维度灾难,可能相似性的度量在高维数据重失效。

半监督学习

半监督学习的异常检测指的是在训练集中只有正常的数据集,没有异常的实例参与训练。然后会构造出一个表示正常行为的模型,然后会测试该模型生成的实例的可能性。比较适用于数据的标签不足的时候。