罕见的事件检测

时间:2010-06-10 19:21:22

标签: machine-learning data-mining classification

对人们用于罕见事件检测的算法有什么好的参考吗? 另外,如何考虑时间因素?如果我有一个连续数据点告诉某事(t_1到t_n)的情况,那么如何将其纳入正常的机器学习场景?

任何指针都将受到赞赏。

1 个答案:

答案 0 :(得分:6)

更多地描述您的场景可能会有所帮助。因为你试图找到罕见的事件,我认为你有一个非常罕见的工作定义(对于一些问题空间,这真的很难)。

例如,假设我们有一些进程不是随机游走过程,例如某些服务的CPU利用率。如果您想检测罕见事件,可以采用平均利用率,然后查看几个标准偏差。 Statistical Process Control中的技巧在这里很有用。

如果我们有随机游走过程,例如股票价格(可以打开蠕虫......请为了简单起见而假设这一点)。从t到t + 1的定向运动是随机的。随机事件可以是单个方向上的特定数量的连续移动或者单个时间步骤中单个方向上的大移动。有关基本概念,请参阅Stochastic Calculus

如果步骤t的流程仅依赖于步骤t-1,那么我们可以使用Markov Chains来建模流程。

这是您可以使用的数学技巧的简短列表。现在进行机器学习。你为什么要用机器学习? (总是很好地考虑确保你不会使问题复杂化)让我们假设你这样做,这是正确的解决方案。您使用的实际算法在此阶段并不是非常重要。你需要做的是定义一个罕见的事件。相反,您可以定义正常事件的内容并查找不正常的事物。请注意,这些不是一回事。假设我们生成一组罕见事件r1 ... rn。每个罕见的事件都会有一些与之相关的功能。例如,如果计算机出现故障,可能会出现上次在网络上看到的功能,其交换机端口状态等等。这实际上是机器学习,训练集构建中最重要的部分。它通常包括手工标记一组示例来训练模型。一旦您对特征空间有了更好的理解,您就可以训练另一个模型为您贴上标签。重复此过程,直到您满意为止。

现在,如果您能够定义罕见的事件集,那么简单地生成启发式算法可能会更便宜。为了检测罕见事件,我总是发现这可以更好地工作。