阅读更多
【编者按】区别于传统环境,鉴于云环境中众多不可预测的因素和异常,其时间序列breakout检测并不容易。近日,Twitter开源了一款基于E-Divisive with Medians(EDM)的breakout检测工具,旨在更好地分析复杂环境中的时间序列数据。

以下为译文

当下,大数据已经深入影响到各个领域,其中包括新产品决策制定、用户参与程度衡量、产品的定制化推荐、医疗、数据中心效率等。

而着眼数据类型,时间序列数据无疑是非常常见的一种形式。随着数据收集和挖掘成本的下降,包括Twitter等越来越多的公司每天都会使用大数据技术执行数百万的度量。而在生产环境中,时间序列也常常因为内在或(和)外在的因素而产生breakout(断层,跳跃),不幸的是,这些breakout往往可能会从本质上影响到用户体验或者(和)业务底线。举个例子,在云基础设施环境中,系统度量时间序列数据突变(类似硬件故障影响等因素)可能就会对服务的可用性和性能产生影响。

鉴于Twitter的实时特性(高性能已经成为最佳用户体验交付的关键所在),具备及早发现breakout的能力无疑至关重要。同时,breakout监测还常常被用于考量现实生活中一些流行事件的用户参与形势,比如奥斯卡奖、超级碗、世界杯等。

Breakout由两个稳定状态和一个过渡区间构成。概括来讲,breakout分为两种:

  • 均值漂移(Mean shift):时间序列的突发性变化。举个例子,CPU使用率忽然从40%跳到60%就是个均值漂移。
  • 平滑改变(Ramp up):一个渐变的过程,两个平稳状态之间平滑的转变。举个例子,CPU利用率缓缓地从40%提升到60%。

下图阐述了现实数据中的多个均值漂移



鉴于度量上的每个增值都可以被收集,breakout的自动化检测已势在必行。当下已经不乏许多传统环境下的breakout检测研究,但是却不存在云数据中的breakout检测技术。这种情况主要归结于现存技术在异常环境中不具备足够的鲁棒性,而这些异常在云数据中又恰恰经常出现。

今天,我们非常高兴的公开BreakoutDetection,一个可以便捷和快速监测breakout的开源R包。通过BreakoutDetection,我们希望社区可以像Twitter一样从中获益,并且促进它的快速发展。

BreakoutDetection建立的原因非常简单,我们期望在异常环境中拥有一个鲁棒性良好的工具,站在统计的角度上对breakout进行检测。当下,BreakoutDetection包已可被用于各种各样的环境中,举个例子,它可以在用户参与的A/B测试环境中检测breakout,也可以被用于行为变化的检测,或者解决计量经济学、金融工程学以及社会科学等领域的问题。

BreakoutDetection工作机制

这个包实现了一个被称为E-Divisive with Medians(EDM)的算法。同时,EDM同样可用于给定时间序列中的分布变化。EDM使用了一个 极具鲁棒性的度量指标,也就是通过中值,使用排列检验来概算一个breakout的统计显著性。

此外,EDM是非参数型的。鉴于生产数据很少遵从通常的假定正态分布以及其他公认模型,非参数型这一点非常重要。而在我们的实践中,时间序列往往包含一个以上的breakout。有鉴于此,BreakoutDetection包同样可以被用于给定时间序列上的多breakout检测。

开始使用BreakoutDetection

在R控制台中使用如下命令安装这个R包:
install.packages("devtools")
devtools::install_github("twitter/BreakoutDetection")
library(BreakoutDetection)

breakout函数被调用以检测给定时间序列上的一个或多个统计显著性breakout,你可以使用以下命令来获得breakout函数的帮助文档:
help(breakout)

简单用例

为了完成这个例子,我们建议用户使用BreakoutDetection包中包含的实例数据集,这个操作可以通过以下命令完成:

data(Scribe)
res = breakout(Scribe, min.size=24, method='multi', beta=.001, degree=1, plot=TRUE)
res$plot

通过上面的操作,你可以获得下图



从上图我们可以得知,我们发现给定时间序列中存在一个breakout,同时还存在大量的异常。两个垂直红线中间的部分显示了由EDM算法检测出的breakout。区别于上文我们提到的常见方法,EDM在多异常环境下表现出了良好的鲁棒性。时间序列上出现的平均变化可以通过下方注释图更好地进行理解:



上面注释图中的水平线相当于每阶段的近似均值。

写在最后

感谢James Tsiamis和Scott Wong的支持,以及该项目的主要研究员Nicholas James。
  • 大小: 71 KB
  • 大小: 80.9 KB
  • 大小: 83 KB
