异常检测算法分类
在选择算法之前,重要的是考虑数据源的性质和质量,数据是否收到异常污染将会影响检测方法。如果训练数据不包含异常(或标记了异常以便删除),我们称该任务为新奇检测,否则,我们称该任务为离群点检测。
异常检测的算法分类:
- 预测(监督机器学习)
- 统计度量
- 无监督机器学习
- 拟合优度检测
- 基于密度的方法
一、预测(监督机器学习)
1.1 简介
利用过去的无异常的干净数据训练模型,并测量当前观察值与预测值的差异。确切的说,该类异常检测的算法应称为新奇检测。
1.2 适用范围
- 由于算法严格按照过去和现在的概念操作,因此仅使用一维时间序列
1.3 注意事项
- 训练集需是干净的无异常数据
二、统计度量
2.1 简介
我们也可以通过人为的定义一个统计值,并设定一个阈值,在阈值范围外的为异常值。如:超过移动平均值两个标准差的点,即为异常值。
2.2 常用方法
- 对于干净的无异常数据集,设均值或移动平均为基准,对于超过两个标准差的点,即视为异常。是一直新奇检测方法
- 对于包含异常值的数据集,设绝对中位差(MAD) 为基准,查过一定阈值为异常。是一种离群点检测方法
- 对于正态分布数据,使用 G r u b b s Grubbs Grubbs的离群检测。该方法每次迭代基于最值在正态中去除检测到的异常。是一种离群点检测方法
三、无监督机器学习
3.1 常用方法
- 单类支持向量机:利用不包含异常的干净数据集训练模型,创建决策边界,用于分类未来的输入数据点。由于标准的支持向量机实现中对于训练数据集中的离群值适用性比较低,故更适应新奇检测。
- 隔离森林:类似于随机森林,该算法通过迭代训练集中的数据点来训练模型,随机选择一个特征,并在最大值和最小值直接随机选择一个分割点,通过判断数据点在整体森林中的路径长度来确定是否异常,异常值具有更短的路径。考虑到异常点的阈值受到数据中污染比例的影响,故污染比例设为 0.01 0.01