2010-06-10 53 views
4

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

任何指针将不胜感激。

+1

这取决于你说“稀有事件”时的意思......一个事件的罕见度如何在问题的领域中量化? – Kiril 2010-06-10 20:06:10

+0

观察标记点过程如何处理信息增量。 – Tristan 2010-06-10 20:39:00

+0

在几天之内,但数据是一分钟的数据。因此,它在(2-10)* 1440分钟 – AlgoMan 2010-06-10 22:10:52

回答

5

它可能有助于更多地描述你的情况。既然你试图找到罕见的事件,我认为你有一个不稀罕的工作定义(对于一些问题空间,这真的很难)。

例如,可以说我们有一些过程不是随机行走过程,例如某些服务的CPU使用率。如果你想检测罕见事件,你可以采取平均利用率,然后看几个标准差。来自Statistical Process Control的技术在这里很有用。

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

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

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

现在,如果你能够定义你的罕见事件集,它可能会更简单地生成启发式。为了检测罕见的事件,我总是发现这个效果更好。

+0

约定120分钟:)。 我想弄清楚的问题是,在发生这些事件之前,我是否可以捕捉到任何信号。所以时间因素在这里起作用。 由于之前定义了基于规则的方法。但是,当它正在研究的软件/硬件发生变化时,并不知道。 – AlgoMan 2010-06-11 17:13:49

+0

唯一要做的就是不断重新训练模型。机器学习通过观察过去而起作用,因此它假设未来将与过去相似。所以你可以做一些事情来确定一个过程是否不正常。但是,您可能无法将其归类为特定类别,因为您之前没有看到它。 考虑高频交易。他们的模型建立在大多数市场条件下工作。当市场状况不正常时,他们会关闭,因为他们不确定模型是否可行。 – 2010-06-11 17:28:00