一个强大的和可扩展的库,可以用于各种时间序列数据挖掘任务

stump的Python项目详细描述


树桩

Stumpy是一个功能强大且可扩展的库,它可以有效地计算称为矩阵配置文件(matrix profile)的内容,可用于各种时间序列数据挖掘任务,如:

  • 模式/模体(在较长时间序列内近似重复的子序列)发现
  • 异常/新奇(不协调)发现
  • Shapelet发现
  • 语义分割
  • 密度估计
  • 时间序列链(时间顺序的子序列模式集)
  • 等等…

无论您是学术界、数据科学家、软件开发人员还是时间序列爱好者,Stumpy都易于安装,并允许您以最有效的方式计算矩阵配置文件。我们的目标是让您更快地了解时间序列。有关详细信息,请参见 文档

如何使用stumpy

典型用法(一维时间序列数据),带有 stump

importstumpyimportnumpyasnpyour_time_series=np.random.rand(10000)window_size=50# Approximately, how many data points might be found in a patternmatrix_profile=stumpy.stump(your_time_series,m=window_size)

一维时间序列数据的分布式使用,DASK通过树桩分布

importstumpyimportnumpyasnpfromdask.distributedimportClientdask_client=Client()your_time_series=np.random.rand(10000)window_size=50# Approximately, how many data points might be found in a patternmatrix_profile=stumpy.stumped(dask_client,your_time_series,m=window_size)

具有mstump的多维时间序列数据

importstumpyimportnumpyasnpyour_time_series=np.random.rand(3,1000)window_size=50# Approximately, how many data points might be found in a patternmatrix_profile,matrix_profile_indices=stumpy.mstump(your_time_series,m=window_size)

分布式多维时间序列数据分析

importstumpyimportnumpyasnpfromdask.distributedimportClientdask_client=Client()your_time_series=np.random.rand(3,1000)window_size=50# Approximately, how many data points might be found in a patternmatrix_profile,matrix_profile_indices=stumpy.mstumped(dask_client,your_time_series,m=window_size)

时间序列链:

importstumpyimportnumpyasnpyour_time_series=np.random.rand(10000)window_size=50# Approximately, how many data points might be found in a patternmatrix_profile=stumpy.stump(your_time_series,m=window_size)left_matrix_profile_index=matrix_profile[:,2]right_matrix_profile_index=matrix_profile[:,3]idx=10# Subsequence index for which to retrieve the anchored time series chain foranchored_chain=stumpy.atsc(left_matrix_profile_index,right_matrix_profile_index,idx)all_chain_set,longest_unanchored_chain=stumpy.allc(left_matrix_profile_index,right_matrix_profile_index)

哪里可以买到

Conda安装(首选):

conda install -c conda-forge stumpy

pypi安装,假设您已经安装了numpy、scipy和numba:

pip install stumpy

要从源代码安装stumpy,请参阅 文档中的说明

文档

为了充分理解和欣赏底层算法和应用程序,您必须阅读原始的 出版物 。有关如何使用stumpy的更详细示例,请参阅最新的 文档 ,或浏览以下教程:

  1. 矩阵配置文件-教程0
  2. 树桩基础-教程1
  3. 时间序列链-教程2 < > >

性能

我们使用numba jit编译版本的代码对随机生成的不同长度的数据(即 n p.random.rand(n) )进行性能测试。

Stumpy Performance Plot

原始结果显示为小时:分:秒。

<表> < COLGROUP > < COL/> < COL/> < COL/> < COL/> < COL/> < COL/> <广告> i n=2 i gpu-跺脚 树桩16 难倒了。128 残缺.256 < /广告> < > 6 64 00:00:10.00 00:00.00 00:00:05.77 00:00:06.08 7 128 00:00:10.00 00:00.00 00:00:05.93 00:00:07.29 8 256 00:00:10.00 00:00:00.01 00:00:05.95 00:00:07.59 9 512 00:00:10.00 00:00.02 00:00:05.97 00:00:07.47 10 1024 00:00:10.00 00:00.04 00:00:05.69 00:00:07.64 11 2048年 南部 00:00.09 00:00:05.60 00:00:07.83 12 4096 南部 00:00:00.19 00:00:06.26 00:00:07.90 13 8192 南部 00:00:00.41 00:00:06.29 00:00:07.73 14 16384 南部 00:00:00.99 00:00:06.24 00:00:08.18 15 32768 南部 00:00:02.39 00:00:06.48 00:00:08.29 16 65536 南部 00:00:06.42 00:00:07.33 00:00:09.01 17 131072 00:00:10.00 00:00:19.52 00:00:09.75 00:00:10.53 18 262144 00:00:18.00 00:01:08.44 00:00:33.38 00:00:24.07 19 524288 00:00:46.00 00:03:56.82 00:01:35.27 00:03:43.66 20 1048576 00:02:30.00 00:19:54.75 00:04:37.15 00:03:01.16 21 2097152 00:09:15.00 03:05:07.64 00:13:36.51 00:08:47.47 22 4194304 南部 10:37:51.21 00:55:44.43 00:32:06.70 23 8388608 南部 38:42:51.42 03:33:30.53 02:00:49.37 24 16777216 南部 南部 13:03:43.86 07:13:47.12 nan 17729800 09:16.00 南部 南部 07:18:42.54 25 33554432 南部 南部 南部 26:27:41.29 26 67108864 南部 南部 南部 106:40:17.17 nan 1000000 291:07:12.00 南部 南部 234:51:35.39 27 134217728 南部 南部 南部 南部 <表>

