版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天津理工大学数据挖掘技术课 程 报 告 数据挖掘在股票预测中的应用 学院: 计算机与通信工程 专业: 计算机技术 姓名: 郑春园 学号: 153131314 数据挖掘在股票预测中的应用摘要:作为海量数据的处理方法,数据挖掘从诞生起就和股票市场有着密不可分的联系。证券行业更是在信息化迅速发展的前提下成长起来的,很多业务都需要依赖对大量历史数据的分析,从中挖掘出有价值的信息。数据挖掘能够很好的处理这些非平稳、非正态、高噪声的数据。通过结合统计学的抽样、估计和假设检验;机器学习的搜索算法和建模技术;再加上最优化、信息论和信息检索等领域的思想,数据挖掘在处理海量数据和高频、多维数据上有着相当优势。最关
2、键的是他能够对不断获得的新数据进行模型的动态更新,非常适合应用于新环境。本文使用了时间序列方法人工神经网络模型对证券市场的价格进行建模和预测。应用时间序列方法预测时使用了简单一次移动平均预测法、一次指数平滑预测法、两次指数平滑预测法。时间序列方法预测股票走势最为简单,但是误差过大。应用人工神经网络时,采用了BP算法和遗传算法来训练网络权值,同时使用动量法和学习率自适应调整相结合的策略,人工神经网络模型虽然预测效果最好,但是计算量过大。关键字:数据挖掘 股票预测 时间序列预测 人工神经网络Abstract:As a huge amount of data processing methods,
3、data mining and the stock marketis inextricably linked. The securities industry rapidly development because of theinformation technology's improvement. Many businesses in stock market rely ondigging out the large amount of historical data analysis to find the valuableinformation. Data mining can
4、 be very good to deal with these non-stationary,non-normal, high-noise data. By combining statistical sampling, estimation andhypothesis testing, machine learning search algorithms and modeling techniques, datamining have a considerable advantage in dealing with large amounts of data 、high-frequency
5、, multi-dimensional data. The most important factor is that it cancontinue to embody the new data to dynamic update the data model which is verysuitable for the new environment.It is use the timeseries methodsthe artifieial neuralnetwork model in this papcrAppIications of time-series forecasting met
6、hods havebeen used in a simple moving average forecasta forecast of exponential smoothing,two exponential smoothing prediction methodtime-series methods have the mostsimple in forc-easting trend of the stock,but have the largest errorApplication ofArtificial Neural Network,BP algorithm and used gene
7、tic algorithms to train thenetwork weights,but also adopted the learning rate and momentum method ofcombining adaptive adjustment of the strategy,the price of the securities marketsmodeling and forecastingArtificial neural network model in spite of the projectedbcst effect,but the volume calculatedK
8、eyword:Data mining forecast ofstock Marker chainTime ArtificiaI neural network1 绪论1.1 论文的背景金融市场就是以金融资产为交易工具形成的供求和交易机制的总和,简言之即是金融商品的交易场所。随着经济市场化程度的提高,市场运作体制机制的不断完善,我国股票市场的发展也会逐渐步入理性运行的区间,非理性震荡将大幅减少或消失。2008年股市暴跌、投资者信心受挫,既有股权全流通的因素,也有国内经济形势波动以及国际金融动荡的因素,但其中也有我国特殊国情的因素,毕竟,证券市场对于我们这样的一个新兴的市场经济体而言,仍然算不上底蕴
9、深厚,我们在股权文化上的缺失不是几年可以弥补的。1.2 论文研究的目的与意义作为市场经济重要特征的股票市场,从诞生的那天起就牵挂着数以千万投资者的心。高风险高回报是股票市场的特征,因此投资者们时刻在关心股市、分析股市、试图预测股市的发展趋势。一百多年来,一些分析方法随着股市的产生和发展逐步完善起来,如:道氏分析法、K线图分析法、柱状图分析法、点数图分析法、移动平均法,还有形态分析法、趋势分析法、角度分析法、神秘级数与黄金分割比螺旋历法、四度空间法等,随着计算机技术在证券分析领域的普及与应用,不断推出新的指标分析法。然而,严格讲这些方法仅仅是分析手段,还不能直接预测股市的动态。此外,人们也试图用
10、回归分析等统计手段建立模型来预测股市。然而,利用传统的预测技术进行股市预测有一个最根本的困难,那就是待处理的数据量非常巨大。由于股市的行情受到政治、经济等多方面因素的影响,其内部规律非常复杂,某些变化规律的周期可能是一年甚至是几年,因此需要通过对大量数据的分析才能得到,而传统的预测技术预测效果并不理想。近十年间,数据挖掘技术的研究工作取得了很大的进展,各种数据挖掘技术的应用极大地推动了人们分析、处理大量数据信息的能力,并为人们带来了很好的经济效益,因此可以预见数据挖掘技术在股市预测中将会有很大的潜力。13国内外研究现状技术分析方法近些年来发展很快,特别是随着计算机的普及,各种分析方法越来越多。
11、针对股票市场表现出的不同特点,国内外学者提出了多种多样的分析和预测方法,常用的分析和预测方法有下面几种。1:(1)证券投资分析方法。这是市场分析家常用的方法。(2)时间序列分析法。这种方法主要是通过建立股价及综合指标平均模型(ARMA)、自回归移动平均模型(ARIMA)等来预测未来变化。(3)其他预测方法。如专家评估法和市场调查法等定性方法、季节变动法、马尔可夫链和判别分析法等定量预测方法。(4)神经网络预测法。神经网络是一种最新的时间序列分析方法。131国内研究现状90年代以来,我国计算机技术、尤其是数据库技术和网络技术在股票市场中得到充分应用,使得作为证券市场的重要组成的股票市场更加蓬勃发
12、展起来,逐步成为证券业乃至整个金融业的必不可少的组成部分,显示出强大的生命力。早期市面流行的预测方法很多,其中技术分析便包括了移均线、l(D指标、RSI等30余种指标。这些预测方法大多使用了统计学知识。近两年,随着数据挖掘技术的日趋成熟,更多的国内学者采用了数据挖掘方法预测股市走势。常用的如:时间序列分析法,独立分量分析法、人工神经网络等。有些在算法方面对分析方法提出改进,如离散小波的学习算法、BP算法、正交最小二乘法、决策树算法、租糙集算法等1。有些在模型建立上提出刨新,如建立混合型的神经网络模型哪御、多变量函数估计小波网络和模糊小波网络模型、运用最小描述长度原则选取显效因子建立模型等。13
13、2国外研究现状相比国内,国外对股票预测方面的研究要早很多。1987年,Ledes和Farbor首次将神经网络引入到预测领域中,无论是从思想上、还是技术上都是一种拓宽和突破。它解决了传统预测模型难以处理高维非线性、偏重定量指标、难以处理定性指标、缺少自适应和自学习能力的预测问题。随后,RefeneS等人将神经网络预测方法和多重线性回归方法在股票市场预测中的应用进行了比较研究,指出神经网络的平滑内插特性使其能较好的拟合数据并能更好地泛化,其预测精度比统计预测方法有较大的提高。1992年由美国的Pati和shnaprasad首次正式提出小波神经网络,通过小波函数作为神经元的映射函数,充分利用小波基的
14、局域特性及具有自适应的时频特点,构造了离散仿射小波神经网络”。目前,国内外研究现状基本相同,都是对以往研究成果进行改进。其中比较有影响的是Last,M提出的首先对时间序列进行预处理,然后从中抽取关键的预测属性,这些属性对时间序列的发展趋势影响较大,将其组成属性集,这些预测属性表征了时间序列的某种特性,这种特性与时间没有关系,因此可以采用普通的静态的数据挖掘工具对时间序列进行行为趋势的分类预测。此外有些专家也将态势理论引入了股票走势预测中根据军事领域的数据融合理论,将所观测的多空力量分布与活动和当前的证券投资环境、对方投资操作意图及操作机动性有机地联系起来,分析证券涨跌的原因,得到关于个股,板块
15、和大盘的估计,最终形成证券综合态势图。第二章数据挖掘技术与证券分析技术21数据挖掘技术近年来随着数据库和计算机网络的广泛应用,加上使用先进的自动数据生成和采集工具,人们所拥有的数据量急剧增大。数据的迅速增加与数据分析方法滞后之间的矛盾越来越突出,人们希望能够在对已有的大量数据分析的基础上进行科学研究,从而充分的利用海量数据。但是目前所拥有的数据分析工具很难对数据进行深层次的处理,使得人们只能望数兴叹数据挖掘正是为了解决传统分析方法的不足,并针对大规模数据的分析处理而出现的。数据挖掘从大量数据中提取出隐藏在数据之后的有用的信息,它被越来越多的领域所采用并取得了较好的效果,为人们的正确决策提供了很
16、大的帮助。目前,数据挖掘技术在银行、电信、保险、交通、零售等商业领域得到了广泛的应用,在股市预测方面也是一样。随着国内证券行业政策的逐步开放,证券行业的竞争越来越激烈,股市预测对数据的依赖性和敏感度也越来越高“”。数据挖掘是从数据中发现知识,挖掘、开发和利用这些数据可以使证券行业进行最适合的定位,将使企业长期的积累得以充分发挥,从而树立竞争优势。数据挖掘技术作为分析与辅助决策工具已经越来越得到国内券商的重视。211数据挖掘基本思想数据挖掘,顾名思义就是从大量的数据中挖掘出有用的信息,即从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中发现隐含的、规律性的、人们事先未知的,但是又是潜在有
17、用的并且最终可理解的信息和知识的非平凡过程。事先未知的信息是指该信息是预先未预料到的,或称新颖性。新颖性要求发现的模式应该是从前未知的,该信息是预先未曾预料到的。数据挖掘就是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识。数据挖掘是一门交叉学科,融合了数据库、人工智能、机器学习、统计学等多个领域的理论和技术“”。数据挖掘利用各种分析工具在海量数据中发现模型和数据间关系的过程,使用这些模型和关系可以进行预测,它帮助决策者寻找数据潜在的关联,发现被忽略的因素,因而被认为是解决当今时代所面临的数据爆炸而信息贫乏问题的一种有效方法。212数据挖掘分类数据挖掘涉及多个学科,主要包括数据
18、库、统计学和机器学习三大主要技术。可以按照数据库类型、挖掘对象、挖掘任务、挖掘方法和技术,以及应用等几方面进行分类。1按数据库类型分类数据库主要是在关系数据库中挖掘知识。随数据库类型的不断增加,逐步出现了不同数据库的数据挖掘。现有关系数据库挖掘、模糊数据挖掘、历史数据挖掘、空问数据挖掘等多种不同数据库的数据挖掘类型。2按数据挖掘对象分类数据挖掘除了对数据库这个主要对象进行挖掘外,还有文本数据挖掘、多媒体数据挖掘、Web数据,这些均是非结构化数据。3按数据挖掘任务分类数据挖掘的任务有关联分析、时序模式、聚类、分类,偏差检测、预测等。按任务分类有:关联规则挖掘、序列模式挖掘、聚类数据挖掘、分类数据
19、挖掘、偏差分析挖掘和预测数据挖掘等类型。4按数据挖掘方法和技术分类(1)归纳学习类:该类又分为基于信息论方法挖掘类和基于集合论方法挖掘类。基于信息论方法是在数据库中寻找信息量大的属性来建立属性的决策树。基于集合论方法是对数据库中各属性的元组集合之间关系来建立属性间的规则。各类中又包括多种方法,主要用于分类问题。(2)仿生物技术类:该类又分为神经网络方法类和遗传算法类。神经网络方法是在模拟人脑神经元而建立的肝数学模型和Hebb学习规则基础上,提出了系列的算法模型,用于识别、预测、联想、优化、聚类等实际问题。遗传算法是模拟生物遗传过程,对选择、交叉、变异过程建立了数学算子。主要用于问题的优化和规则
20、的生成。(3)公式发现类:在科学实验与工程数据库中,用人工智能方法寻找和发现连续属性之闻的关系,建立变量之间的公式,已引起人们的关注,该类中有多种数据挖掘方法,如BACON和FDD等。(4)统计分析类:统计分析是门独立学科,由于能对数据库中数据求出各种不同的统计信息和知识,故也构成了数据挖掘中大类方法。(5)模糊数据类:模糊数据类是反映人们思维的一种方式。将模糊数学应用于数据挖掘各项任务中,形成了模糊数据挖掘类,如模糊聚类、模糊分类、模糊关联规则等。213数据挖掘处理过程模型数据挖掘是一个需要经过反复的多次处理过程。如同软件工程在软件开发中的作用,数据挖掘的处理过程模型为数据挖掘提供了宏观指导
21、和工程方法。合理的处理过程模型能将各个处理阶段有机地结合在一起,指导人们更好地开发及使用数据挖掘系统。从数据挖掘进入应用领域起,就有人对数据挖掘的过程进行归纳和总结,提出了不同的数据挖掘处理过程模型。其中UsalnaMFayyadGergoryPiatetsky-Shapiro等人给出的多处理阶段模型是一种通用模型,也是最广为接受的一种处理模型。1996年,Brachman和Anand通过了解很多数据挖掘用户在实际工作中遇到的问题,发现用户的很大一部分工作量是在数据库的交互上,他们从用户的角度对数据挖掘处理过程进行了分析,认为数据挖掘应该更着重于对用户进行知识发现的整个过程的支持,而不是仅仅限
22、于在数据挖掘的一个阶段上,进而提出了以用户为中心的处理过程模型。该模型特别注重对用户与数据库交互的支持,用户根据数据库中的数据,提出一种假设模型,然后选择有关数据进行知识的挖掘,并不断对模型的数据进行调整优化。Brachman和Anand在他们开发的数据挖掘系统IIdACS(Interactive MarketingAnalysis And Classification System)中采用了这种以用户为中心的处理过程模型。1997年斯坦福大学的GeorgeHJohn在其博士论文中给出另外一种数据挖掘处理过程模型。该模型强调由数据挖掘人员和领域专家共同参与数据挖掘的全过程。领域专家对该领域内需
23、要解决的问题非常清楚,在问题的定义阶段由领域专家向数据挖掘人员解释,数据挖掘人员将数据挖掘所用的技术及能解决问题的种类介绍给领域专家。双方经过互相了解,对要解决的问题有一致的处理意见,包括问题的定义及数据的处理方式。1999年中国科学院计算研究所的朱延绍博士认为前述模型对知识发现过程中的反复学习和多目标学习支持不够,即针对某种知识发现算法确定一批相关数据,使用其他算法时,这批数据即告无效,必须重新进行数据的提取和预处理。为此在他的博士论文中提出支持多数据集多学习目标的数据挖掘处理模型,将数据和学习算法尽量分离,以使得数据挖掘更适合实际工作的需要并使得最终用户和数据挖掘人员之间的影响尽量小,以提
24、高学习效率。为了实现数据与学习算法分离的目的,该模型使用了数据集的概念。数据集是指为了完成某项学习任务而从数据库中提取出的数据。在数据集的描述中包括对数据的描述以及训练数据和测试数据的生成方法。数据集并不是针对某一个学习算法,而是针对某类问题而定义的,它给出了问题所涉及的数据。在具体算法进行数据处理时,必须对数据进行简单的筛选和加工以剔除冗余数据。214数据挖掘过程及工具数据挖掘是一个反复的过程,通常包含多个相互联系的步骤,如定义和分析主题、数据预处理、选取算法、提取规则、评价和解释结果、将模式构成知识,最后是应用。并且随着应用需求和数据基础不同,数据挖掘处理的步骤可能也会有所不同。通常,数据
25、挖掘有以下几步(如图21)1问题定义进行数据挖掘,首先必须分析应用领域,包括应用中的各种知识和应用目标。问题定义阶段就是了解相关领域的有关情况,熟悉背景知识,弄清用户要求。在确定用户的需求后,应对现有资源如已有的历史数据进行评估,确定是否能够通过数据挖掘技术来确定用户的需求,然后将进一步确定数据挖掘的目标和制定数据挖掘计划。2数据准备数据挖掘所处理的数据集通常不仅具有海量数据,而且可能存在大量的噪声数据、冗余数据、稀疏数据或不完全数据等。数据准备包括数据抽取、清洗、转换、和加载,具体包括数据的清洗、集成、选择、变换、规约,以及数据的质量分析等步骤。3建立模型数据挖掘中的建模实际上就是利用己知的
26、数据和知识建立一种模型,这种模型可以有效地描述已知的数据和知识,希望该模型能有效地应用到未知的数据或相似情况中。在数据挖掘中,可以使用许多不同的模型:关联规则模型、决策树模型、神经网络模型、粗糙集模型、数理统计模型、时间序列分析模型。4评价模型数据挖掘得到的模式有可能是没有实际意义或没有实用价值的,也有可能不能准确反映数据真实意义,甚至在某些情况下是与事实相反的,因此对于数据挖掘的结果需要进行评估。确定数据挖掘是否存在偏差,挖掘结果是否正确,确定哪些是有效的、有用的模式,是否满足用户需求。评估的方法一种是直接使用原先建立的挖掘数据库中的数据来进行检验,也可以另找新的测试数据并对其进行检验,另一
27、种办法是使用实际运行环境中的当前数据进行检验。正是数据挖掘技术巨大的商业潜力,吸引了众多公司从事数据挖掘系统的研究和开发,而且有的已经商品化。在不久以前大部分数据挖掘工具还只能为专业技术人员所操控。但是,现在有更多的公司提供了更高级的数据挖掘系统,使得非专业人士也能使用。如表2-1所示,归纳了当今主要的数据挖掘产品“”。22时间序列预测技术时间序列是一种非常广泛也非常重要的数据,如计算机系统中的日志记录。可以抽象地认为这个记录是时间的一个序列,每个时间有对应的产生事件。时序数据库是指由随时间变化的序列值或时间组成的数据库,值通常是等时间间隔测得的数据。时间序列分析是用变量过去的值来预测未来的值
28、。这些值的区别是变量所处时间的相关性,如对股票涨跌的分析。趋势分析是时间序列方法的一个主要应用之一,通常,对趋势进行评估有三种曲线拟合方法:1自由方法。它是根据个人判断画一条近似曲线(或直线)来拟合所给出的一组数据:这种方法的有效性和质量就完全依赖个人的判断,这种方法在对大规模数据挖掘中既不可靠且成本高。2最小平方方法。将最佳拟合曲线作为最小平方曲线。3移动平均方法。它是利用移动平均来消除循环、季节性和无规律的模式。然而移动平均会丢失在序列开始和结束时的数据,而这些数据不存在时可能会导致循环或其他变化的产生。通过加权移动平均可以消除极端值数据的影响。预测是构造和使用模型评估无标号样本类,或评估
29、给定样本可能具有的属性值或区间值。预测的目的是从历史大量数据中自动推导出对给定数据的推广描述,从而能对未来数据进行预测。由于股票数据具有数据时序的特点,正符合时间序列方法要求有大量充足的时序数据的要求。所以应用时间序列方法预测股票的走势是可行的。221 简单一次移动平均预测法简单一次移动平均预测法是对时间序列按一定跨越期,移动计算观察值的算术平均数,其平均数随着观察值的移动而向后移动。设y。为时间序列,取移动平均的项数为n,设Y。是第t期的实际值,则第(t+1)期预测值的计算公式为:其中,N为时间序列yt)中原始数据的个数0。项数n的取值应该根据时间序列的特点而定。如果n过大会降低移动平均数的
30、敏感性,影响预测的准确性;如果n过小,移动平均数易受随机变动的影响,难以反映实际趋势。一般取n的大小能包含季节变动和周期变动的时期比较好,这样可以消除它们的影响。对于没有季节变动和周期变动的时间序列,n的取值要视历史数据的趋势类型而定。一般说来,如果历史数据的类型呈水平型发展趋势,则项数n可取较大值;如果历史数据的类型呈上升(下降)发展趋势,则项数n可取较小值,这样能取得较好的预测效果。222一次指数平滑预测法指数平滑预测法实际上是一种特殊的加权移动平均法。它的特点在于:1对离预测期最近的市场现象观察值,给予最大的权数,而对离预测期渐远的观察值给予递减的权数。2对于同一市场现象连续计算其指数平
31、滑值,对较早期的市场现象观察值不是一概不予考虑,而是给予递减的权数。3指数平滑法中的口值,是一个可调节的权数值,它是一个Oa1的值。其中,n为时间序列中含有原始数据的个数。平滑系数口对预测值有较大影响,但目前还没有一种较好的选值的方法,只能根据经验来确定。当时间序列的数据呈水平型发展趋势时,口可取较小的值,通常在0到03之间;如果序列数据的类型呈上升(下降)型发展趋势,则项数口可能取较大值,在06到1之间。在实际预测时,可以选取不同的口值进行比较,从中选取一个合适的口值。在计算指数平滑法的平滑值时,需要给出一个初值s5,可取原时间序列的第一项或前几项的算术平均值为初值。一次指数平滑法适用于变化
32、比较平稳、增长或下降趋势不明显的时间序列数据预铡。223两次指数平滑预测法二次指数平滑预测法是对一次指数平滑值再作一次指数平滑来进行预测的一种方法,但第(t+1)期预测值并非第t期的二次指数平滑值,而是采用下列公式进行预测:二次指数平滑法适用与时问序列呈线性增长情况下的短期预测。23人工神经网络技术人工神经网络是大量简单元件广泛相连接而成的复杂网络系统,它是现代神经科学成果的基础下提出的,反映了人脑功能的若干基本特征,但并非神经系统的逼真描写,而只是一种抽象的数学模型。人工神经网络其实质是一门非线性科学,它具有并行处理、容错性、自学习功能,有别于传统方法,己在模式识别、自动化控制等领域取得了惊
33、人的成就。在国外,人工神经网络已经成为了投资公司及基金经理的强力工具与高效助手。国内起步虽晚,但对于基于神经网络的股票预测系统也有一定的研究。人工神经网络的应用按照面向的预测对象可分为这三类。第一类为通过将股票分类为强势股与弱势股来预测股票表现为优秀股,一般股,较差股。这类人工神经网络应用做出的决策只提供能否盈利,并不提供期望的价格及期望的盈利。第二类对股票价格进行预测,这些系统基于之前的股价及相关的金融系数尝试预测未来一天或几天的价格。第三类重要的人工神经网络在股票市场中的应用是对股票表现建立模型及预测。这类应用不仅预测股票的未来价格,也估算重要影响因素,可能影响结果的变量的敏感度分析,以及
34、其他相关性分析。”23.1 BP算法本文采用目前应用最广泛的多层前馈神经网络模型(BP模型)。BP算法的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能得到所期望的输出,BP网络由输入层、输出层及隐含层组成,如图22所示隐含层可有一个或多个,每层由若干个神经元组成。隐含单元与输入单元之间、输出单元与隐含层之问通过相应的传递强度逐个相互联结,用来模拟神经细胞之间的相互联结。一个良好的网络结构能提高运算的精度,缩短学习的时间m1。输入和输出层的神经元个数一般由输入和输出变量的个数决定,而隐层的神经元个数则跟输入层和输出层的神经元个数有关,但具体的定量关系目前仍无定论。根据Cnar
35、ence N·w·Tan和Gerhard E·Witti91993年的研究,一般情况下输入层、单个隐层和输出层的神经元个数基本相等呈金字塔结构时,BP模型的运行效果较好。BP神经网络采用误差反馈学习算法,其学习过程由正向传播(网络正算)和反向传播(误差反馈)两部分组成。在正向传播过程中,输入信息经隐含单元逐层处理并传向输出层,如果输出层不能得到期望的输出,则转入反向传播过程,将实际值与网络输出之间的误差沿原来的联结通路返回,通过修改各层神经元的联系权值而误差减小,然后再转入正向传播过程,反复迭代,直到误差小于给定的值为止。232 GA算法遗传算法(GeneticA
36、lgorithm,简称GA)是一种模仿自然界生物进化论思想而得出的一种自适应启发式全局搜索算法,其实质是由复制一交换一变异算子组成的周而复始的循环过程。这种方法由于仿效生物的进化与遗传,根据“生存竞争”和“优胜劣汰”的原则,借助复制、交换、变异等操作,使要解决的问题一步步逼近最优解。遗传算法的实施过程中包括编码、产生群体、计算适应度、复制、交换、变异等操作。使用遗传算法时,需要把优化问题的每一个解的参数形式转换成基因码串的表现形式,这一转换操作就叫编码。其中码串中的每一位代表一个基因,一个基因码串就代表问题的一个解,每个基因码串有时也称做一个个体,或称做染色体。一定数量的个体组成了一个群体,一
37、个群体是若干个个体的集合。由于每个个体代表了问题的一个解,所以一个群体就是问题的一些解的集合。GA通过上述简单的机制,以不依赖于求解问题本身的方式,能够对复杂,非线性和多维空间实现快速有效地搜索,其主要优越性表现在具有全局优化能力和隐含并行性方面,复制和交换算子使算法将注意力集中到搜索空间中的优势区域。第三章人工神经网络的预测实现31 神经网络模型在股票预测中的应用本文采用基于BP模型的神经网络,用BP算法和遗传算法来训练网络权值,同时还采用了调整权值和调整策略相结合的方法,对证券市场的价格进行预测,并通过实验验证运用神经网络模型预测性能的可行性,探讨人工神经网络理论在证券市场预测中的应用。3
38、.2 数据预处理子系统 数据预处理子系统根据挖掘的目的,对原始沪深估值数据文件中的数据进行提取、分解、合并、最后转换为适合进行数据挖掘的数据格式,并保存到关系型数据库表或数据仓库中,等待进一步处理。该阶段是股票数据信息挖掘最关键的阶段,数据预处理包括:关于沪深股指数据的清理处理、关于清理后股指数据的归一化处理。数据预处理过程如图4.2所示图4.2 数据预处理过程本论文分析数据来源于大智慧股票分析软件,保存在“zong.xls”文件中,它实际上是一个4255*27的矩阵,共130多万笔记录,这些数据包括股票名称、股票代码、股票交易日期、总流通股、股票开盘价、股票收盘价、股票日成交量、最高价、最低
39、价,还有5日,10日平均线数据以及各种股票综合指数。具体统计输出数据如表4.1所示:表 4.1我们用如下公式对原始数据进行了归一化:- 归一化后的数据取值在0到1之间。通过excel里的公式编辑器,我们得到规约好的数据文件data2.xls。具体数据如表4.2所示:19940113 0.840929 0.797166 0.775397 0.562569 0.00304 0.00369519940112 0.821091 0.777561 0.762 0.541059 0.004736 0.00582919940111 0.849729 0.758356 0.839179 0.527059 0.
40、005769 0.0062619940110 0.862393 0.714819 0.915974 0.56234 0.006878 0.00858219940107 0.79359 0.643001 0.874165 0.555569 0.006354 0.00771719940106 0.723874 0.57066 0.831278 0.580351 0.007144 0.00844119940105 0.58581 0.498004 0.660383 0.578821 0.003535 0.0040919940104 0.483011 0.460027 0.51351 0.541956
41、 0.002511 0.00298519940103 0.523123 0.455932 0.593847 0.541041 0.003801 0.0046219931231 0.566838 0.42916 0.708561 0.555886 0.002492 0.003188表4.2 数据下载之后导出成固定格式的文本文件,通过编程把这些文本文件在导入到MS第四章 基于 BP 神经网络模型的股票分析系统设计SQL Server数据库。为了方便接下来的数据挖掘,设计数据库结构共分为5个表结构如下图4.3所示:图4.3 股票交易数据库结构其中:m_block是股票分类板块, 比如股票分类是按地域
42、或概念或行业来分类等等;m_class是一个股票分类板块下的具体的股票分类;m_stock是所有股票及其本身相关的属性;m_ stock_ class是一个股票分类与具体股票之间的关系;t_trade是所有股票的交易数据。3.3 BP神经网络子系统结构设计 我们使用VC6.0编程设计实现BP神经网络核心子系统。BP神经网络核心数据结构如下:Struct node_w19Short node11;Double v11;Double dv11;Struct node_w *next;Struct all_nodeDouble act;Double ta;Int cha;Short node11;D
43、ouble w11;Double dw11;Struct node_w *nwnext;Struct all_node *nnext;为了表达BP神经网络的层次结构,我们设定了如下数据结构:Struct node_cShort n_c;Struct node_c *next;Struct hidden_layerStruct node_c *next;Struct hidden_layer *lnext;Struct strShort layer;Short input_n;Short hidden_n;Short output_n;Short node_n;Struct node_c *il
44、;Struct hidden_layer *hl;Struct node_c *ol; 其中,结构体node_c表示神经元链表,n_c是神经元编号,*next代表指向下一个神经元的指针。Hidden_layer结构体用来表示神经网络中的隐含层,处于同一隐含层的神经元代码由*next指针来链接,下一层的各神经元由指针*lnext来表示。结构体structstr用来描述神经网络的结构。其中,layer表示这个神经网络中所含的神经元层数;input_n,hidden_n,output_n为该神经网络模型中所有输入神经元个数,隐含层神经元个数和输出层神经元个数;node_n代表了该神经网络模型中所含有
45、的神经元个数;*il指针指向输入层神经元链,*hl指针指向第一隐含层神经元链,*ol指针指向输出层神经元链。其具体数据库结构如图4.4:图 4.4 神经网络数据库结构根据BP神经网络模型的学习算法,可以得到BP神经网络模型的学习算法实现流程图,如图4.5所示:图 4.5 神经网络算法实现流程图 神经网络子系统核心部分有三部分组成:底层股票数据模块,神经网络模块,结果图形显示模块。底层股票数据模块#基本参数设置#stockTotalLen成交量#dStockData基本股票数据stockTotalLen=length(dStockData);#神经网络学习训练集的大小stockTrainLen=
46、stockTotalLen*iRatio#学习训练的股票交易数据iStudyBaseData=dStockData(:;1:stockTrainLen);#训练的股票交易预测数据IstudyTargetData=dStockData(1:stockTrainLen);#预测股票的交易数据iCheckBaseData=dStockData(:,stockTrainLen:stockTotalLen);#预测股票交易的预测数据iCheckTargetData=dStockData(stockTrainLen:stockTotalLen);神经网络模块#神经网络学习=训练学习#bTrainF=1,需
47、要学习获得网络参数,否则应用已有网络参数If bTrainF=1#数据预处理pn,minp,maxp,tn,mint,maxt=premnmx(train_p,train_t);#创建BP神经网络#iIValue神经网络的输入节点#iMValue神经网络的中间节点#iOValue神经网络的输出节点#strIFun神经网络的输入层函数类型#strMFun神经网络的中间层函数类型#strOFun神经网络的输出层函数类型#strTFun神经网络的训练函数类型Net=newff(minmax(pn),iIValue, iMValue,iOValue,strIFun, strMFun,strOFun ,
48、strTrainFun);#神经网络参数iTrainShow显示间隔次数Net.trainP.show=iTrainShow;#神经网络参数iTrainR神经网络的学习速度Net.trainP.r=iTrainR;#神经网络参数iTrainM神经网络的动量常数Net.trainP.m=iTrainM;#神经网络参数iTrainMax神经网络的训练次数Net.trainP.e=iTrainMax;#神经网络参数iTrainObj神经网络的性能目标Net.trainP.g=iTrainObj;#神经网络开始训练net,tr=train(net,pn,tn);end#神经网络应用预测检验#预测数据预
49、处理p3,minp3,maxp3,t3,mint3,maxt3=premnmx(iCheckBaseData,iCheckTargetData);#模拟预测dSimStanderV=sim(net,p3);#得去预测值dSimV=postmnmx(dSimStanderV,mint3,maxt3);#获得实际值与预测值的差值dExpV=iCheckTargetData-dSimV;#计算均方差值Perf=mse(e);Dx=1:length(dSimV)图形显示模块#设置图形显示位置Subplot(3,5,4);Xlabel(strXlab);Ylabel(strYlab);Title(str
50、Title);Plot(Xlabel,Ylabel,Title);#显示预测结果Grid on; 28Subplot(4,6,5);Xlabel(strXlab);Ylabel(strYlab);Title(strTitle);Plot(Xlabel,Ylabel,Title);Grid on;图4.6是用VC6.0最终的建模结果从上表,我们可以看出输入数据RSI.RSI1,BIAS.BIAS1,BIAS.BIAS2和成交量对输出数据“涨幅”的影响较大。这样便形成了预测模型输入输出的具体描述(X 1, X 2,X3,X4)|Y)。即(RSI.RSI1(6), BIAS.BIAS1(6), BI
51、AS.BIAS2(12), 成交量)涨幅。第四章时间序列方法的预测实现本章将采用时间序列几种常用的方法一简单一次移动平均预测法、一次指数平滑预测法、两次指数平滑预测法来对股票走势进行预测分析。其中,一次指数平滑预测法及两次指数平滑预测法还对权值口的取值进行测试。其中不选择权值预测的为简单一次移动平均值,不选择复合权值的为指数平滑预测法中的单重权值法,选择复合权值的为指数平滑预测法中的复合权值法。下面详细的介绍三种方法的实现过程。41 简单一次移动平均预测法简单一次移动平均预测法是对时间序列按一定跨越期,移动计算观察值的算术平均数,其平均数随着观察值的移动而向后移动。411 简单一次移动平均预测
52、法实现过程1数据准备以亚泰集团(600881)为例,我们要预测2007年11月的亚泰集团走势,数据来源为长财证券大智慧。y。)时间序列我们选取从2007年5月8日2007年10月31日的收盘价,周期为半年,共计120个数据。选取这段数据的理由在于:(1)这段期间亚泰集团没有发生派股行为。(2)这段期间亚泰集团走势即有平稳又有波动。本设计数据来源于大智慧,数据内容为开盘价、最高价、最底价、收盘价、成交量、成交额六项,由于本设计只需收盘价即可实现预测,所以准备数据如表3-1所示:2数据导入为了以后实验的方便,我们把从大智慧上取得的数据利用Microsoft SOL Server企业管理器工具栏中的
53、昕S导入导出向导导入sQLServer中已建好的表中。如图32所示:导入数据后要注意的是,SQL默认导入数据类型为varchar,股票涉及的数据都是小数,varchar类型在计算时会与原数据不符,应该改为float类型。数据导入SQL后,为了能在MicrosoftVisualC+中直接调用,需在SQL和VC中间建立一个“桥”。本设计使用了ODBC数据管理器。如图33所示:3预测实现本设计编程采用了C+语言,数据库使用了SQL,挖掘过程如图31所示,得到了亚泰集团在简单一次移动平均法计算下的07年11月预测值,共计22个。412简单一次移动平均预测法实验结果在得到预测结果后,本设计利用误差公式求
54、出实际值与预测值之间的误差。如下表所示:4.1.3简单一次移动平均预测法优缺点从实验结果看出,简单一次移动平均预测有诸多好处:1预测方法简单容易实现。2可以消除由于偶然因素引起的不规则变动,同时又保留了原时间序列的波动规律。3每一个移动平均值只需几个观察值即可计算,需要贮存的数据很少。但是,简单一次移动平均预测值与实际值有较大的误差,这也是由于简单一次移动平均预测法的本身存在很多不完善的地方:这种方法只能向未来预测一期。对于有明显趋势变动的市场现象时间序列,这种方法是不适合的。它只适用于基本呈水平型变动,又有些波动的时间序列。所以,我们引入了第二种时间序列预测方法一一次指数平滑预测法。4.2一
55、次指数平滑预测法指数平滑预测法实际上是一种特殊的加权移动平均法。它的特点在于:1对离预测期最近的市场现象观察值,给予最大的权数,而对离预测期渐远的观察值给予递减的权数。,2对于同一市场现象连续计算其指数平滑值,对较早期的市场现象观察值不是一概不予考虑,而是给予递减的权数。3指数平滑法中的口值,是一个可调节的权数值,它是一个04口1的值。4.2.1一次指数平滑预测法实现过程数据准备、数据导入、预测实现的过程参照简单一次移动平均值预测法。本设计在口值的选取上采用了两种取值方法,单一取值法和复合取值法。以亚泰集团(600881)为例,先取a=O1,根据公式(23),得到了亚泰集团11月股指的预测值。
56、从实验结果可以看出,对口取单一值的预测结果不是很理想,观察亚泰集团2007年5月8日2007年10月31股票走势情况,如图3_4所示,不难发现折线图有波动也有平稳。由于在判定上并没有统一的标准,本设计按照分析的天数及折线的波动幅度做了如下规定:(1)连续N个数据中最高值与最低值之差小于35(元)的数据列为呈水平趋势发展,其中N不小于20天。(2)其余情况均为呈上升(下降)型趋势发展。经过计算,5月8日8月28日、lO月16日lO月31日呈上升(下降)型趋势发展,8月29日lO月15日呈水平趋势发展根据定义,当数据呈上升(下降)型趋势发展时口通常取值在06l之问,当数据呈水平型趋势发展时d通常取值在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鄞州区2025浙江宁波市鄞州区社会治理中心招聘编外人员2人笔试历年参考题库典型考点附带答案详解
- 邱县2024年河北邯郸邱县博硕引才25名笔试历年参考题库典型考点附带答案详解
- 达州市2025四川达州市不动产登记中心招聘编外聘用人员4人笔试历年参考题库典型考点附带答案详解
- 秦皇岛市2025年河北秦皇岛市交通运输公共服务中心选调工作人员4人笔试历年参考题库典型考点附带答案详解
- 福建省2024福建省工业信息产业发展研究中心招聘高层次人才2人笔试历年参考题库典型考点附带答案详解
- 石阡县2024贵州石阡县青年就业见习万岗募集笔试历年参考题库典型考点附带答案详解
- 白山市2024吉林白山市事业单位招聘高层次和急需紧缺人才166人(1号)笔试历年参考题库典型考点附带答案详解
- 2026食品冷冻冷藏食品行业市场供需分析及投资评估规划分析研究报告
- 2027届安徽省安庆市潜山县四年级数学第一学期期末复习检测试题含解析
- 2027届庆阳市合水县数学六年级第一学期期末质量跟踪监视试题含解析
- 2025-2026学年地质版三年级体育全一册(教案设计)
- 2026年芯片设计DFT工程师高频面试题包含详细解答
- 施工现场清洁施工方案(3篇)
- 2026年计算机一级WPS Office真题冲刺高频模拟含解析
- TCPCIF-《化学品自动化立体仓库设计规范》
- 供排水安全工作方案
- 娄底市辅警招聘公安基础知识考试题库及答案
- 《微针治疗操作规范》团体标准(征求意见稿)
- 危险药品运输制度规范
- 2025年湖南事业单位招聘考试(计算机)细选练习试题及答案
- 2026江西吉安市吉水县城控人力资源服务有限公司招聘劳务外包1人备考题库(一)有答案详解
评论
0/150
提交评论