OnLineML:时序数据挖掘-程序员宅基地

技术标签: 人工智能  php  数据库  

关于时序分析:

      我们跟随时间的脚步,试图解释现在、理解过去、甚至预测未来........

原文链接http://blog.sciencenet.cn/home.php?mod=space&uid=34250&do=blog&id=287173

 简介:

        时间序列是一种重要的高维数据类型,它是由客观对象的某个物理量在不同时间点的采样值按照时间先后次序排列而组成的序列,在经济管理以及工程领域具有广 泛 应用。例如证券市场中股票的交易价格与交易量、外汇市场上的汇率、期货和黄金的交易价格以及各种类型的指数等,这些数据都形成一个持续不断的时间序 列。利 用时间序列数据挖掘,可以获得数据中蕴含的与时间相关的有用信息,实现知识的提取[1]。时间序列数据本身所具备的高维性、复杂性、动态性、高噪 声特性以 及容易达到大规模的特性,因此时间序列挖掘是数据挖掘研究中最具有挑战性的十大研究方向之一[2]。

        目前重点的研究内容包括时间序列的模式表 示、时间序列 的相似性度量和查询、时间序列的聚类、时间序列的异常检测、时间序列的分类、时间序列的预测等。 


特点:

        由于时间序列数 据本身所具备的高维性、复杂性、动态性、高噪声特性以及容易达到大规模的特性,直接在时间序列上进行数据挖掘不但在储存和计算上要花费高昂 代价而且可能 会影响算法的准确性和可靠性。

        时间序列的模式表示是一种对时间序列进行抽象和概括的特征表示方法,是在更高层次上对时间序列的重新描述[3, 4]。  时间序列的模式表示具有压缩数据保持时间序列基本形态的功能,并且具有一定的除噪能力。

        常用的时间序列模式表示方法主要包含:频域表示法分段线 性表示 法符号表示法以及主成分分析表示法等。

        频域表示的基本思想是将时间序列从时域通过傅里叶变换或小波变换映射到频域,用很少的低频系数来代表原来的 时间 序列数据,这种方法虽然数据浓缩的效率很高,但是对噪声敏感,而且不直观。

        分段线性表示法的基本思想是用K个直线段来近似代替原来的时间序列,这种方 法 能够实现数据压缩的目的,而且允许在时间轴上进行缩放,但实现过程较复杂,且要求事先给出直线段数K。K值的选择是一个关键因素,太小则丢失有用信 息, 太大又会产生过多的冗余信息。

        时间序列的符号化表示就是通过一些离散化方法将时间序列的连续实数值或者一段时间内的时间序列波形映射到有限的符号表 上,将 时间序列转换为有限符号的有序集合。符号化表示的优点在于可以利用许多字符串研究领域的成果,缺点在于如何选择合适的离散化算法,解释符号的意 义,以及定 义符号之间的相似性度量。

        主成分分析是一种常见的降维方法。在时间序列的模式表示中,通过对整个时间序列数据库的整体表示实现对整个时间序列 数据库的特征 提取和压缩。其优点在于计算精度高且对噪声数据的鲁棒性强,但由于在奇异值分解过程中涉及到特征值计算,计算开销较大。

        时间序列的相似性度量是时间序列数据挖掘的基础[5, 6]。时间序列由于其特定的形状特征, 使得目前常用的一些相似性度量和聚类方法失去了原有的优越 性, 而几乎所有的时间序列挖掘算法都涉及到计算序列之间的相似性问题。目前,时间序列的相似性度量主要采用Lp范数(例如欧几里德距离)、动态时间弯曲 距离、 最长公共子序列、编辑距离、串匹配等。前两种相似性度量方法应用较为广泛。但是欧几里德距离不支持时间序列的线性漂移和时间弯曲,动态时间弯曲距 离的计算 量很大,不适合直接应用于海量时间序列的挖掘,从而限制了其在时间序列数据挖掘上的广泛应用。


