关联规则在股票分析中的应用

  • 投稿
  • 更新时间2018-09-25
  • 阅读量4次
  • 评分0
  • 0
  • 0

  本文介绍了在数据挖掘中关联规则的基本概念和属性,进一步讨论了关联规则在股票信息数据挖掘中的应用.股票的行情交易数据库在经过一定的预处理后,用Aprorio算法挖掘出隐藏在数据背后的有用的规则,为投资者提供了有效的决策支持.


  关键词:数据挖掘;关联规则;股票分析;知识发现;


  作者:曾朝霞等


  数据挖掘又称知识发现,是指从大量数据中提取可信的、新颖的、有效的并最终能被人们理解的模式处理过程[1,2].它系统地应用机器学习、统计分析、归纳学习,以及其他计算机科学技术和工具等抽取、表示和分析存在于一个大型数据库中的知识,成为近年来热门的研究领域.


  在数据挖掘的知识模式中,关联规则是比较重要的一切.关联规则挖掘从大量数据中发现有趣的关联关系,可以帮助制定决策,如分类设计、交叉购物和投资分析.


  1关联规则的定义和属性


  关联规则是美国IBMAlmadenResearchCenter的RakeshAgrawal等人于1993年首先提出来的KDD研究的一个重要课题[3].现实中一个比较典型的例子是购物篮分析.超级市场利用前端收款机收集存储了大量的售货数据,这些数据是一条条的购买事务记录,每条记录存储了事务处理时间,顾客购买的物品,物品的数量及金额等.这些数据中常常隐含形式如下的关联规则:在购买牛奶的顾客当中,有60%的人同时购买了面包.这些关联规则很有价值,商场管理人员可以根据这些关联规则有选择地安排货架,能够促进销售.


  引理设I={i1,i2…,im}是项的集合.设任务相关的数据D是数据库事务的集合,D中每个事务T是项的集合,即T⊆I.设A是一个项集,当A⊆T,则称事务T支持项集A.关联规则是如下形式的一种蕴含:A⇒B,其中A⊂I,B⊂I,且A∩B=Φ.关联规则的兴趣度度量用两个参数来表示:


  (1)置信度


  设D中包含项集A的事务中,有c%的事务同时也包含项集B,c%称为关联规则A⇒B的置信度.即:


  confidence(A⇒B)=p(B|A)


  (2)支持度


  设D中有s%的事务同时包含项集A和B,s%称为关联规则AB的支持度.即:


  support(A⇒B)=P(A∪B)置信度和支持度比较能够直接形容关联规则的性质.事实上人们一般只对满足一定的支持度和置信度的关联规则感兴趣.因此,为了发现有意义的关联规则,需要给定两个阀值:最小支持度(min_sup)和最小置信度(min_conf).这些阀值可以由用户或专家设定.同时满足最小支持度和最小置信度的规则称作强规则.


  有些数据不像售货数据那样很容易就能看出一个事务是许多物品的集合.但经过一定的预处理后,仍然可以像售货数据那样进行关联规则的挖掘和分析.比如股票的交易行情,每天有数以千万计的交易数据存入行情库,我们对这些数据进行过滤和清理,挖掘出我们感兴趣的规则.


  2关联规则挖掘在股票信息中的应用


  在股票交易的事务处理中,每天有以交易为主的大量数据汇入数据仓库.上市公司之间由于存在合作、竞争等关系,因此某些股票价格在一定时间内会出现相似或相反的趋势.挖掘这些数据或股票之间的关联规则有利于投资者了解各种股票的走势及股票之间有关系,进一步分析上市公司的各种政策和方案,从而做出正确的投资决策.下面用2002年2月到4月沪市中的部分上市股票进行分析为例来说明.


  2.1数据预处理定义1设股票行情数据库D={R1,R2,…,Rn}.


  其中Ri记录了D中股票i的历史行情(1≤i≤n),Ri={Ci,S1,R2,…,Sm},Ci是Ri的股票代码,m为所记录的即时行情个数,Sj记录Ri的第j个即时行情,1≤j≤m.


  Sj中可包含时间,开盘价,收盘价,最高价,最低价,涨幅,成交量,成交额等内容,其中的一小部分见表1.


  现在我们想通过数据挖掘找出类似于“T时间内,当A股票价格上涨时,B股票价格也会随之上涨”的关联规则.所以我们主要关心股票交易的时间和涨跌幅,其他如开盘价,成交量等可以认为是一些无关信息,因此从数据源中挑选股票代码、交易时间、涨跌幅做进一步分析.为减小计算量,引入最小涨幅Zmin,|Zmin|≤10%.


  定义2设股票交易集T={T1,T2,…Ts}.


  其中Ti={Ci1,Ciz,…Cik},1≤i≤s,且如果k1<k2,(1≤k1,k2≤K),则Ck1<Ck2.用户指定了时间区间Q[t1,t2],1≤t1≤t2≤m,最小时间间隔和最小涨幅后,可对股票数据进行预处理.


  将交易行情库的数据进行预处理后的数据如表2所示.在转换后的数据之上,就可以挖掘关联规则.


  2.2挖掘关联规则


  定义3如果项集的出现频率大于或等于最小支持度(min-sup)与D中事务总数的乘积,则该项集满足最小支持度,称它为频繁项集(frequentitemset).


  关联规则的挖掘是一个两步的过程:


  (1)找出所有的频繁项集.


  (2)利用频繁项集生成所需要的关联规则.


  挖掘关联规则整个执行过程中第一步是核心问题.由于股票代码属于布尔型变量,相当于售货数据库中的商品,我们可以直接采用Apriori算法进行挖掘分析[4]:第一步,简单统计所有含一个元素的项目集出现的频率,并找出那些不小于最小支持度的项目集,即频繁1项集.从第二步开始循环处理直到再没有频繁项集生成.循环过程是:第k步中,根据第k-1步的频繁k-1项集产生k侯选k项集,然后对数据库进行搜索,得到侯选项目集的项集支持度,与最小支持度比较,从而找到频繁k项集.由此我们输入预处理后的数据库D和最小支持度阈值min-sup,可以得到频繁项集,用最小置信度对生在的频繁项集过滤,得到强规则.


  2.3实验结果


  本文选择了2002年3月中旬到5月中旬沪市中的部分上市的股票进行关联规则的挖掘分析,得到了许多有意义的规则.如60016⇒600131(support=2%,confidece=60%),在支持度为2%.置信度为60%的条件下,代码为60016和600131的两支股票有同时上涨的趋势,进一步分析称们可以看到这两支股票同为西部地区的电力股.


  在上述挖掘结果的基础上,我们可以进行二次挖掘,进一步分析各支股票之间趋势变化的周期性和多维相似性等,得到更多有用的结果.


  3结语


  本文简单介绍了关联规则及其在挖掘股市有效信息的应用,通过股票价格的变化分析得到我们感兴趣的规则.由于没考虑股票成交量的因素,挖掘的结果有一定局限性.同时我们知道股票的价格往往是政治、经济、社会等因素的综合反映,股票价格对以上信息变化及其敏剐,因此挖掘出的关联规则最好结合证券市场的基本面信息进行综合分析以提高其有效性.