mass(mueen的相似性搜索算法)

mass-ts的Python项目详细描述


mass(mueen的相似性搜索算法)

mass允许您在时间序列中搜索产生距离数组的子查询。这些距离数组使您能够识别与查询相似或不同的子序列。mass的核心是有效地计算z-标准化下的欧几里德距离,本质上是领域不可知的。它是建立在矩阵轮廓算法基础上的基本算法。

mass ts是一个与python 2和3兼容的库。

免费软件:apache软件许可证2.0

功能

原始作者的算法

  • mass—mass的第一次实现
  • mass2-mass的第二个实现速度明显更快。通常这是你会用到的。
  • mass3-mass2的分段版本,可以根据硬件进行调整。通常用于搜索非常大的时间序列。
  • 质量加权-todo

特定于库的算法

  • mass2_batch—mass2的一个批处理版本,它减少了总体内存使用,提供并行化,并使您能够在时间序列中找到前k个匹配项。使用此实现的目标是进行非常大的时间序列相似性搜索。
  • top_k_motif-查找给定查询的类似子序列的top k个数。它返回子序列的起始索引。
  • top_k_discords-查找给定查询的不同子序列的前k个数。它返回子序列的起始索引。

安装

pip install mass-ts

示例用法

可以在mass-ts-examples repository找到一个专门的实用示例库。

importnumpyasnpimportmass_tsasmtsts=np.loadtxt('ts.txt')query=np.loadtxt('query.txt')# massdistances=mts.mass(ts,query)# mass2distances=mts.mass2(ts,query)# mass3distances=mts.mass3(ts,query,256)# mass2_batch# start a multi-threaded batch job with all cpu cores and give me the top 5 matches.# note that batch_size partitions your time series into a subsequence similarity search.# even for large time series in single threaded mode, this is much more memory efficient than# MASS2 on its own.batch_size=10000top_matches=5n_jobs=-1indices,distances=mts.mass2_batch(ts,query,batch_size,top_matches=top_matches,n_jobs=n_jobs)# find minimum distancemin_idx=np.argmin(distances)# find top 4 motif starting indicesk=4exclusion_zone=25top_motifs=mts.top_k_motifs(distances,k,exclusion_zone)# find top 4 discord starting indicesk=4exclusion_zone=25top_discords=mts.top_k_discords(distances,k,exclusion_zone)

引文

Abdullah Mueen,Yan Zhu,Michael Yeh,Kaveh Kamgar,Krishnamurthy Viswanathan,Chetan Kumar Gupta和Eamonn Keogh(2015),欧氏距离下时间序列子序列最快相似搜索算法,网址:http://www.cs.unm.edu/~mueen/FastestSimilaritySearch.html

======= 历史记录

0.1.0(2019-05-16)

  • pypi上的第一个版本。

0.1.1(2019-05-17)

  • 小精度错误修复。

0.1.2(2019-05-19)

  • mass2_批量发布用于高效的大时间序列搜索。

0.1.3(2019-05-19)

  • top_k_基序-找到给定距离剖面的top k相似子序列。
  • top_k_discords-在给定距离剖面的情况下,查找top k不同的子序列。

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

推荐PyPI第三方库


热门话题
java如何从下拉列表中获取所选号码?   Java代码不允许我将一个方法从一个类调用到另一个类   java如何在集合的Assertj集合中进行验证   java最少重复/在数组中出现一次的项   java如何将复选框值传递给动作\u发送   java排序2D数组或排序1D+线性搜索。   java有没有比使用CountDownLatch更好的等待两个线程完成任务的方法?   java如何从liferay portlet读取Excel文件?   NumberFormatException,因为在准备好的Java语句上无法识别NULL   如何在JavaJDBC中运行SQL(MYSQL)存储过程?   使用开放街道地图的java路由   java我正在尝试添加两个多项式,它们的系数不同,度数也不同   java二叉树的垂直顺序遍历   java多数组输入   最终量化方法的java方法拦截器   eclipse中的java Tomcat 404错误   java异常在提交后从EntityManager获取会话时发生,在会话前关闭   java可以在另一个属性文件中生成一个属性文件吗   java通过文件输入计算最小/最大值   混合Java配置和XML Spring 4