一、时间序列数据挖掘

时间序列是数据存在的特殊形式,序列的过去值会影响到将来值,这种影响的大小以及影响的方式可由时间序列中的趋势周期及非平稳等行为来刻画。一般来讲,时间序列数据都具有躁声、不稳定、随机性等特点,对于这类数据的预测方法目前主要有自动回归滑动平均(ARMA)和神经网络等,但这些方法有一些缺点是很难克服的,ARMA包含的是线性行为,对于非线性的因素没有包含;而神经网络的结构需要事先指定或应用启发式算法在训练过程中修正;同时神经网络得到的解是局部最优而非全局最优。比较而言支持向量机( SVM)能较好地解决了上述的一些问题,并在实际应用中取得了很好的性能。

二、序列模式挖掘概念及定义

举例说明,比如有顾客租借录像带,典型的顺序是先租“星球大战”,然后是“帝国反战”,再是“杰达武士归来”(这三部影片是以故事发生的时间先后而情节连续的)。值得注意的是租借这三部电影的行为并不一定需要是连续的。在任意两部之间随便插租了什么电影,仍然还是满足了这个序列模式,并且扩展一下,序列模式的元素也可以不只是一个元素(如一部电影),它也可以是一个项集(item set)。所谓项集,指的是多个物品组成的集合,内部元素不分排列顺序,比如“枕头和枕头套”就可以看作是由两个项(item)组成的项集,它也可以作为某一个序列模式的元素。
     比如数据源是一个给定的由客户交易(customer transaction)组成的大型数据库,每个交易(transaction)由客户号(customer-id),交易时间(transaction-time)以及在交易中购买的项(item)组成。
(1)项集(itemset)是由项(item)组成的一个非空集合。
(2)序列(sequence)是一列排好序的项集
    不失一般性我们假定项集中的项由一些连续整数代替,这样一个项集i可以表示为(i1,i2…im),而这里的ij代表了一个项。一个序列s可以表示为<s1,s2…sn>,这里的sj代表的是一个项集。
两个序列a <a1,a2…an>和b <b1,b2…bm>,如果存在整数i1<i2<…<in且a1包含于bi1,a2包含于bi2,…,an包含于bin,则称序列a包含于序列b。比如序列< (3) (4,5) (8) >包含于序列< (7) (3,8) (9) (4,5,6) (8) >,因为(3)包含于(3,8),(4,5)包含于(4,5,6)以及(8)包含于(8)。但是序列< (3) (5) >不包含于< (3,5) >,反之亦然。前者表示项3和项5是先后购买的,而后者则表示项3和项5是同时购买的,这就是区别所在。在一个序列集(a set of sequences)中如果序列s不包含于任何其他序列中,则称序列s为最大的(maximal)。
    一个客户所有的事务(transactions)可以综合的看成是一个序列,每一个事务都由相应的一个项集来表示。事务按交易时间序排列就成了一个序列。我们称这样的序列为客户序列(customer-sequence)。通常,将一个客户的交易按交易时间排序成T1 ,T2 ,……,Tn。Ti中的项集定义成itemset(Ti)。这样,这个客户的客户序列就成了这样的一个序列:〈itemset(T1) itemset(T2) … itemset(Tn)〉。见图_2。
    如果一个序列s包含于一个客户序列中,则我们称该客户支持(support)序列s。一个具体序列的支持(support)定义为那一部分支持该序列的客户总数。
    给定一个由客户交易组成的数据库D,挖掘序列模式的问题就是在那些具有客户指定最小支持度(minimum support)的序列中找出最大序列(maximal sequence)。而每个这样的最大序列就代表了一个序列模式(sequential pattern)。

时间序列挖掘其本质是根据数据随时间变化的趋势预测将来的值。重点要考虑的是时间的特殊性质,像一些周期性的时间定义如星期、月、季节、年等,不同的日子如节假日可能造成的影响,日期本身的计算方法,还有一些需要特殊考虑的地方如时间前后的相关性(过去的事情对将来有多大的影响力)等。只有充分考虑时间因素,利用现有数据随时间变化的一系列的值,才能更好地预测将来的值。

三、时间序列挖掘在金融领域的应用
    用于金融时间序列的预测方法很多,由于神经网络作为一种通用函数逼近器可以以任意精度近似任意非线性函数和动态系统,是高度非线性对象建模的有力工具,因此目前在该领域研究中仍以神经网络方法为主。但ANN仍有一些不易解决的难题,如难以确定神经网络的隐层节点数,存在过学习现象,训练过程中存在局部极小问题等。为了解决这些问题,Vapnik等人根据统计学习理论提出了支持向量机学习方法,它的最大特点是改变了传统的神经网络中经验风险最小化原则,而是针对结构风险最小化原则提出的,因此具有很好的泛化能力。目前已经广泛用于解决分类和回归问题。

