有没有关于人们用于稀有事件检测的算法的好参考?另外,时间因素是如何考虑的?如果我有一个案例,其中连续的数据点(t_1 到 t_n)表示某些信息,如何将其纳入到正常的机器学习场景中?
任何指导都会受到欢迎。
回答:
更详细地描述你的场景可能会有所帮助。由于你在寻找稀有事件,我假设你对非稀有事件有了一个工作定义(对于某些问题空间来说,这真的很难)。
例如,假设我们有一个非随机游走过程,如某些服务的CPU利用率。如果你想检测稀有事件,你可以计算平均利用率,然后查看几个标准差之外的情况。这里可以使用统计过程控制的技术。
如果我们有一个随机游走过程,如股票价格(打开了一罐虫子…为了简单起见,请假设这是真的)。从t到t+1的方向移动是随机的。一个随机事件可能是连续多次朝一个方向移动,或者在单个时间步长内朝一个方向的大幅移动。查看随机微积分以了解基础概念。
如果在步骤t的过程仅依赖于步骤t-1,我们可以使用马尔可夫链来建模这个过程。
这是你可以使用的一些数学技术的简短列表。现在谈谈机器学习。你为什么想使用机器学习?(总是很好地思考一下,以确保你没有过度复杂化问题)假设你确实需要,并且这是正确的解决方案。在这个阶段,你使用的具体算法并不重要。你需要做的是定义什么是稀有事件。相反,你可以定义什么是正常事件,并寻找那些不正常的事件。请注意,这两者并不相同。假设我们产生了一组稀有事件r1…rn。这些稀有事件各自会有一些相关特征。例如,如果一台计算机发生故障,可能会有最后一次在网络上看到的时间、其交换机端口状态等特征。这实际上是机器学习中最重要的部分,训练集的构建。它通常包括手动标记一组示例来训练模型。一旦你更好地理解了特征空间,你可能能够训练另一个模型来为你标记。重复这个过程,直到你满意为止。
现在,如果你能够定义你的稀有事件集,可能更便宜的方法是简单地生成启发式规则。对于检测稀有事件,我一直发现这种方法更有效。