特征聚类方法:

       虽然各种聚类方法已经在数 据挖掘领域中得到了较为深入的研究,但这些方法大多是针对关系数据库中的静态数据对象而提出的。然而在现实世界中越来越多的应用 涉及到流数据和时间序列 数据等随时间变化的复杂动态数据对象的聚类分析。由于时间序列数据与静态数据有着极大的不同,故对其进行聚类分析有着很大的复杂 性。

        近年来,涌现出许多 时间序列聚类方法[7],这些时间序列数据聚类方法大体上可以分为三种,即基于原始数据的聚类、基于特征的聚类和基于模型的聚类。 其中后两种方法的核心 思想是利用时间序列的模式表示方法把时间序列数据转化为静态的特征数据或者是模型参数,然后再直接应用静态数据的聚类方法来完成聚类 任务。

       在对时间序列进行分析时, 经常希望能够发现这些时间序列在不同时间段的形态有何关联关系。这种关联关系一般表现为时间序列中频繁出现的变化模式和极少出现 的变化模式。这种极少出现 的变化模式称之为异常模式。在某些领域, 异常模式的发现对人们来说往往更有价值。例如, 医院可以从病人的心电图序列中发现 异常模式从而进行诊断和治疗。按照异常的表现形式不同, 线性时间和空间上时间序列的异常主要可以分为点异常和模式异常两种, 它们都是用于发现一条时间 序列上的异常情况的。

        模式异常是指在一条时间序列上与其他模式之间具有显著差异的模式。事实上, 点异常也可以认为是长度为1 的模式异常。目前已经提出 多种时间序列异常检测方法,例如基于人工免疫系统的时间序列异常检测[9]、基于支持向量聚类的时间序列异常检测[9]以及后缀 树和马尔可夫模型的时间 序列异常检测[10]。


时间序列分类:

       时间序列分类是时间序列数据分析中的重要任务之一. 不同于时间序列分析中常用的算法与问题,时间序列分类 是要把整个时间序列当作输入,其目的是要赋予这个序列某个离散标记。它比一般分类问题困难,主要在于 要分类的时间序列数据不等长,这使得一般的分类算法 不能直接应用。即使是等长的时间序列,由于不同序列在相同位置的数值一般不可直接比较,一般的分类算法 依然还是不适合直接应用。

        为了解决这些难点,通常 有两种方法:第一,定义合适的距离度量(最常用的距离度量是DTW距离),使得在此度量意义下相近的序列 有相同的分类标签,这类方法属于领域无关的方 法;第二,首先对时间序列建模(利用序列中前后数据的依赖关系建立模型),再用模型参数组成等长向量来表示每 条序列,最后用一般的分类算法进行训练和分 类,这类方法属于领域相关的方法。文[11]分析了两类方法,并且分别在不同的合成数据集和实际数据集上比较了 领域无关和领域相关的两类方法。结果发现 在训练数据较少时,使用领域相关的算法比较合适;另一方面,领域无关的算法受噪声的影响相对较少。


预测:

        预测是对尚未发生或目前还不明确 的事物进行预先的估计和推测,是在现时对事物将要发生的结果进行探讨和研究,简单地说就是指从已知事件测定未知事件。进行 预测的总原则是:认识事物的发 展变化规律,利用规律的必然性进行科学预测。时间序列预测主要包括三种基本方法:内生时间序列预测技术;外生时间序列预测技 术;主观时间序列预测技术。 时间序列分析与预测在经济[12]、金融[13]、工程[14]等领域有着广泛的应用,研究成果也最为丰富,将另文讨论。


                                                       

参考文献:

1.       Keogh E, Kasetty S.On the need for time series data mining benchmarks: a survey and empirical demonstration.Data Mining and Knowledge Discovery, 2003, 7(4): 349-371.

2.        Yang Qiang, Wu Xindong. 10 challenging problems in data mining research. International Journal of Information Technology & Decision Making, 2006, 5(4): 597-604.

