检测异常的 9 种方法

В 以前的文章 我们讨论了时间序列预测。 合乎逻辑的延续将是一篇关于识别异常的文章。

应用

异常检测用于以下领域:

1)设备故障预测

因此,2010年,伊朗离心机遭到震网病毒攻击,导致设备进入非最佳运行状态,部分设备因加速磨损而瘫痪。

如果在设备上使用异常检测算法,则可以避免故障情况。

检测异常的 9 种方法

寻找设备运行中的异常不仅用于核工业,还用于冶金和飞机涡轮机的运行。 在其他领域,使用预测诊断比由于不可预测的故障而可能造成的损失更便宜。

2)欺诈预测

如果从您在阿尔巴尼亚波多利斯克使用的卡中提取资金,交易可能需要进一步检查。

3)异常消费模式识别

如果某些客户表现出异常行为,则可能存在您没有意识到的问题。

4)异常需求和负载识别

如果快速消费品商店的销售额低于预测的置信区间,则值得找出发生这种情况的原因。

识别异常的方法

1)具有一类一类SVM的支持向量机

适用于训练集中的数据服从正态分布,但测试集中包含异常情况。

一类支持向量机在原点周围构造一个非线性曲面。 可以设置数据被视为异常的截止限制。

根据我们 DATA4 团队的经验,One-Class SVM 是解决发现异常问题最常用的算法。

检测异常的 9 种方法

2)隔离森林法

采用“随机”造树方法,排放物将在早期阶段(在树的较浅深度)进入叶子,即排放更容易“隔离”。 异常值的隔离发生在算法的第一次迭代中。

检测异常的 9 种方法

3)椭圆包络线及统计方法

当数据呈正态分布时使用。 测量值越接近混合分布的尾部,该值越异常。

其他统计方法也可以包含在此类中。

检测异常的 9 种方法

检测异常的 9 种方法
图片来自 dyakonov.org

4) 公制方法

方法包括 k-近邻、k-近邻、ABOD(基于角度的异常值检测)或 LOF(局部异常值因子)等算法。

如果特征中的值之间的距离相等或标准化(以免测量鹦鹉中的蟒蛇),则适用。

k近邻算法假设正常值位于多维空间的某个区域,并且到异常点的距离将大于到分离超平面的距离。

检测异常的 9 种方法

5)聚类方法

聚类方法的本质是,如果一个值距离聚类中心超过一定量,则该值可以被认为是异常的。

最主要的是使用正确聚类数据的算法,这取决于具体任务。

检测异常的 9 种方法

6) 主成分法

适用于突出显示色散变化最大的方向的情况。

7)基于时间序列预测的算法

这个想法是,如果一个值落在预测置信区间之外,则该值被视为异常。 为了预测时间序列,使用了三重平滑、S(ARIMA)、boosting 等算法。

时间序列预测算法在上一篇文章中讨论过。

检测异常的 9 种方法

8)监督学习(回归、分类)

如果数据允许,我们会使用从线性回归到循环网络的各种算法。 让我们衡量一下预测值与实际值之间的差异,并得出数据偏离常态的程度的结论。 重要的是算法具有足够的泛化能力并且训练集不包含异常值。

9) 模型试验

让我们将搜索异常的问题视为搜索建议的问题。 让我们使用 SVD 或分解机来分解我们的特征矩阵,并将新矩阵中与原始矩阵显着不同的值视为异常。

检测异常的 9 种方法

图片来自 dyakonov.org

结论

在本文中,我们回顾了异常检测的主要方法。

发现异常在很多方面都可以称为一门艺术。 不存在可以解决所有问题的理想算法或方法。 更多时候,使用一组方法来解决特定情况。 异常检测是使用一类支持向量机、隔离森林、度量和聚类方法以及使用主成分和时间序列预测来进行的。

如果您知道其他方法,请在文章的评论中写下它们。

来源: habr.com

添加评论