虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:首页 > 技术阅读 >  无监督学习:决策树AI异常检测

无监督学习:决策树AI异常检测

时间:2024-01-26

最近我去了一个关于流处理的演讲,但是该演讲的用例(use case)是关于异常检测。当他们开始谈论无监督决策树时,我的天线就竖起来了。无监督决策树是什么意思?它们会分裂出什么?

事实证明,在异常检测领域,无监督决策树的应用是相当普遍的。但是因为我并不从事该领域的相关工作,而且我怀疑我们中也很少有人在从事该领域的工作,所以我觉得我有必要分享下我发现的东西。

异常 VS 稀疏数据

几周前,我们介绍了处理不平衡数据集的技术。对于数据集不平衡到什么程度应被归为异常这个问题,人们并没有统一的标准。就像判断艺术的伟大与否,你看到的时候你就知道了。

这里我们作为例证的异常指的是入侵检测中的异常。虽然这些异常一天之内会出现好多次,但是跟常规的网页日志和系统数据包所产生的巨量数据相比,但是这些数据还是很少见的。具体到人的生活当中,异常可以是信用卡诈欺事件和正常 CT 扫描中发现癌症。

如果你认为你的用例介于稀疏和异常之间,那么就按照我们所做的一样,将两种方法都试一下,看看哪个最好。

监督 VS 无监督

在异常检测中,我们试图识别与数据集内与预期模式不匹配且根据定义很少的项目或事件。入侵检测系统中广泛地采用了‘基于特征码(signature based)’的方法来创建用于正常的监督技术中的训练数据。当监测到攻击时,相关的流量模式就会被记录、标记和人为地被分类为一次入侵,然后这些数据会与正常数据结合起来,用于创建监督训练集。

不论是受监督决策树、无监督决策树或者是由二者形成的随机森林,均可用作异常检测的工具。决策树是非参数的,也不会对数据的分布做出假设。它们擅长将数字和分类相结合,高效地去处理缺失的数据。所有类型的异常数据往往都是高维度数据,而决策树可以将其全部纳入其中,并提供合理清晰的指导,以便在修剪(pruning)后仅留下重要信息。

完整的来说,还有一类半监督异常检测,其训练数据仅由正常事务组成,不包含任何异常。这也被称为‘一类分类(One Class Classification)’,并以稍微不同的方式使用一类 SVM 或自动编码器,在这里就不讨论。

事实上,有监督方法在入侵检测方面仍然比无监督方式更精确,但是它们完全无法确定新的或许有严重威胁的零时差(zero-day)攻击。

无监督决策树

无监督决策树的概念其实有点误导性,因为它其实是一个无监督的聚类算法的组合,通过创建第一个关于好坏的猜测,来决定决策树应该在何处分裂。

步骤一:对您的数据运行一个聚类算法。我在尝试了几乎所有的聚类技术后,似乎旧的 k-NN 仍然是最好的。设定 K=2 似乎很诱人,但是鉴于可能存在多种不同类型的入侵,预期好的结果是不现实的。实际的指导是将 K 至少设置为 10,并且对值进行高达 50 的试验。在此过程中,因为数据是未标记的,所以没有能够确定最佳聚类的目标函数。

虽然在文献中并没有涉及,但是我们有很好的理由去尝试一下早期关于不平衡数据集的文章中讨论过的 SMOTE (Synthetic Minority Oversampling Technique),因为该技术的主要目的是澄清聚类之间的界限。

步骤二:记录了数据中的聚类后,以正常的方式运行决策树。显然的是,如果 K 很大,那么这将是一个多级问题,就需要通过解释阈值来发现异常。

从图中 ROC 曲线可以看出比照乳腺癌检测基准数据,k-NN 方法得到的结果是很不错的(请注意 AUC 轴在 0.5 时截止)。

异常检测无监督决策树的实际执行其实更为复杂,还会有关于不同类型异常的问题、数据规范化过程以及基准数据集本身的变化等多方面的问题。如果你想深入研究这一点,我建议你可以去阅读下本文摘录图表的原文,该文比较了各种数据集中八种不同的技术。

最佳实践

如果你想对此进行探索,那么用已存在的无监督随机森林的 Python 脚本,会让这个过程更容易一些。另外,我听的演讲来自于戴尔 EMC 的新兴技术部(Emerging Technologies Division)的首席解决方案架构师 Boni Bruno。他描述的场景是通过监测每个单独的地点,来实现在世界范围内分布的遍及全球各地的数据中心进行异常监测。

该技术体系结构的核心是 Spark Streaming。流(stream)中的一个操作会包含有基于 Python 无监督随机森林脚本的监测算法。警报通知会在监测到入侵后,不到 5 秒之内发出。

同样有意思的是,该系统的设定是每 24 小时收集一个新的(真正的大数据)数据集,来重新训练模型,以便实时捕获任何新的零时差攻击。

作者简介:

Bill Vorhies 是一个数据科学中心的主编,自 2001 年起一直担任数据科学家。他的联系方式是:Bill@DataScienceCentral.com

原文链接:https://www.datasciencecentral.com/profiles/blogs/have-you-heard-about-unsupervised-decision-trees

来源:AI 前线

往期推荐

基于稀疏表示的半监督学习方法的创新与应用

尘埃大小的计算机现已具备深度学习能力

深度学习重塑助听器:助听器佩戴者终于

能在嘈杂的房间中辨别声音了