异常点检测方法 Anomaly detection methods
异常点 (或离群点 anomaly, outlier)指的就是那些在数据集中很不平常的,与众不同的模式[1][2][3][4]。按照 Hawkins 的经典定义,意思就是 "异常点是一个观测值,它与数据集中其他的观测值如此不一样,以至于认为它是由其他的机制所产生的。"
An observation which deviates so much other observations as to arouse suspicions that it was generated by a different mechanism.[5] - Hawkins
异常点检测 (Anomaly detection, outlier detection)可以看做是确认/找出数据集中异常行为的数据点的一项技术[6][3][4]。异常点检测分类并不统一,但是大致上有以下几种方法: 基于分类(classification-based), 基于距离(distance-based), 基于统计(statistical-based), 基于聚类(cluster-based), 其他方法。
1. 基于分类
基于分类的方法[1]使用分类的学习算法来训练模型,并对异常点进行检测。更具体的,训练的数据可以包含多类标签或者单类标签,分类的方法可以继续划分为多类检测技术(multi-class classification)和单类检测技术(one-class classification)。多类检测即使用传统分类算法(Bayesian Networks[1][7], neural networks[8], decision tree[9], random forest[10]等)进行训练和测试,这里不做赘述。关于单类检测技术,就比较特殊了,它指的是训练集中只有正常类(normal class)标签的实例,并以此训练出模型来对测试集中的实例进行异常点检测。这里一个很好的例子就是单类SVM(one class SVM)[11][6],单类SVM通过现有的正常实例训练得到一个正常点边界(boundary),认为在此边界外的点都是异常点。
基于分类的方法最大缺陷是:
1)多类检测需要训练集拥有多个类的实例,但现实世界可能并不存在异常的数据;
2)数据集中的不平衡性严重影响了分类算法的性能
2. 基于距离
传统的基于距离的算法[12],通过计算每个数据点到其附近点的距离(这里的距离可以是欧氏距离,也可以是麦哈顿距离,马氏距离等),将那些与其他点距离较远的点视为异常点。Edwin首先在1998年提出了基于距离的算法的原型[13]:计算每个点的领域(r)内的点的邻居个数,如果此个数低于给定阈值(n),则认为此数据点为异常点。Anginulli接着在2005年提出HilOut[14][1]:通过计算每个点到其k个邻居的距离之和,并由大到小排序,取前m个数据点,视为异常点。由于数据分布不均带来的检测误差,Breunig在2000年提出基于密度的方法LOF[15],它通过计算每个点的LOF参数来计算每个点的密度情况,那些密度较小的点被预测为异常点。
:
1计算开销太大,需要计算每个点到其他数据点的距离2对参数敏感,如上述的和 n,或者和直接影响最终的检测结果。
3. 基于统计
基于统计的方法[16],也叫基于模型(model-based methods)的方法,基于参数(parameteric methods)的方法。它往往假设数据集的分布满足于某一个模型,那么那些拥有较小概率出现的数据点(或者说与模型不能完美拟合的数据点)被称为异常点。例如,假设数据的分布满足高斯分布(Gauss model, Normal model),那么根据我们的概率密度函数可知,大部分数据点都处于[u-3s, u+3s]中,其中u表示平均值,s代表标准差,那么处于其他范围内的点属于小概率事件,我们将其视作为异常点。
1真实世界的数据的分布可能并不(严格)满足某个模型,参数一旦设置错误,那么后续异常点检测会出现误差2此方法在一维数据上表现还行,到了高维数据上则效果很差
4. 基于聚类
基于聚类的方法[4]接住聚类的算法,首先将数据集使用聚类算法进行聚类,在得到的聚类结果中,选取那些拥有较少样本的类中的实例,或者未被分类的实例作为异常点。常用的聚类的算法有DBSCAN[17],FIND OUT[18] 等。
1此方法强烈依赖于聚类算法的好坏
5. 其他方法
Aggarwal首先提出了高维数据的异常点检测概念[19]和相应的挑战。针对于高维数据的异常点检测,也有很多方法出现,如 Isolation Forest[20] 和 Example-based 检测方法[21] 等。
---------------------------------------------------------------------------------------------------------
【更新:2017.12.16】
上述5种方法都属于无监督的方法(one class learning 除外),他们的目标在于在一堆未标记的数据中通过各自的方法能够找到与当前整体行为不相符的异常的模式和点。他们的优势是不需要人为的对数据进行标记。但是缺点也很明显,那就是不知道找出来的点到底是异常点,还是噪音?研究人员感兴趣的并不是噪音,而是那些有意义的异常点。怎么办呢,这里给大家引入有监督的异常点检测方法,即 supervised outlier detection[22] 。
6. 有监督的异常点检测法
【参考文献】 -------------------------------------------------------------------------------------------
-
Han, J., and M. Kamber. "Data Mining: Concepts and Techniques, Morgan Kaufmann." Machine Press, 2001 (in Chinese 5.4(2006):394-395. ↩
-
Varun Chandola and Vipin Kumar. Outlier and Anomaly Detection. Access[Online] http://www.kdd.org/kdd2016/topics/view/outlier-and-anomaly-detection ↩
-
R. A. Johnson and D. W. Wichern. "Applied multivariate statistical analysis." Technometrics, vol. 25, no. 4, pp. 385{386, 2007. ↩
-
Varun Chandola, Arindam Banerjee, and Vipin Kumar. "Anomaly detection:A survey." ACM Computing Surveys (CSUR) 41.3(2009):1-58. ↩
-
D. M. Hawkins. "Identification of outliers." Biometrics, vol. 37, no. 4, p. 860, 1980. ↩
-
Hautakangas, Hannu, and J. Nieminen. "Anomaly detection using one-class SVM with wavelet packet decomposition." This Publication Is Copyrighted.you May Download Display Andprint It for Your Own Personal Use.commercial Use Isprohibited (2011). ↩
-
Ethem Alpaydin. "Introduction to Machine Learning 2nd edition." pages 109-112 and 489 - 493, The MIT Press, Cambridge, Massachusetts, London, England, 2010. ↩
-
Christopher M. Bishop. "Neural networks for pattern recognition." Oxford University Press, Oxford 1996. ↩
-
Quinlan, J. Ross. "C4.5: programs for machine learning." 1(1993). ↩
-
Breiman, L. "Random forest." Machine Learning 45(2001):5-32. ↩
-
Scholkopf, Bernhard, and A. J. Smola. "Learning with kernels". MIT Press, 2002:2165 - 2176. ↩
-
Niu, Zhixian, et al. "A Survey of Outlier Detection Methodologies and Their Applications." International Conference DBLP, 2011:380-387. ↩
-
E. M. Knorr and R. T. Ng. "Algorithms for mining distance-based outliers in large datasets." in VLDB'98, Proceedings of 24rd International Conference on Very Large Data Bases, August 24-27, 1998, New York City, New York, USA, 1998, pp. 392-403. ↩
-
F. Angiulli and C. Pizzuti. "Outlier mining in large high-dimensional data sets." IEEE Trans. Knowl. Data Eng., vol. 17, no. 2. ↩
-
M. M. Breunig, H. Kriegel, R. T. Ng, and J. Sander. "LOF:identifying density-based local outliers." in Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 16-18, 2000, Dallas, Texas, USA. ↩
-
V. J. Hodge and J. Austin. "A survey of outlier detectionmethodologies." Artif. Intell. Rev., vol. 22, no. 2, pp. 85-126, 2004. ↩
-
M. Ester, H. Kriegel, J. Sander, and X. Xu. "A density-based algorithm for discovering clusters in large spatial databases with noise." in Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96), Portland, Oregon, USA, 1996, pp. 226-231. ↩
-
D. Yu, G. Sheikholeslami, and A. Zhang. "Findout: Finding outliers in very large datasets." Knowl. Inf. Syst., vol. 4, no. 4, pp. 387-412, 2002 ↩
-
C. C. Aggarwal and P. S. Yu. "Outlier detection for high dimensional data." in Proceedings of the 2001 ACM SIGMOD international conference on Management of data, Santa Barbara, CA, USA, May 21-24, 2001, 2001, pp. 37-46. ↩
-
F. T. Liu, K. M. Ting, and Z. Zhou. "Isolation forest." in Proceedings of the 8th IEEE International Conference on Data Mining (ICDM 2008), December 15-19, 2008, Pisa, Italy, 2008, pp. 413-422. ↩
-
Y. Li and H. Kitagawa. "Example-based robust db-outlier detection for high dimensional data." in Database Systems for Advanced Applications, 13th International Conference, DASFAA 2008, New Delhi, India, March 19-21, 2008. Proceedings, 2008, pp. 330-347. ↩
-
Aggarwal, Charu C. Supervised Outlier Detection. Outlier Analysis. Springer New York, 2013:169-198. ↩
-
Domingos, Pedro. "MetaCost:a general method for making classifiers cost-sensitive." ACM SIGKDD International Conference on Knowledge Discovery and Data Mining ACM, 1999:155-164.↩