您的当前位置:首页正文

决策树算法在股票分析与预测中的应用

2021-02-02 来源:好走旅游网
维普资讯 http://www.cqvip.com

・开发研究与设计技术 e 本栏目责任编辑:谢媛媛 决策树算法在股票分析与预测中的应用 魏雄 (武汉科技学院,湖北武汉430073) 摘要:牛市的开始吸引了股民蜂拥而至,为了保护投资者权益,帮助投资者进行理性投资。文章提出了从技术的角度分析股票交易数 据 采用二叉决策树的方法对庞大的交易数据进行挖掘,根据决策树获取的分类规则,基本上能预测单支股票在一段时间内走势,能有效 的帮助投资者进行理性投资。 关键词:走势:信息熵:二叉决策树 . 中图分类号:TP399 文献标识码:A 文章编号:1009—3044(2007)09-20764-02 WEI Xiong The Application of Decision Tree Algorithm in Stock Analysing and Predicting (Wuhan Insittute of Science and Technology,Wuhan 430073,China) Abstract:The commence of bull market appeals tO flood of stockers.To protect the profits of stockbrokers and help them invest rationally, this thesis mainly focus on analysing the data from the perspective of technology.It intends tO undermine the huge dealing data by using bifur- cate of decision trees.It may also predict the direction of a single stock within a limited time,which can help stockbrockers tO invest rationally and effectively. Key WOrds:direction;entropy of information;bifurcate of decision trees 1引言 证券市场是一个资源重新配置的市场,企业发展需要大量的 资金,而在社会上有充足的闲置资金,在这种情况下,证券市场就 应运而生了。证券市场在我们国家经济建设中起着非常重要的作 用。而且和我们广大人们群众的生活息息相关。根据中国证券登 记结算有限责任公司提供的数据在2007年4月28日中国证券 市场账户总数首次突破1亿。上海证券交易和深圳证券交易所有 BIN方法、聚类方法、人机结合检查方法、和回归方法、排除方法。 针对证券数据的采用排除方法。 本文采用根据Bin边界进行平滑处理,Bin方法通过利用相 应被平滑数据点周围点,对一组已经排序数据进行平滑。首先把 排序好的数据划分若干等高度的到若干桶(bins)中。然后利用bin 的边界值(最大值或者最小值),替换bin中所有值。 这里以成交数量做这个属性为例。排序后的成交数量(以手 为单位)有:6,l1,14,16,68,98,101,102,121 首先根据把数据划分成等高度的bins,由于数据不是很多,可 以把他划分成三个bins: Binl:6.11.14 Bin2:16,68,98 Bin3:lO1,102,121 1367家上市公司,对于如此庞大的股票交易数据,我们可以通过 决策树的方式挖掘出有价值的知识。 2数据预处理 中国的证券市场经过了二十多年的发展,交易数据快速膨 胀。由于计算机技术、交易环境和交易品种不断进步,在庞大的交 易数据里面常常包含了许多噪音、不完整、甚至是不一致的数据。 当我们需要对这样的数据仓库进行挖掘的时候,势必影响挖掘的 结果,为了提高数据挖掘的对象质量,就必须对挖掘的对象进行 预处理。 在对他们划分好后,由于目前大盘处于涨势,我们采用最小 值来代替,替换后的结果如下: Binl:6,6,14 2.1数据清洗 针对数据挖掘对象存在有噪音、不完全和不一致性,数据清 Bin2:16,16,98 Bin3:lO1,101,121 洗(data cleaning)常常采用填补遗漏数据、消除异常数据、平滑噪 音数据的方法纠正不一致的数据 2.1.1遗漏数据处理 假设在分析客户历史委托数据时,发现很多数据的值为空, 2.1.3不一致数据处理 在实际数据挖掘对象中出现的数据记录内容不一致情况,其 中一些数据不一致可以通过他们与外部的关联手工加以解决。比 比如:客户委托库里面的营业部号、成交价格、后资金额、成交数 量、资金帐号为空等等,这些属性对挖掘的结果会产生直接影响, 我们可以采用忽略该记录、手工填补遗漏的值、过缺省值来填补 空缺值、利用均值填补遗漏值、利用同类别均值填补遗漏值、利用 最可能的值填补遗漏值等几种方法来处理。 针对行情库,成交价格在某个时间段出现空缺情况,由于成 交价格虽然变化空间不是很大,但是发生变化频率比较高,所以 一般主要采用利用最可能的值填补遗漏值的办法。利用回归分析 能取值。比如:在某支股票在某个时间段内购人价格,可以通过上 面两种方法计算出填补值。 2.1.2噪音数据处理 噪音数据在证券交易数据里面出现的频率相对比较多,比如 法、贝叶斯计算公司或者决策树推断出该记录特定属性的最大可 如:客户出现交易后资金余额与实际不对、购买股票成交后与实 际数量不对等情况 可以通过交易所、对帐单校对来处理,如果出 现比较大的数据不一致,采用排除的方法。 2.2数据集成 个严谨的客户交易系统包涵存储过程库sql2k、当前运行 库run2k、历史信息库his2k、客户关系管理crm2k、临时数据库 tmp2k、机构操盘数据库organ2k、规档库fil2k等八个数据库,内涵 客户基本库client、客户其他信息clientinfo、证券帐户stockholder、 银行帐户bankaccount、资金fund、股份stock等各种表二十几个。 但是由于数据库、表太多,必须对挖掘数据进行集成处理,把数据 库、数据立方、普通文本文件等,结合起来一起形成一个统一的数 据集合,为数据挖掘工作的顺利进行提供完整、统一的数据基础。 一2.3数据转换处理 由于历年交易数据的分散性,需要对数据转换或归并,构成 一成交数量这个属性就经常容易出现噪音数据。常见的处理办法有 收稿日期:2007—04-30 个适合数据挖掘的描述形式。 作者简介:魏雄,助教,硕士研究生,研究方向:软件工程,软件可靠性。 764 电脑知识与技术 维普资讯 http://www.cqvip.com