3.      Lin J, Keogh E, Lonardi S, Chiu B.A symbolic representation of time series, with implications for streaming algorithms. Proceedings of the 8th ACM SIGMOD workshop on Research issues in data mining and knowledge discovery, 2003, Pages: 2 – 11.  

4.       Gullo F, Ponti G, Tagarelli A, Greco S. A time series representation model for accurate and fast similarity detection, Pattern Recognition, 2009, 42(11): 2998-3014.

5.      Gunopulos D, Das G. Time series similarity measures.KDD’00: Tutorial notes of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining, 2000.

6.      Literatures on Similarity-based Time Series Retrieval.http://www.cs.ust.hk/~leichen/readings/literaturesovertimeseries.htm

7.       Liao T W. Clustering of time series data: a survey. Pattern Recognition, 2005, 38: 1857-1874

8.      Dasgupta D, Forrest S. Novelty detection in time series data using ideas from immunology. In: Proceeding of the 5th International Conference on Intelligent Systems. 1996, Pages: 82- 87.

9.      Ma J, Perkins S. Time-series Novelty Detection Using One-class Support Vector Machines. Procedding of International Joint Conference on Neural Networks, 2003.

10.    Keogh E, Lonardi S. Finding surprising patterns in a time series database in linear time and space. Proceedings of the eighth ACM SIGKDD, 2002.

11.    杨一鸣,潘嵘,潘嘉林,杨强,李磊. 时间序列分类问题的算法比较. 计算机学报,2007308):1259-1265.

12.    Clements M P(柯莱蒙兹),Hendry D F(韩德瑞),陆懋祖.预测经济时间序列.北京大学出版社,2008

13.    Tsay R S(蔡瑞胸),潘家柱译.金融时间序列分析.机械工业出版社,2006

14.    杨叔子.时间序列分析的工程应用(上下册).第二版.华中科技大学出版社,2007 

转载于:https://www.cnblogs.com/wishchin/p/9200244.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/alppkk4545/article/details/101576029

智能推荐

thinkphp 视图和关联模型_thinkphp绑定视图-程序员宅基地

文章浏览阅读679次。tp里的视图更像我们所说的关联模型.左右关联.tp里的关联模型.支持跨表的增删改查.所以这个是相当的有用.注意一下第一点:$model->relation(true)->where('id=1')->save($data); 测试的时候发现不能修改关联表里的操作.,后来发现$data中也需要增加$data['id']的值第二点:模型里设置的'as_fi_thinkphp绑定视图

C++11右值引用-程序员宅基地

文章浏览阅读672次,点赞19次,收藏9次。左值与左值引用,右值与右值引用,左值右值的对比,右值引用所解决的问题(移动语义),完美转发的使用,模版中的&&——万能引用

Python读取实时数据流_bms4.37 实时数据读取-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏9次。1、#coding:utf-8chose = [ ('foo',1,2), ('bar','hello'), ('foo',3,4)]def do_foo(x,y): print('foo',x,y)def do_bar(s): print('bar',s)for tag,*args in chose: if tag == 'foo'..._bms4.37 实时数据读取

数据挖掘——PAM(K-Medoids)聚类算法学习_pam算法-程序员宅基地

文章浏览阅读2.3w次,点赞34次,收藏225次。文章目录一、前言二、算法描述三、实例描述算法四、python代码五、总结参考资料一、前言  k-means算法对离群点敏感,因为这种对象远离大多数数据,隐藏分配到一个簇时,它们可能严重地扭曲簇的均值。这不经意间影响了其他对象到簇的分配。  于是一种基于K-means的改进算法k-mediod应运而生。围绕中心点划分(Partitioning Around Medoids, PAM)算法是k-..._pam算法

sourceinsight使用技巧-程序员宅基地

