python数据挖掘-异常检测笔记
1.异常检测
1.1主要过程
获得大量历史数据,从正常的数据中识别出异常的数据,例如信用卡使用消费异常、工业生产异常、网络流里的异常等。
1.2异常检测任务
有监督: 训练集的正例和反例均有标签
无监督: 训练集无标签。
半监督: 在训练集中只有正例,异常实例不参与训练
1.3 异常检测场景
故障检测: 主要是监控系统,在故障发生时可以识别,并且准确指出故障的种类以及出现位置。主要应用领域包括银行欺诈、移动蜂窝网络故障、保险欺诈、医疗欺诈。
2.异常检测方法
2.1基础方法
2.1.1基于统计学方法
利用统计学方法,队训练集进行训练,拟合出一个统计学模型,不符合模型分布的视为异常点。
2.1.2线性模型
典型的如PCA方法,Principle Component Analysis是主成分分析,简称PCA。对多维数据进行降维处理。
2.1.3 基于邻近度的方法
适用于数据点的聚集程度高、离群点较少的情况。
基于相似度的检测方法大致可以分为三类:
(1)基于集群(簇)的检测,如DBSCAN等聚类算法。
(2)基于距离的度量,如k近邻算法。
(3)基于密度的度量,如LOF(局部离群因子)算法。
常用的集成方法有Feature bagging,孤立森林等。
2.2集成方法
将多个算法或多个基检测器的输出结合,可以提高数据挖掘算法精度,输出结果更加鲁棒。
2.3 机器学习
在有标签的情况下,可以使用树模型(gbdt,xgboost等)进行分类,缺点是异常检测场景下数据标签是不均衡的,但是利用机器学习算法的好处是可以构造不同特征。