В
应用
异常检测用于以下领域:
1)设备故障预测
因此,2010年,伊朗离心机遭到震网病毒攻击,导致设备进入非最佳运行状态,部分设备因加速磨损而瘫痪。
如果在设备上使用异常检测算法,则可以避免故障情况。
寻找设备运行中的异常不仅用于核工业,还用于冶金和飞机涡轮机的运行。 在其他领域,使用预测诊断比由于不可预测的故障而可能造成的损失更便宜。
2)欺诈预测
如果从您在阿尔巴尼亚波多利斯克使用的卡中提取资金,交易可能需要进一步检查。
3)异常消费模式识别
如果某些客户表现出异常行为,则可能存在您没有意识到的问题。
4)异常需求和负载识别
如果快速消费品商店的销售额低于预测的置信区间,则值得找出发生这种情况的原因。
识别异常的方法
1)具有一类一类SVM的支持向量机
适用于训练集中的数据服从正态分布,但测试集中包含异常情况。
一类支持向量机在原点周围构造一个非线性曲面。 可以设置数据被视为异常的截止限制。
根据我们 DATA4 团队的经验,One-Class SVM 是解决发现异常问题最常用的算法。
2)隔离森林法
采用“随机”造树方法,排放物将在早期阶段(在树的较浅深度)进入叶子,即排放更容易“隔离”。 异常值的隔离发生在算法的第一次迭代中。
3)椭圆包络线及统计方法
当数据呈正态分布时使用。 测量值越接近混合分布的尾部,该值越异常。
其他统计方法也可以包含在此类中。
图片来自 dyakonov.org
4) 公制方法
方法包括 k-近邻、k-近邻、ABOD(基于角度的异常值检测)或 LOF(局部异常值因子)等算法。
如果特征中的值之间的距离相等或标准化(以免测量鹦鹉中的蟒蛇),则适用。
k近邻算法假设正常值位于多维空间的某个区域,并且到异常点的距离将大于到分离超平面的距离。
5)聚类方法
聚类方法的本质是,如果一个值距离聚类中心超过一定量,则该值可以被认为是异常的。
最主要的是使用正确聚类数据的算法,这取决于具体任务。
6) 主成分法
适用于突出显示色散变化最大的方向的情况。
7)基于时间序列预测的算法
这个想法是,如果一个值落在预测置信区间之外,则该值被视为异常。 为了预测时间序列,使用了三重平滑、S(ARIMA)、boosting 等算法。
时间序列预测算法在上一篇文章中讨论过。
8)监督学习(回归、分类)
如果数据允许,我们会使用从线性回归到循环网络的各种算法。 让我们衡量一下预测值与实际值之间的差异,并得出数据偏离常态的程度的结论。 重要的是算法具有足够的泛化能力并且训练集不包含异常值。
9) 模型试验
让我们将搜索异常的问题视为搜索建议的问题。 让我们使用 SVD 或分解机来分解我们的特征矩阵,并将新矩阵中与原始矩阵显着不同的值视为异常。
图片来自 dyakonov.org
结论
在本文中,我们回顾了异常检测的主要方法。
发现异常在很多方面都可以称为一门艺术。 不存在可以解决所有问题的理想算法或方法。 更多时候,使用一组方法来解决特定情况。 异常检测是使用一类支持向量机、隔离森林、度量和聚类方法以及使用主成分和时间序列预测来进行的。
如果您知道其他方法,请在文章的评论中写下它们。
来源: habr.com