序列数据挖掘[ZZ]的更多相关文章

  1. 通用数据挖掘[ZZ]

    一.什么是数据挖掘?许多人认为数据挖掘更像是一门哲学,或数学的组成部分,而不是业务需求的实际解决方案.您可以从采用的各种定义中看出这一点,例如:“数据挖掘是对非常大型的数据进行的研究和分析,采用自动或 ...

  2. 深入浅出谈数据挖掘zz

    编者的话:本文对数据挖掘概念的产生,数据挖掘与常规数据分析的主要区别,所能解决的几大类问题和所应用的领域都有着非常清晰的论述.作者在此篇文章中认为数据挖掘最重要的要素是分析人员的相关业务知识和思维模式 ...

  3. 《BI那点儿事》数据挖掘初探

    什么是数据挖掘? 数据挖掘(Data Mining),又称信息发掘(Knowledge Discovery),是用自动或半自动化的方法在数据中找到潜在的,有价值的信息和规则. 数据挖掘技术来源于数据库 ...

  4. 几种不同存储形式下的数据挖掘问题[ZZ]

    从原理上说,数据挖掘应该可以应用到任何信息存储方式的知识挖掘中,但是挖掘的挑战性和技术会因为源数据的存储类型的不同而不同.特别是,近年来的研究表明数据挖掘所涉及的数据存储类型越来越丰富,除了一些有通用 ...

  5. 数据挖掘相关的10个问题[ZZ]

    NO.1 Data Mining 和统计分析有什么不同? 硬要去区分Data Mining和Statistics的差异其实是没有太大意义的.一般将之定义为Data Mining技术的CART.CHAI ...

  6. 数据挖掘分类算法之决策树(zz)

    决策树(Decision tree) 决策树是以实例为基础的归纳学习算法.     它从一组无次序.无规则的元组中推理出决策树表示形式的分类规则.它采用自顶向下的递归方式,在决策树的内部结点进行属性值 ...

  7. [zz]求一维序列的信息熵(香浓熵)的matlab程序实例

    对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0-255)出现的概率,就可以计算出信息熵.    但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的, ...

  8. 数据挖掘-关联规则分析[ZZ]

    1.什么是关联规则 "尿布与啤酒"的故事大家都有听过,这里就不罗嗦了. 按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对大量交易数据进行挖掘分析,沃尔玛是不可能发现数据 ...

  9. 数据挖掘经典书籍[ZZ]

    数据挖掘就是在数据库中查找所需数据的过程,它是随着数据库产生的一门学科.近几年,数据库的发展还是非常迅速的,数据挖掘也成为热门技术,学习的人络绎不绝.下面给大家介绍的就是数据挖掘经典书籍及数据挖掘书籍 ...

随机推荐

  1. DOS - COPY

    copy,中文含义为"复制",一个很容易见名知意的命令,它的作用是复制文件,用法十分简单:copy 源文件 目的路径.   假设,你需要把d:\test\test.txt这个文件复 ...

  2. 解决Mac OS X Lion狮子系统及win7多分区教程

    [绿茶教程]解决Mac OS X Lion狮子系统及win7多分区教程   工具/原料 8G的u盘制作lion系统安装盘   步骤/方法  插入U盘---开机---按住左下角“Option”键(alt ...

  3. php正则常用表达式

    []里的.相当于\. 涉及到换行一般考虑用模式修正符s s (PCRE_DOTALL) 如果设置了这个修饰符, 模式中的点号元字符匹配所有字符, 包含换行符. 如果没有这个 修饰符, 点号不匹配换行符 ...

  4. 【转】SVN linux命令及 windows相关操作(三)

    TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ...

  5. 代码编写横屏的UIView

    - (id )initWithFrame:(CGRect )frame { if (self = [super initWithFrame :frame]) { // Important here, ...

  6. 深入浅出node(4) 异步编程

    一)函数式编程基础 二)异步编程的优势和难点 2.1 优势 2.2 难点 2.2.1 异常处理 2.2.2 函数嵌套过深 2.2.3 阻塞 2.2.4 多线程编程 2.2.5 异步转同步 三)异步编程 ...

  7. java通过解析文件获取apk版本等信息

    import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import ...

  8. js生成随机数的方法实例总结

    js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中 ...

  9. 最大流加强 dinic+当前弧优化

    qyy开始练习网络流啦 , 啊 ,蒟蒻只会套版 ,很裸的题 , 我连题都不想发了 ,可以参考我的代码(虽然我也是看的别人的 #include <iostream> #include < ...

  10. Unity3d UnityEditor EditorWindow 自定义窗体控件

    功能:是因为公司的模型组需要一个插件,在MAYA中有很多个复制物体,导出的时候只导出一个,其他相同的物体只导出点的位置信息.这样进入Unity里就是一个物体和N个相同物体的位置点,代码简单但是需要用插 ...