文章浏览阅读10w+次,点赞4次,收藏131次。1 sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier 2 勾掉indent Open Brace和Indent Close Brace_sourceinsight使用技巧

MATLAB代码:分布式电源接入对配电网运行影响评估及潮流计算-程序员宅基地

文章浏览阅读315次,点赞3次,收藏4次。主要内容:代码主要做的是分布式电源接入场景下对配电网运行影响的分析,其中,可以自己设置分布式电源接入配电网的位置,接入配电网的有功功率以及无功功率的大小,通过牛顿拉夫逊法求解分布式电源接入后的电网潮流,从而评价分布式电源接入前后的电压、线路潮流等参数是否发生变化,评估配电网的运行方式。在代码中,我们可以设置分布式电源的接入位置。通过本文的分析和评估,可以为配电网的规划和运行提供参考和指导,促进分布式电源接入技术的发展和应用。分布式电源接入的位置、有功功率和无功功率的大小会对配电网的运行产生直接的影响。

随便推点

物联网AI MicroPython传感器学习 之 PCA9685 PWM模块_micropython pca9685-程序员宅基地

文章浏览阅读757次。PCA9685芯片,是16通道12bit PWM舵机驱动,主控板通过I2C控制芯片,进而可以驱动16个舵机,这样可以解决需要很多电机控制的项目,会大量占用主控板的引脚,也会影响主控板的处理能力。_micropython pca9685

Unity3D中C#调用iOS的静态库(*.a)_[dllimport("__internal")]-程序员宅基地

文章浏览阅读1.2k次。Unity3D中C#调用iOS的静态库(*.a)https://blog.csdn.net/skylin19840101/article/details/51039176C#端的处理C#调用其他模块的接口都是通过DllImport的方式来实现的。首先导入名字空间using System.Runtime.InteropServices;声明需要使用的C接口 ..._[dllimport("__internal")]

用类实现注册函数_注册执行函数-程序员宅基地

文章浏览阅读329次。例:def asd(): print('666')class A: def __init__(self): self.x = lambda :print('1') self.y = lambda :print('2') self.z = lambda :print('3') self.asd = asd..._注册执行函数

echarts使用总结(使用echarts画工字型标记线;无数据时设置纵坐标刻度0-1;tooltip数据展示;工具栏 toolBox 图标配置)_echarts纵坐标刻度-程序员宅基地

文章浏览阅读1.4k次。1. 使用echarts画标记线(工字型)1.1 实现效果1.2 使用属性详细参数可查看echarts官网,markline属性https://echarts.apache.org/zh/option.html#series-bar.markLine1.3 代码实现import * as echarts from 'echarts';var chartDom = document.getElementById('main');var myChart = echarts.init(cha_echarts纵坐标刻度

单臂路由_单臂路由只允许单播-程序员宅基地

文章浏览阅读174次。文章目录1.发现问题2.单臂路由3.命令1.发现问题首先需要知道的是之前使用VLAN控制广播域后,每个广播域之间是不能相互通信的,当我们配置每个广播域一个网段之后,就更不存在相互通信了,那么真正要实现的目的其实是单播全网互通,广播只限制在VLAN创造的广播域中2.单臂路由既然同一个局域网被VLAN分开的广播域之间单播不能互通,那么就转变思路,把他们当做不同网段,使用路由器进行传输信息,这就使用单臂路由为什么叫单臂路由,因为要将一个物理接口分成若干个虚拟子接口,分别对应该局域网中VLAN分配的广播域_单臂路由只允许单播

ASP.NET中防止注入攻击-程序员宅基地

文章浏览阅读43次。概述 :  你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等.  弱输入校验通常为注入攻击提供了机会.下面是常见的利用弱输入校验或无输入校验进行攻击的手段.SQL 注入(SQL injection). 如果你使用用户的输入值来动态构造SQL语句,那么数据库可能执..._如何绕过asp.net中的请求验证进行注入

推荐文章

热门文章

相关标签