gpu-stomp:结果从原始的矩阵概要文件ii中复制出来纸张-nvidia tesla k80(包含2个gpu)

stump.16:总共16个CPU—16x Intel(R)Xeon(R)CPU E5—2650 v4@2.20GHz处理器,在没有DASK的单个服务器上与numba并行。

stumped.128:总共128个CPU—8个Intel(R)Xeon(R)CPU E5—2650 v4@2.20GHz处理器x 16台服务器,与Numba并行,并与分布式DASK一起分发。

Stumped.256:256个CPU,共8个Intel(R)Xeon(R)CPU E5-2650 v4@2.20GHz处理器x 32个服务器,与Numba并行,并与分布式DASK一起分发。

python版本

Stumpy支持Python3.6+,并且由于使用了Unicode变量名/标识符,因此与Python2.x不兼容。由于依赖关系很小,Stumpy可能可以在旧版本的Python上工作,但这超出了我们的支持范围,我们强烈建议您升级到最近的python版本。

获取帮助

首先,请检查github上的问题,看看您的问题是否已经在那里得到了回答。如果没有可用的解决方案,请随意打开新问题,作者将尝试以合理及时的方式作出回应。

贡献

我们欢迎任何形式的贡献!文档方面的帮助,特别是扩展教程,总是受欢迎的。若要投稿,请从项目中投稿,进行更改并提交请求。我们将尽力解决您的任何问题,并将您的代码合并到主分支中。

参考文献

是的,Chin Chia Michael等人。(2016)矩阵概要I:时间序列的所有成对相似连接:包含主题、不协调和形状的统一视图。ICDM:1317-1322。 链接

朱、严等。(2016)矩阵轮廓II:利用新算法和GPU突破时间序列模体和连接的1亿障碍。ICDM:739-748。 链接

是的,金嘉美,等。(2017)矩阵剖面六:有意义的多维母题发现。ICDM:565-574。 链接

朱、严等。(2017)矩阵剖面七:时间序列链:时间序列数据挖掘的新原语。ICDM:695-704。 链接

引用

如果您在科学出版物中使用过此代码库,并希望引用它,请使用《开放源码软件期刊》的文章。 < Buff行情> s.m.law, stumpy:一个强大的、可伸缩的时间序列数据挖掘python库 在:开放源码软件杂志,开放期刊,第4卷,第39号。 2019年

@article{law2017stumpy,title={{STUMPY: A Powerful and Scalable Python Library for Time Series Data Mining}},author={Law, Sean M.},journal={{The Journal of Open Source Software}},volume={4},number={39},pages={1504},year={2019}}

许可证和商标

< div > 树桩
版权所有2019 TD Ameritrade。根据3条BSD许可条款发布。
Stumpy是TD Ameritrade IP Company,Inc.的商标。保留所有权利。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:字符串。RTL设备语言用标志“+”格式化,数字后加符号   java GAE作为桌面应用程序(Swing)的服务提供商   java将InputStream转换为FileInputStream不适用于Apache POI   java外部Voronoi库“网格”:什么是草图和处理?   重载重写的泛型方法java   java显示组织上设置的错误。springframework。验证。jsp中的错误对象   java一些Spring模型属性没有显示在我的JSP中   java无法编译Guava 23的SimpleTimeLimiter示例   java如何更改JTree中的“根”目录名?   java如何在安卓中对相对布局产生连锁反应?   java错误:org。冬眠例外SQLGrammarException:无法提取结果集,dateAccessed是未知列   如何使用java监听JSON文件更新   由抽象封闭类创建的匿名内部类能否通过反射确定实现类?