本栏目责任编辑:谢媛媛 2-3.1平滑处理 e开发研究与设计技术・ 此,我们对整个属性分层如下: 成交数量(business_amount): 首先采用bin方法、聚类或者回归对挖掘数据中的噪音清除 工作。比如资金股份余额变动里面交易量小等部分数据进行处 理。 0≤成交数量<1500 成交数量≥15oo 2_3.2合计处理 对于股份库里某支股票股东比较多,可以把持股达到一定数 量的投资者进行持股数量汇总。这一操作常用于构造数据立方或 对数据进行多细度分析。 2_3_3数据泛化处理(generalization) 由于客户交易数据最小单位为手,每手100股,而卖出不受 限制,所以数量比较零散,这个时候就必须对低层次的数据或者 数据层采取更抽象的概念来替代。经过对交易数量进一步泛化 后.我们把单笔交易数量分为大于15手和小于15手两种情况。 2.3.4规格化 对于某些属性值,必须要按比例投射到比较小的范围,比较 行情库,每次变化的范围应该在一10%和10%范围波动,这样可以 提高数据结构简单.消除数值性值大小不~造成挖掘结果偏差。 而且能提高挖掘的速度。 2-3.5属性构造 走势(direction)={升,跌1 委差(Devolve—account): 委差≥0、 委差<0 3.2构造一个决策树对行情数据库进行分类预测 构造决策树原始数据样本集合属性为:该股票下一分钟的走 势“direetion”有两个不同的取值{up,down},所以就有两个不同类别 (m=2),假设Cl对应up,反之C2对应down,C1类别包含170个 样本。C2类别包含70个样本,为了计算每属性的增益,我们可以 计算出所有的信息熵。 I(s(s 墨)一 ̄  墨)一 pilog 2( p ):I (170o,700)一 1ogt 一 1。。sg: =0.・ 8695 下面我们依此求出每个属性的信息熵。先从成交数量(busi. heSSamount)开始,根据business_amount属性在每个取UP类别 和DOWN类别中的分布,可以计算出每个分布多对应的信息熵: —在进行数据处理的过程中,需要增加新的属性。 2.4数据消减 针对交易数据庞大的特点,为了有针对性的进行数据挖掘, 当business_amount “1500”时 SIl=122 S12=21 I(sl1 jslz)= 0.6020 当business_amount<“1500”时 S21=48 S22=49 I(s2l,S21) 0.9999 提高挖掘知识的质量,我们先对数据进行选择。本论文的研究通 过对某支股票在2006年3月28日交易数据为例。 在计算出以上数据后,我们可以根据属性成交数量De— volveaccount对数据集进行划分,可以得到一个数据对象进行类 —3构造决策树 3.1概念分层 首先我们对交易行情数据仓库进行分析。但是遇到如何对属 而需要的信息熵为: 性选择及最佳分割阀值。 通过数据选择.我们只选择了成交数量、指数、委差作为分析 指标[1]。我们以某支股票在2006年3月28日交易数据作为本次 交易数据挖掘对象。委比、委差已经分好了我们以零作为分界点, 由于成交数量比较零星,必须选择一个最佳的值,故还需要对成 交数量进行分层。 在数据挖掘中,最佳的分割阀值能使组内的目标变量差异最 小『21,组间目标变量的取值差异越大越好。在这里采用了基尼系 数的方法,它的数学公式为: 1一(P12+P22) E(business_-锄。皿t)=砉 ± }羔 ( ,. 类的数据增益为: z(s s :)+ z( 76 e 现在可以求出利用属性business amount对挖掘对象进行分 Gaint(business_amount)=I(S1,S2)一E(business—amount)=0.8695- 0.7628=0.1076 依此类推,可以计算出Gain(Direction)=0.0955,Gain(De— volveaccoun0=0.0501。通过比较,属性成交数量business_amount _所获得的增益最大,因此可以把business—amount属性做为产生当 前分支解散点.这个新产生的结点被标记为business_amount,根 据business—amount属性的两个不同取值,可以产生两个分支。  bIusi ss a【【l。unt I 1 _P 从数据样本中随机抽取的一个数据,其目标变量取某一类 型(行情升)的值的概率,P,是取另外一中类型(行情跌)值的概 率。由于只有升和跌的可能,所以P,+P1:1。确定成交数量最佳分 割点的步骤如下: time l busmess_amota ̄ busI ;} ncc D 0930 I 15300 /7.18 0931 0933 0937 D*volw ∞圳 j螂 43舛 23 j Dl眦tion Up Up Up Ddn I l l7222 1232 ,∞0 7l9 7 70A 7 78 j % 1= 1 K 第一步,计算根结点的基尼系数。3月28日交易时间有240 分钟,涨有18O次,跌有6O分钟。则: 1_[( ) +( ) 00469 1 上 l_time l bushaess_amotmt business price Dml"c e C vol co1mt 0932  l9o 7l8 33 34% D扯ec位n DOWlt l 0934 I l30o 7lj I2 23 Up 第二步,指定分组变量的某个取值为分割阀值。在依次完成 对原始数据的分组后,分别计算各分组的基尼系数,同时计算各 基尼系数的加权平均值。假设我们指定成交数量的分割阀值为15 手(15oo股).将行情分为两大组:成交数量大于等于l5手和小于 15手两组,计算两组的基尼系数分别为0.0401和0.0391,其加权 平均值为: —J 0935 J 1 35 ,¨ 11  136 Dot ̄w 根据数据对象,最终可以构造如下决策树: <l500 x0.0 1 +3 9x0.0391:0.2010400167 ————’ 垂 差 DevO acco 第三步,计算这层的加权平均值与根结点基尼数之间的差 值:O.O469—0.000167=0.046733。 第四步,为了确定最好的分割阀值,分别取阀值20手、8手、5 手、3手.计算他们与60手基尼系数的差值,分别是0.03464、 0.02594、0.02574、0.02900。 图1 股市分析与预测决策树 第五步,根据统计出来的差值15手是最佳的分割阀值。因 (下转第789页) 765 维普资讯 http://www.cqvip.com

本栏目责任编辑:谢媛媛 … 开发研究与设计技术 intjls 7结束语 select count( )into:jls from mobiletable, 商品流通进销存管理是一项繁杂的工作,涉及到一系列问 sle.1.text=string(jls1 . 题,将它的数据处理都用计算机来完成,节省了大量的人力和物 dw_1.scrolhorow(1ong(trim(sle_1.text))) 力,提高了准确率,便于查询和预测。与其它方库存软件相比,本 “返回”按钮的clicked事件代码如下: 系统界面清晰,针对性强,非常适合对手机这种商品流通中的售 dose(parent) 前管理和售后服务管理,同时提供对商品流通趋势的监测和预测 “浏览”按钮的clicked事件代码如下: 分析,是其他软件所不具备的,有独到之处。通过本系统的模拟测 open(w_mobile_list) 试表明.该系统在技术上、经济上都是可行的。 本软件主要针对以下类型的客户群:从事手机销售的各种手 机店及超市手机销售专柜等。可以说系统的客户群比较广,针对 性也较强,有很好的开发价值和商业前景。 参考文献: T1】费雅洁,王健.PowerBuilder程序设计.北京:高等教育出版 社.2004. 『2】周钢,方小伟.PowerBuilder项目开发实践.北京:中国铁道 出版社,2oo3,63—8 o. 『31崔杜武等.PowerBuilder 9.0基础应用与系统开发.北京: 电子工业出版社,2o04. 图5顾客基本信息录入界面 [4]John Wiley&sons、Relational Database Index Design and the 其它的还有手机信息查询界面、顾客信息查询界面、手机销 Optimizers.Published in Canada. 售信息查询界面、添加新用户界面等.不再~一赘述了。 f上接第765页) 情况和它识别样本“跌”(负)样本的情况,用灵敏性(sensitivity ̄ 通过已经建立的决策树.可以看出,在某支股票具备一定成交数 特效(speciifcity)性来衡量,公式如下: 量的情况下,如果委差大于或者等于零,特别是长时间处于大数 Sensitivity=!=卫 字状态,这个时候的价格无疑是最合理的,在达到一定的时间后, pos 股票价格肯定会上涨。同样道理,对于委比总是负数,但是股票价 Specificity=! !g 格却在上涨.这种情况.肯定是异常情况.所以股票价格应该在短 neg 时间内大幅下跌[4】。 其中,t_pos是真正的样本(能正确按此分类的“up”)的样本 3.3决策树中获取分类规则 数。Pos是正(“up”)样本数,tneg是真负样本(被正确地按此分类 决策树表示的分类知识可以抽取出来,用IF-THEN分类规则 的“down”的样本)数,neg是负(“down”)样本数。其正确率Accu. 形式表示『3],从决策树的根结点到任一个叶结点所形成的一条路径 racy计算公式为: 构成了一条分类规则。沿着决策树的一条路径所形成的属性~值偶对 Accu racy=Sensitity 巳 ! +specificitY 就构成了分类规则的结论内容(IF)部分中的一个合取项.叶结点所 ’ ’pos+neg’ ’pos+neg 标记的类别就构成了规则的结论内容(THEN部分)。在图2.2股市分 训练集合样本总数是24O,测试集样本总数是1200,样本总 析与预测决策树中business amount和Devlolve account就是构成IF 量为1440,把以上数据代入公式: 的部分。而Direction是构成THEN的部分。如果决策树比较大是IF- Accumcy= ×丽6丽01+ × =98.97% THEN规则表现形式的优势就更加突出。 根据着股票3月最后一周的行情数据测试结果,其准确率达 沿着由根结点到树叶结点的路径.可以转换为IF—THEN分 到了98.97%。由于个别投资者非理性投资,会导致准确率不能达 类规则如下: 到100%。所以说所建立的决策树基本上是合理的。对于投资者来 IF business—amount<1500 and Devolve—accoun<0 THEN Di- 说。如果要判断下个时间段的行情涨跌,可以使用这个分类规则 rection=down 进行分类预测。 IF business_amount<1500 and Devolve_accoun\0 THEN Di- 该项研究,能准确预测股票的走势,某支股票庄家的持股比 rection=up ・ 例和意图,从而及时提醒中小投资者【 o],协助监管部门规范证券 IF business—amount 1500 and exponent=up THEN Direction= ,市场.保护中小投资者利益,恢复广大投资者对中国证券市场的 up 信心,提高投资者的赢利能力。 IF business—amount 1 500 and exponent=down THEN Direc- 参考文献: tion=down 4决策树模型测试 【11金沈杰,吴绍春.基于预聚类技术的并行序贯模式挖掘算法 [J].计算机工程与科学2004,10. 为了检测决策树模型性能,通过决策树归纳法的准确性进行 【2】徐远纯擞据挖掘在企业危机中的应用[J】.科学与科学技术 测试。 管理.2002(6):78—80. 由于决策树分类方法对数据的过分概化.使用部分数据导出 【3】曾敏,张洪伟.SCM数据挖掘的混合遗传算法模型[J】.计算 分类法,然后评估分类法,会导致过分乐观的估计。在这里,采用 机应用,2004,24(11)84—87. 保持法对决策树进行测试。保持法是一种基于给定数据随机选样 [4]Yang Hu,Wang Hui-qi,Cheng Dai-jie.Serii ̄s Outlier Data 划分的,保持法把数据随机的划分为训练集、测试集两个部分。 Mining based on Forecastment,Computer Science,3 1(2004)4:l17— 在构建决策树,我们选取3月28日的行情数据构造决策树。 1 19,146. 我们选取另外一支股票在3月最后一周交易日的行情数据作为 【51f--1冀楠,张维.上海股市EMH实证检验[J].系统工程学报, 测试集。对于构成的决策树,可以用能识别样本“涨”(正样本)的 1997,12(3)49—56. 7的 

因篇幅问题不能全部显示,请点此查看更多更全内容