在web应用程序中,每次发生事件时,我都会得到一个触发器。我想检测出“暴力”频率峰值,这很可能转化为异常行为。
我想出了两种实现这一目标的天真方法:
我想知道是否有一个通用/标准的解决方案来解决这个问题,或者您是否能想到更有效或更优雅的解决方案。
提前谢谢你。
编辑-另一个建议
我的一个朋友建议用霍尔特-温特斯预测来检测异常行为。您可以在下面的链接中找到有关此方法的更多信息:
http://www.hpl.hp.com/news/events/csc/2005/jake_slides.pdf
http://www.usenix.org/events/lisa00/full_papers/brutlag/brutlag_html/
发布于 2011-09-01 20:34:25
我不是专家。我要做的是:
假设您只保留最后一个n结果,而x_n是最后一个示例(与前一个事件的时间差)。
α_n x_n + α_{n-1}/2 x_{n-1} + ... + α_{1} 2^{-n} x_1 = T如果差异T - T_{previous} (其中T_{previous}是T的前一个值)超过了一个限制,那么就做一些事情。
如果您的x_i值是二进制的,您可以很好地使用shift和or操作,如果速度是问题的话。
发布于 2011-09-02 06:05:02
只需在最后X分钟的值上得到一个简单的平均值(保留这些值)。
将每个新传入值与平均值进行比较:
如果
。
如果你认为它可以被“稳步增长的流量”所欺骗,那就让X足够大。
发布于 2011-12-11 13:20:24
您可以计算指数加权浮法均值估计,并将其与以前的值进行比较。突然增加可能是您试图检测到的,但是结合了一定的最低阈值(例如0到1并不显着)。
但是假设当前的浮动意味着从100跳到200,这很可能是你想要检测的那种事件。
https://stackoverflow.com/questions/7262325
复制相似问题