序列数据挖掘[ZZ]
一、时间序列数据挖掘
时间序列是数据存在的特殊形式,序列的过去值会影响到将来值,这种影响的大小以及影响的方式可由时间序列中的趋势周期及非平稳等行为来刻画。一般来讲,时间序列数据都具有躁声、不稳定、随机性等特点,对于这类数据的预测方法目前主要有自动回归滑动平均(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]的更多相关文章
- 通用数据挖掘[ZZ]
一.什么是数据挖掘?许多人认为数据挖掘更像是一门哲学,或数学的组成部分,而不是业务需求的实际解决方案.您可以从采用的各种定义中看出这一点,例如:“数据挖掘是对非常大型的数据进行的研究和分析,采用自动或 ...
- 深入浅出谈数据挖掘zz
编者的话:本文对数据挖掘概念的产生,数据挖掘与常规数据分析的主要区别,所能解决的几大类问题和所应用的领域都有着非常清晰的论述.作者在此篇文章中认为数据挖掘最重要的要素是分析人员的相关业务知识和思维模式 ...
- 《BI那点儿事》数据挖掘初探
什么是数据挖掘? 数据挖掘(Data Mining),又称信息发掘(Knowledge Discovery),是用自动或半自动化的方法在数据中找到潜在的,有价值的信息和规则. 数据挖掘技术来源于数据库 ...
- 几种不同存储形式下的数据挖掘问题[ZZ]
从原理上说,数据挖掘应该可以应用到任何信息存储方式的知识挖掘中,但是挖掘的挑战性和技术会因为源数据的存储类型的不同而不同.特别是,近年来的研究表明数据挖掘所涉及的数据存储类型越来越丰富,除了一些有通用 ...
- 数据挖掘相关的10个问题[ZZ]
NO.1 Data Mining 和统计分析有什么不同? 硬要去区分Data Mining和Statistics的差异其实是没有太大意义的.一般将之定义为Data Mining技术的CART.CHAI ...
- 数据挖掘分类算法之决策树(zz)
决策树(Decision tree) 决策树是以实例为基础的归纳学习算法. 它从一组无次序.无规则的元组中推理出决策树表示形式的分类规则.它采用自顶向下的递归方式,在决策树的内部结点进行属性值 ...
- [zz]求一维序列的信息熵(香浓熵)的matlab程序实例
对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0-255)出现的概率,就可以计算出信息熵. 但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的, ...
- 数据挖掘-关联规则分析[ZZ]
1.什么是关联规则 "尿布与啤酒"的故事大家都有听过,这里就不罗嗦了. 按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对大量交易数据进行挖掘分析,沃尔玛是不可能发现数据 ...
- 数据挖掘经典书籍[ZZ]
数据挖掘就是在数据库中查找所需数据的过程,它是随着数据库产生的一门学科.近几年,数据库的发展还是非常迅速的,数据挖掘也成为热门技术,学习的人络绎不绝.下面给大家介绍的就是数据挖掘经典书籍及数据挖掘书籍 ...
随机推荐
- BZOJ1232: [Usaco2008Nov]安慰奶牛cheer
1232: [Usaco2008Nov]安慰奶牛cheer Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 578 Solved: 403[Submi ...
- (转载)PHP isset()函数作用
(转载)http://www.cnblogs.com/neve/archive/2011/03/21/1990165.html isset函数是检测变量是否设置. 格式:bool isset ( mi ...
- Leetcode那点事儿
1 .Two Sum 2.Add Two Numbers 3.Longest Substring Without Repeating Characters 7.Reverse Integer 26. ...
- ACM1720_A+Bcoming(进制转换的新思路)——代码超少哟!
using namespace std; int main() { int a,b; while(cin>>hex>>a>>b) { cout<<dec ...
- HDU2037 今年暑假不AC 贪心算法
贪心算法 : 贪心算法就是只考虑眼前最优解而忽略整体的算法, 它所做出的仅是在某种意义上的局部最优解, 然后通过迭代的方法相继求出整体最优解. 但是不是所有问题都可以得到整体最优解, 所以选择贪心策略 ...
- lightoj 1021 - Painful Bases 状态压缩
题目链接:http://lightoj.com/volume_showproblem.php?problem=1021 #include<cstring> #include<cstd ...
- poj 2631 Roads in the North【树的直径裸题】
Roads in the North Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2359 Accepted: 115 ...
- memcached与redis 对比
一. 综述 读一个软件的源码,首先要弄懂软件是用作干什么的,那memcached和redis是干啥的?众所周知,数据一般会放在数据库中,但是查询数据会相对比较慢,特别是用户很多时,频繁的查询,需要耗费 ...
- 几个命令行命令的总结(node, babel-cli, babel-node)
node: 输入node, 进入repl环境之后,可以直接运行javascsript表达式,模拟node输出 sh-it-nb0023:static xialei$ node > console ...
- 20169210《Linux内核原理与分析》第三周作业
本次作业也是分为两部分,第一部分是对实验楼<Linux基础入门>复习,第二部分为对课本18章的复习. 第一次学习实验楼的<Linux基础入门>时由于是第一次接触Linux,所以 ...