来自: CSDN
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Faster RCNN训练出现问题:ValueError: operands could not be broadcast together with shapes

    ss = 0.0154733 (* 1 = 0.0154733 loss) I1017 02:21:18.817603 16224 solver.cpp:245] Train net output #3: rpn_loss_bbox = 0.101269 (* 1 = 0.101269 loss) I1017 02:21:18.817608 16224 sgd_solver.cpp:106

  • ValueError: operands could not be broadcast together with shapes (9,8) (8,9)

    在进行矩阵计算的时候遇到的错误,为了方便理解,以3*2和2*3的矩阵为例。 ValueError: operands could not be broadcast together with shapes (3,2) (2,3) import numpy as np a=np.array([[1,2],[3,4],[5,6]]) b=np.array([[1,1,1],[2,2,2]]) p...

  • 训练faster rcnn的时候遇到的问题

    speed: 1.352s / iterTraceback (most recent call last): File "./tools/train_net.py", line 112, in <module> max_iters=args.max_iters) File "/home/zhangning/faster-rcnn/tools/../lib/fast_rcnn/...

  • 深度学习:使用残差网络时出现ValueError: Operands could not be broadcast together with shapes (2985, 48) (2984, 48)

    最近想使用残差网络去跑模型,看看能不能提升训练精度,但是在连接主路和辅路的时候 x1=keras.layers.add([x1,x2]) 遇到错误: ValueError: Operands could not be broadcast together with shapes (2985, 48) (2984, 48) 这个错误的意思就是主路输出的张量的shape和辅路输出的张量的shape...

  • ValueError: operands could not be broadcast together with shapes、numpy广播错误

    ValueError: operands could not be broadcast together with shapes、numpy广播错误 问题 # 不符合numpy的广播规则,触发了计算错误。两个向量或者矩阵维度不同,没法进行按位的运算; M = np.ones((3, 2)) a = np.arange(3) M+a 解决方案 #查看np.newaxis进行维度扩增后的shape a[:, np.newaxis].shape (3, 1) # 使用n

  • pva-faster-rcnn配置安装及训练自己的数据集

    继fasterrcnn后,又一个pva-fasterrcnn的配置教程,希望可以帮助大家。

  • Faster RCNN train.py

    定义了一个类:class SolverWrapper class SolverWrapper(object): """A simple wrapper around Caffe's solver. This wrapper gives us control over he snapshotting process, which we use to unnormalize

  • Python错误集锦

    1. centos更新到python2.7时,无法正常使用方向键: zhuy

  • Faster-RCNN 训练自己数据集的坑记录

    正所谓,跑通了的都一样,错误千万样。Faster-RCNN 训练自己数据集的坑记录

  • python np.newaxis

    np.newaxis的功能是插入新维度,看下面的例子: a=np.array([1,2,3,4,5]) print a.shape print a 输出结果 (5,) [1 2 3 4 5] 可以看出a是一个一维数组, x_data=np.linspace(-1,1,300)[:,np.newaxis] a=np.array([1,2,3,4,5]) b=a[np.

  • ValueError: operands could not be broadcast together with shapes (416,416,4) (3,)

    1.问题描述 在深度学习训练、读取图片时,遇到下面问题 ValueError: operands could not be broadcast together with shapes (416,416,4) (3,) 2.原因分析 一般是读三通道的图片,即RGB图片,而根据报错情况,可以看到图片是四通道,此外还有灰度图是单通道也会类似情况。 3.处理方法 3.1 直接跳过非三通道图片 for ......

  • ValueError: operands could not be broadcast together with shapes解决

    ValueError: operands could not be broadcast together with shapes (1,2) (1,3)    import numpy as np a=np.array([[1,2]]) b=np.array([[1,5,3]]) print(a+b) 原因:a与b的shape不同,所以报错,解决方法。维度调成相同即可...

  • 如何解决 ValueError: operands could not be broadcast together with shapes

    在复现DHSnet中碰到了这个问题: 使用的数据集为ECSSD 出错的代码行为 该函数的作用为将输入进来的图片和真值进行去均值处理,以增强物体与背景的对比度,最后转化为GPU可以处理的张量。 而为什么会在这一行出错呢,直译过来就是操作数不能与形状一起广播,关于np的广播机制,这篇博文有详细的记载我就不赘述了。这么一看,就推测img中的向量纬度出错导致不能相减。 将代码改为并运行 结果发现打印...

  • could not broadcast input array from shape (128,128,3) into shape (1)错误原因

    原本是一个简单的list转换为array函数,结果却出现这样的错误: could not broadcast input array from shape (128,128,3) into shape (1) 后来尝试了网上很多种方法,都没有办法解决问题。 可能的原因: 1、本身的数据集出现问题,没有统一尺寸。 2、(我代码出错的地方)tensorflow函数处理上出现问题,因为出错的地方在map...

  • numpy中的广播(broadcast)

    numpy中的广播(broadcast)机制是一个非常重要手段处理不同维度数组(array)间的操作,文章翻译一个非常棒的broadcast教程,希望多需要的人有些帮助。

  • python Numpy 数组操作时报 "shape mismatch: indexing arrays could not be broadcast together with shapes" 错误

    python Numpy 数组操作时报 "shape mismatch: indexing arrays could not be broadcast together with shapes" 错误的解决方案 在运行python数组操作时,报”indexing arrays could not be broadcast together with shapes“错误,原代码如下: # ...

  • 介绍Together

    介绍Together     最开始接触Together时,它是个能自动生成代码的建模工具。Borland公司收购Together之后,在建模方面增加了许多功能,同时增加了其它一些功能,如代码审计、度量等。OK,这么好的工具,我们就来了解一下吧。 一、功能特点    Together的功能大致有(摘自Together文档):    1、支持所有主要的UML图形    充分利用UML搭建正确的架构,

  • pva-faster-rcnn

    训练可以参考这篇文章: http://blog.csdn.net/samylee/article/details/52860038 继fasterrcnn后,又一个pva-fasterrcnn的配置教程,希望可以帮助大家。若不能配置成功,请与我联系,邮箱:ahuljx@126.com 注意:有些复制的终端命令如果不能在终端运行,请注意英文全角半角问题,可以将命令输入终

  • Showing ValueError: shapes (1,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)

    在使用 numpy重点矩阵 和 array数组相乘的时候,经常会发生这个错误, 解决方法可以进行一定的转换: 其实我觉得一般不必要把list转为mat,还不如直接转为array. ...

Global site tag (gtag.js) - Google Analytics