基于数据挖掘的股票预测方法_第1页
基于数据挖掘的股票预测方法_第2页
基于数据挖掘的股票预测方法_第3页
基于数据挖掘的股票预测方法_第4页
基于数据挖掘的股票预测方法_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论1.1选题背景与意义股票的市场价格是由股票的价值所决定,股票价值受多方面因素的影响,在宏观上,社会、政治、经济、文化等方面对股票价值均可能对其产生影响。在产业和区域上,产业发展程度和地方经济水平也产生结构性的影响。还有上市公司的经营状况以及科技开发水平、产品竞争实力、财务水平从不同方面对股票价格产生或多或少的影响,股票市场的运作、人为的操纵也对股票价格产生一定影响。在高速发展的时代,国民对股票进行投资成为趋势,而股票价格的走势并非是无迹可循的,因此对股价进行准确的预测成为每一个投资者梦味以求的心愿。数据挖掘可以从大量的数据中通过算法将数据中隐含的信息提炼挖掘出来,转换成为人们迫切所需有用的知识和信息。[1]目前大数据研究发展迅速,一旦有新的信息,便可以通过模型进行预测,提前获得消息,如今数据挖掘技术与多种应用相结合为人们提供方便。而股票涨跌是以概率方式呈现的,随着数据挖掘技术的崛起,可以通过建立模型进行预测,海量的股票数据通过分析不再杂乱无章,大大提高了投资盈利的概率。在股票预测中,人们一直在用不同的方法进行预测从而获得更大的利润,如森林算法、K线图走势分析、RBF神经网络等。基于数据挖掘进行总结、分类、关联、聚类、预测等对数据处理可以获得更多信息,其中成功的案例如市场菜篮案例、啤酒尿布案例等。中国的近十年时间,股民结构也发生了重大的变化,股市也是跌宕起伏,随着数据的积累、计算机技术的不断发展,看上去无次序、没有任何关联的数据之间通过分类、关联等技术产生了联系,其中分类的方法也是多种多样,如判定树归纳分类、SLIQ、贝叶斯等技术以及用机器学习方法、神经网络、粗糙器方法构造分类器也是多种多样的。由此利用数据挖掘技术进行股票预测的方法也是多种多样。1.2国内外研究现状随着计算机技术的不断发展以及数据挖掘技术的不断成熟,使数据的运用越来越有效率和灵活,但是当人们面对海量数据时,整理和分类运用的能力却十分欠缺,面对海量的数据,通过算法从数据中提炼出对人们有用的信息显得至关重要,于是数据挖掘技术开始崛起。从早期利用道氏理论、K线图走势分析、点数图走势分析、柱状图走势分析等进行股票上的预测,到利用预测模型进行预测,在1989年举办的国际人工智能专题研讨会中,基于数据挖掘的知识发现首次被提出,数据处理不再成为难题。数据挖掘逐步运用在各个领域,对数据的处理也越发成熟。在1991年,数据挖掘技术在股票分析上运用提出,通过利用股票上的海量数据对股票价格进行了预测。现如今数据爆炸的年代,如果不能很好地将数据有效的提炼出,大量的数据将不能有迹可循,不能再为我们提供更多的信息,这样信息丰富但是知识贫乏的年代,人们想要获得数据中隐含信息的心情日益强烈,于是数据挖掘技术开始崛起,将过多无用的数据进行筛选,获得隐藏在里面的信息,并能够让我们充分应用。近些年,国内外都开始推出了一些新进的数据挖掘工具,许多企业通过自己的需求和人才的累计,对不同数据挖掘工具进行选取和应用。近年来,国外多个国家如美国、英国、日本,加拿大等不断将数据挖掘技术融入服务与管理中,设计了许多方面从环境规划到企业投资,数据挖掘已经得到了充分的应用。美国某公司利用数据挖掘对民众进行调查,分析了民众对某股票的买入情况来判断是否购买该股票,那次该季度获得了高于平时的收益率。国内利用数据挖掘进行股票应用是由香港科技大学BeatWuthrich首次研发提出来,之后其他专家也提出了一些关于股票预测上的研发。到如今,数据挖掘的成熟,算法的多种多样也使得在股票预测上方法也是层出不穷。国外在数据挖掘进行股票预测的研究早于中国许久,在应用上也较为成熟一些,AI是最早研发出的系统,针对股票投资者而研究出来的软件,利用可视化、聚类技术来预测投资时间获取最大利润。之后有技术人员利用粗糙集算法分析海量股票价格数据,得出依赖关系从而进行预测。数据挖掘在股票上的应用也是越来越广泛。许多专家对数据进行归一化和离散化处理,提供了许多信息,为股票投资者提供有利信息。[2]如今,国内外在数据挖掘进行股票预测已能者辈出,从AtiyaAF、ChenJF、Racine、Meissner等利用指针通过神经网络进行预测,还有Koohzadietal等采用ARIMA模型进行预测,还有Timmermann利用神经网络进行计算,以及台湾地区,张文信利用反向传播算法预测,其正确率高达67%。1.3主要研究内容本论文的研究内容主要是对股票价格走势进行预测分析,通过数据挖掘技术进行总体研究。数据挖掘技术进行预测的方法多种多样,本文采用了三种预测方法:主成分分析、时间序列预测、神经网络BP,对股票价格走势进行预测。以下对这三种预测方法进行简要说明:第三章利用主成分分析进行研究,影响股票价格走势的由许多因素,如科技开发水平、产品竞争实力、财务水平等多个变量,多个变量之间存在一定的关联关系,而这些关联的变量增大了研究的难度,利用主成分分析进行降维,通过相关矩阵、成分矩阵得到相应的主成分系数,便可以得到主成分变量,通过主成分变量的相应信息进行股票走势的预测。第四章时间序列通过对按照时间先后顺序排列的数据进行研究长期趋势、季节变动、循环变动和不规则变动,预测现象的发展趋势和前景。指数平滑用来描述股票价格变化趋势,是一种加权移动平均,根据参数的数量不同,分别进行但参数指数平滑、双参数指数平滑、三参数指数平滑进行预测,通过调整权数,获得与模型最接近的预测模型,一次对股票价格走势进行预测。第五章神经网络算法通过划分训练集和验证集,用验证集去评定模型的稳健性,防止过拟合,在进行数据归一化消除数据间的影响,使数据具有可比性,构建神经网络与训练历史可视化,通过九个股票的关联,利用其中八个股票对第九个股票价格进行预测。第六章通过三种算法进行比较,发现BP神经网络最适应影响因素较多的股票预测。第2章数据挖掘技术概述2.1数据挖掘的概念数据挖掘是指从海量的数据中通过一些算法将数据提炼出重要的信息的技术,数据挖掘技术与计算机息息相关,又离不开统计,是通过统计分析处理、机器学习、高性能计算、信息检索等多种技术实现的。并不是所有的的系统都进行着真正的数据挖掘,数据挖掘是涉及多学科的综合,是通过数据准备、规律寻找、规律表示从大量数据中分析每一个数据并从中寻找出规律的技术,想从数据中找出相关的数据并整合成用于数据挖掘所需要的数据集,通过算法将数据集中的规律提炼出来,再用可视化让人们易懂。数据挖掘的数据类型、挖掘方法、挖掘对象都可以多种多样,类型可以是结构化、异构型、半结构化,挖掘的方法可以是数学、非数学、归纳的。挖掘的对象也可以是关系数据库、数据仓库、文本、空间数据、web数据等。随着计算机技术的不断发展,大量的数据被存储下来,可如何运用数据挖掘,用哪些数据进行挖掘,具体如何实施,现在许多公司已经给出具体步骤,先要定义问题,只有目标明确才能知道具体想要做什么,不同的目标收集的数据也会千差万别,必须要对目标有一个清晰的认识。其次建立数据挖掘库,先进行数据的收集,在对数据进行物理描述和逻辑描述,把具体事务转换成能被计算机处理的信息,选择数据,对数据进行质量评估和数据清理,只有良好的数据才能使挖掘的内容质量较高,较差的数据会影响数据挖掘结果,失之毫米,差之千里。之后对预测影响最大的数据进行分析,是否需要导出。此时再进行准备数据,选择变量、记录,创建和转化变量,此时就可以建立模型,建立模型是一个反复的过程,只有经过反复的建立才能判读哪一个模型对目标最有利,一般先用一部分数据建立米星,剩余数据分成两部分,一部分用来检验,另一部分用来测试,模型准确性较高时模型才算真正的建立成功,便可以对模型进行解释和价值的评定,用通俗易懂的语言反馈给客户,最后便可以实施了。而数据挖掘分析也是个重要的部分,分类、估值、预测都是有指导的数据挖掘,无指导的数据挖掘通常指关联和聚类。2.2基于数据挖掘的股票预测方法2.2.1主成分分析概念及优缺点主成分分析方法是一种统计上的方法,将一组可能存在关系的多个变量通过正交变换法转换成一组线性不相关的变量,这是一种多元统计的方法,从大量的变量中导出少数的几个主成分,并且让这少量的成分尽可能的多包涵一些信息。在对一个目标进行研究的时候,为了更好的研究这个目标,通常需要很多的相关变量,但是有些变量对该目标的影响不大,有些变量和变量之间产生关联关系对目标变量产生新的影响,这会大大增加研究的难度,所以需要少量的几个成分称为主成分来代表之前的多个变量。主成分分析是一种降维的统计方法,降低研究目标的数据维度,从Bracais开始不断有科学家对主成分的发展提出了研究,例如霍特林、皮尔逊等,要对原来多个变量进行研究,删去重复多余的变量,建立尽可能少并且两两不相关的变量。正如一千个人的身材都不一样,为每个人定制衣服定然是不靠谱,但是对一千个人甚至更多的人进行操作,你就会发现有几个主要的成分是相同或者相似的,采用这几种主要的成分定制衣服就可以多人穿同样大小的衣服,为工厂提供了变量,提高了效率。主成分分析已经深入生活的领域,如人口统计、数理分析、分子动力等,是一种常用的多变量分析。[3]主成分分析中将原本相关的变量重新筛选组合成互相无关的变量,一般用方差来表示,Var越大表示其包含的数据越多,将方差最大的作为第一主成分,如果第一主成分不足够表示原先的变量所代表信息,这个时候在添加第二主成分,以此类推。相比起因子分析、聚类分析,主成分分析是如果通过少量的变量代表多变量来尽可能多的包含更多信息,并使少量变量之间存在彼此不相关,而因子分析是根据相关性大小进行变量分组,然后寻找起着支配作用的变量的因子模型的。主成分能解释所有变异,而因子分析只能解释部分。聚类分析是类间相关小,类内相关大,通过将原来的数据按照某一特征进行分类,获得某种规律。主成分分析会产生新的变量,而聚类分析不能产生新的变量。[2]主成分分析会对原始数据进行标准化来消除量纲和数量级,因子分析对这一方便没有太高的要求,但是通常数据存在量纲和数量级是不能进行比较,只有消除影响才能更好的比较,得到更好的信息,这是选择主成分分析的主要原因。对于聚类分析,如果采用的量纲不同会导致错误的聚类结果。主成分分析在应用上侧重于信息贡献影响力程度上,但是主成分分析的变量有正有负,导致评价不能明确,清晰度低。2.2.2时间序列分析概念及优缺点时间序列从统计意义上将,就是按照时间的先后顺序对某一变量进行描述,通过简历时间序列模型可以用来预测,是一个常用的预测方法。通常一个时间序列会包含长期趋势、循环变动、周期变动以及不规则变动,是一种动态数据处理的统计方法。[3]而平滑法是用来预测和趋势预测的重要的方法,可以消弱不规则变动对时间序列的影响,使时间序列平滑显出长期趋势的规律。每一个数列都是对过去信息的记载,通过时间序列分析可以找到数据中存在的规律和统计信息,尽可能的获得更多的我们所需要的信息并对未来进行预测。时间序列分析按照手段不同可以分为、数据图法、指标法、模型法。数据图法使通过在平面直角坐标系上横轴为时间,纵轴为统计变量,进行绘制,通过图形的转折点和异常点、周期性等的分析可以直观的了解到一些主观性较大的信息。指标法相比数据图提供的信息更多一些,通过计算一些数据综合指标来表示信息,本文采用的是模型法,通过理论,整理数据,建立适当的模型再进行预测。指数平滑是一种加权移动平均法,不仅可以对时间序列进行预测还可以描述时间序列的变化趋势等,用时间序列以往的数据进行加权平均来作为未来的预测值,靠近现在的时刻的权值越大,通过对权值的调整来建立适合的模型,根据参数的数目分为单参数指数平滑、双参数指数平滑和三参数指数平滑。对于单参数指数平滑,根据实践经验,一般权值的选区范围在0.1到0.3,对于权值的确定取值,需要根据理论分析和模型的对比。一般根据时间序列的波动大小来调整权值的选择。一般时间序列的波动小的话,就可以把权值选的小一点,如果时间序列的波动较大,就要将权值选择大一定。单参数时间序列分析方法一般用于不包含长期趋势和季节变动的平稳时间序列的预测,而对于双参数指数平滑一般用于只含长期趋势的非平稳时间序列分析的预测中,三参数指数平滑用于包含长期趋势和季节变动的非平稳时间序列分析预测中。时间序列的数据具有不规律性,用时间预测进行股票研究抛开了市场发展的因果关系,而且时间序列会导致多重共线性,影响最后预测结果。[4]时间序列通过以往数据来通过模型预测未来数据,从而获得信息。而时间序列指数平滑法是特殊的一种时间序列法,没有ARIMA模型表示的信息多。指数平滑法所要求的数据也是有限制的,不同的方法不能适用于所有数据,这也使时间序列指数平滑法不能灵活运用。时间序列预测法可用不同长度的时间预测,有简单平均数法、加权平均数法。根据有限长度的数据记录,建立可以及时准确反应序列的动态关系的模型,用来对未来进行报告。[5]2.2.3BP神经网络概念及优缺点神经网络算法时数据挖掘算法中非常重要的一种经典算法,通过模拟生物神经系统的结构和功能模拟人脑的神经元,将每一个连接的地方看作一个需要处理的单元,[6]进行分裂、特征挖掘、聚类等数据挖掘方法,通过训练数据进行通过改变权值来进行机器学习的非线性预测模型。感知机网络对神经网络具有重大的推动作用,也是如今BP神经网络运用如此成熟的原因,二十世纪八十年代中期BP算法被发明出来,解决了网络隐藏连接问题,具有多问函数映射能力,增强了网络分类和识别能力,BP具有输入输出和隐藏层,不用先确定输入输出层的关系,可以通过训练和机器学习,进行预期输出,是误差反传的梯度搜索,就像人的神经元一样,BP网络里面的神经元称为隐单元。BP网络现在主要用于四个方面,用输入输出通过学习和训练、转换无限逼近一个函数、或者将输入输出进行连接的模式识别、已经将输入变量通过训练或者谋者算法进行分类,[7]以及进行降维使得数据容易传输和储存。BP网络是用反向和正向进行反复训练计算,主要是反向传播,在这个过程中不断收集误差,在将这些误差返回给输出值,并用误差调整权重,从而模拟出一个BP神经网络模型,Rumelhart和Mcclelland为首的科学家提出。BP神经网络现如今已经比较成熟,具有非常强非线性映射能力和灵活的网络结构,神经元的个数,网络层数都是较为自由,可以根据具体情况进行选择,随着结构的选取的不同,功能也是有相应的变化。BP网络也存在一些缺点,机器学习速度较慢,即便研究的目标数据不杂乱,也学要成千次的学习才能够进行收敛,而且容易导致局部极小值,出现极端值,其次神经元的个数和网络层数较为自由,没有理论表示哪一种取值范围或者数据特征出现神经元数量的选取,所以需要自己摸索,网络推广能力也是非常有限,随着时代的发展,虽然解决了一些问题,但是还是容易现如极端值并导致收敛速度变得很慢。[8]第3章主成分分析方法在股票预测上的应用主成分分析是一种常用的统计方法,将可能具有相关性的数据进行正交变化成彼此不存在线性相关性的数据,形成的数据成为主成分。[9]主成分是统计中用于多元统计的方法,通过较少的成分即主成分来尽可能多的表达更多成分所代表的数据信息,并且尽可能的保留原始数据的信息,主成分分析主要用于降维,通过降维才能将多种成分降维成较少的成分。本论文主要对海航创新数据进行PCA算法降维,通过对股票价格的收盘价、成交量和成交额进行正交变化得到具体的相关系数,从而进行分析。3.1主成分分析主成分分析已经广泛运用于数据的统计运算,可以进行高位数据集的挖掘和可视化,也可以用于数据压缩和预处理。[10]将线性相关的变量转换成线性无关的低维度的保留较多原始信息的变量。在进行主成分分析中需要先了解关于PCA的几个相关术语,方差、协方差、协方差矩阵以及特征向量和特征值。方差是用各个样本与其均值之差的平方和的均值,方差是用于数据离散程度的度量,公式为:S2=协方差用来查看变量之间线性相关程度的计算,如果两个变量之间的协方差为0,可以看做两个变量之间线性不关,不能认为变量无关,因为还存在曲线相关,协方差矩阵是由变量之间协方差组成的矩阵形式,呈现为对称形式,公式为:CovX,Y=i=1特征向量是用来描述数据结构的非零向量。本论文利用海航创新股票数据进行PCA,首先加载包,解决了中文显示问题并且指定默认字体,解决保存图像的问题,之后对数据进行读取,如下图所示:表3-1海航创新用于PCA的部分数据收盘成交量成交额02.235.0401119.7812.222.700598.0722.2814.1703163.5232.249.4302123.2042.3421.1304885.1352.3411.9502779.7162.319.2112132.1372.317.7601782.6782.4445.63011200.0092.3323.2405446.83102.4328.3906847.64112.3715.2203628.91122.3810.2002614.62经过标准化归一化处理数据之后,具体处理过程是通过获得相关系数矩阵,也就是归一化后的协方差矩阵XXTXi得出结果如下表所示:表3-2海航创新用于PCA的协方差矩阵收盘成交量(万)成交额(万)收盘1.0000000.3773780.547320成交量(万)0.3773781.0000000.530589成交额(万)0.5473200.5305891.0000000对协方差矩阵XXT特征值和特征向量,先对特征值进行分解,进行特征值排序,获得累积贡献度再合并到特征向量中,[11]表3-3海航创新用于PCA的特征值和特征向量Eig_valueEig_cum01201.9739340.657978-0.560638-0.553008-0.61633410.6229780.865637-0.6849770.727944-0.03007120.4030881.000000-0.465286-0.4053150.786911之后进行主成分的提取工作,假设要求累积贡献度要达到70%则取两个主成分,从而得到因子载荷矩阵,如下图所示:表3-4海航创新用于PCA的因子载荷矩阵01Vars0-0.560638-0.684977收盘1-0.5530080.727944成交量(万)2-0.616334-0.030071成交额(万)通过因子载荷矩阵的进行计算得分,首先要对数据进行精度上的研究,通过累积贡献度的值可以看出前两个主成分的累积共享值以及到达72%,把此次研究的准确度定为72%。再进行主成分得分,得到标准化之后数据的因子载荷矩阵。如下图所示:表3-5海航创新用于PCA的标准化部分因子载荷矩阵0100.857842-0.47196510.953316-0.51825620.467323-0.31283030.91389-0.36807340.125717-0.23470250.440745-0.49278360.583761-0.51113070.6344630.2568788-0.912840-0.156056之后在查看变量在新坐标中的坐标,从下图可以看出,成交额对第一主成分的影响程度最大,其次成交量对第二主成分影响程度大于收盘价格对股票杰哥的的影响,其中影响程度的大小和成分系数没有关系,只看绝对值的大小,所以可以看出成交量的影响力略微大于收盘价得影响。图3-1海航创新用于PCA的主成分影响程度得到了三个变量对主成分的影响程度之后,可以观察数据在主成分中的影响程度,于是查看了每个数据在新坐标中的位置,如下图所示:图3-2海航创新用于PCA的数据在主成分中的影响程度可以由图3-6可以看出第一主成分的所有系数都是负数,而影响程度的大小和正负号没有关系,看绝对值就大小来查看影响程度,所有负向得分越高,对第一主成分的影响越大[12],从图3-7可以看出63号数据对第一主成分的影响最大,说明63号数据的成交额对股票价格预测最有帮助。对于第二组主成分可以看出,50号数据的成交量对股票数据的预测帮助最大。以上方法从PCA的原理上解释了第一主成分和第二主成分的所包含的信息过程,而现在Python已经有被封装的PCA包,可以通过调用PCA包进行运算[13],如下图所示:图3-3海航创新用于PCA图直接用于PCA算法的数据比先前的变量多,用了开盘价、收盘价、最高价格、最低价格以及成交量,通过对五个变量进行降维可以清晰地得到两个主成分的图,此种方法需要对数据是矩阵格式,[14]然后进行计算均值和方差,在进行标准化,然后经过PCA的计算协方差矩阵并求协方差矩阵的特征值和特征呢过想想,经过特征值排序得到主成分图形。3.2主成分分析预测结果和分析从以上的实验可以通过主成分分析看出变量对于主成分的影响程度,比如成交额和成交量分别对第一主成分和第二主成分的影响较大,可以认为在进行股票预测的时候,成交额和成交量是对进行股票价格预测趋势的关键,之后对不同诗句进行观察其对第一主成分和第二主成分的影响发现63号数据的成交额对第一主成分的影响较大,在进行股票预测时,可以看63号数据成交额的大小,来看股该股价格是否适合购买,之后发展趋势向上发展,也可以看出50号数据的交易量对第二主成分的影响较大,可以观察该成交量的大小,如成交量的较大,可以进行购买,但是该数据采用的是以往数据进行研究,虽然可以看出交易额和交易量对股票价格的影响较大,但是不能简单的认为没有其他影响,在现实生活中,股票价格的影响繁多,从宏观到微观,从国家政策到个人喜好,都对股票中交易量和交易额的大小存在影响,如果要准确地预测股票的交易额和交易量的趋势,需要更加精确的分析,所以看出主成分分析并不是足够精确,也同样存在一些问题,但是亦可以对股票的成交额和成交量进行人为主观上的分析,可以给认为是否进行购买提供一定的基础。第4章时间序列方法在股票预测上的应用在进行数据预测中,时间序列分析已经相当成熟,将数据按照时间的先后顺序进行某一特征的排列,研究自身规律进行趋势预测的一种方法。指数平滑法也是时间序列进行预测的重要方法之一。在股票价格预测中,指数平滑法也得到了充分的广泛实践,此技术已经足够成熟。[15]时间序列指数平滑法根据参数的不同可以分为,单参数指数平滑预测、双参数指数平滑预测和三参数指数平滑预测三种方法。指数平滑通过加权移动平均,不仅可以对时间序列进行预测还可以描述时间序列的变化趋势等,用时间序列以往的数据进行加权平均来作为未来的预测值,靠近现在的时刻的权值越大,通过对权值的调整来建立适合的模型。4.1单参数指数平滑预测单参数时间序列分析方法一般用于不包含长期趋势和季节变动的平稳时间序列的预测,经常应用于直线型数据。[16]对于指数平滑预测来说,选择合适的平滑系数是提高预测准度的关键,根据经验,一般选择0.1-0.3的平滑系数较好,除此之外还需要根据时间序列的波动来判断,如果序列的波动比较小,就可以选择较小的平滑系数,反之,选择较大的平滑系数。在选择完平滑系数之后,根据计算所得到的预测误差的大小来综合判断合适的平滑系数。单参数指数平滑模型:St(1)=α其中St(1)表示第t期的指数平滑值,St−1本论文通过对海航创新的股票数据,从2019年12月10日到2020年3月4日的收盘价进行单参数时间平滑预测,将55个数据分成两组,第一组27个数据,第二组27个数据,最后一个进行结果比对,选择这个数据的原因是,第二组数据呈现平稳分布,较为稳定,但是也存在一定的波动,可以用单参数指数平滑进行比对。表4-1海航创新2019年12月10日~2020年3月4日收盘价时间收盘价时间收盘价时间收盘价2019/12/102.232019/12/232.332020/1/62.362019/12/112.222019/12/242.432020/1/72.42019/12/122.282019/12/252.372020/1/82.342019/12/132.242019/12/262.382020/1/92.362019/12/162.342019/12/272.342020/1/102.392019/12/172.342019/12/302.332020/1/132.362019/12/182.312019/12/312.312020/1/142.352019/12/192.312020/1/22.342020/1/152.332019/12/202.442020/1/32.352020/1/162.282020/1/172.272020/2/171.792020/2/282.42020/2/51.692020/2/181.832020/3/22.562020/2/61.692020/2/191.852020/3/32.632020/2/71.72020/2/202.042020/3/42.542020/2/101.752020/2/212.242020/3/52.512020/2/111.752020/2/242.122020/3/62.442020/2/121.792020/2/252.332020/3/92.342020/2/131.742020/2/262.562020/3/102.352020/2/141.742020/2/272.62020/3/112.592020/3/122.852020/3/133.14通过遍历的方式将数据存在数组中,两组数据共两行,建立一个空数组作为临时储存地,每次换行被清空,在通过均方误差的大小来选择最优的α。先对两组数据进行散点图标记。图4-1海航创新2019年12月10日~2020年1月16日收盘价图4-2海航创新2020年1月17日~2020年3月16日收盘价根据散点图可以看出,第一组数据波动较大,而第二组趋于较稳定的上升。根据经验法则选取α,由于第一组数据波动较大,不适合用单参数指数平滑法,第二组数据波动不大,但是呈现向上趋势,选取平滑指数α要选择0.6到1之间,由于第一组数据不适合该方法,便不对第一组数据进行分析,第二组数据的均方误差为0.165634,预测值随α的增大不断增大,一般选择0.6以上,下表写出不同平滑系数对应的预测值。表4-2海航创新2019年12月10日~2020年3月16日α及预测值第一组α预测值第二组α预测值0.120.11.20.220.21.40.320.31.60.420.41.80.520.520.620.62.20.720.72.40.820.82.60.920.92.8根据上表数据,可以看出,将平滑系数选择较大,得到的预测值和实际值依旧偏差较大。这是因为海航创新的数据无论是第一组还是第二组都不是平稳数据,第一组波动很大,而在第二组,可以明显看出向上的趋势,所以单参数平滑不适合用于波动较大的股票数据预测中。4.2双参数指数平滑预测通过单参数指数平滑预测的结果表现,单参数指数平滑对波动较大或者有明显向上向下趋势的序列预测误差较大,只有对平稳数据进行预测才能得到准确的数值,而双参数指数平滑相对于单参数指数平滑而言,弥补了一些缺陷,例如对于波动较大的数据,可以进行更好的预测,是为具有线性趋势的数据所进行的。双参数指数平滑是基于数据进行单参数指数平滑的基础上再进行一次指数平滑。[7]适用于只包含长期趋势的非平稳时间序列预测的。双参数指数平滑模型:St(1)St(2)用来预测未来T期的xtfx=xt+TAT=2BT通过设定不同的指数平滑系数,如下表所示:表4-3海航创新2019年12月10日~2020年3月16日α及预测值第一组α预测值均方误差第二组α预测值均方误差0.12.339562300.12.7789880.13353890.22.299625300.22.9045870.09799070.32.274607700.33.0135940.08281730.42.258587500.43.13876720.07407410.52.224930300.53.24719460.06415010.62.245261800.63.32656010.05237830.72.245107100.73.37793650.05237830.82.247864600.83.40743310.03703710.92.2529334700.93.42242710根据图一可以看出第一组数据是非平稳数,但是不是只具有长期趋势,可以从上表中看出,均方误差接近于0,而第二种趋势可以看出有向上的长期趋势,所以第二组数据提供的信息较为准确一些,可以看出当平滑指数选择0.9时,均方误差已经接近于0,此时对与双参数指数平滑可以采用平滑指数为0.9进行计算,根据2020年3月16日提供的数据可以知道当日的收盘价为3.45,与预测值十分接近,而第一组数据选取同样的平滑系数0.9,真实值为2.35,相差不大,此时可以用平滑系数进行预测多期。根据预测可以得出后6期数据:表4-4海航创新2019年12月10日~2020年3月16日后五期期预测数据第一组时间实际值预测值第二组时间实际值预测值2020/1/202.352.25292020/3/163.453.42242020/1/212.292.23622020/3/173.123.7053由上表数据可以看出,第一组数据的预测值贴近真实值,表明第一组数据具有长期趋势,而第二组数据预测值也接近真实值,相比起单参数指数平滑,双参数指数平滑在预测波动较大或者具有向上向下趋势的序列上,精准度大大提升。4.3三参数指数平滑预测三参数指数平滑针对具有长期趋势和季节变动的非平稳数据预测而言的,具有三个平滑系数,可以看作对双参数指数平滑的基础上,在进行一次指数平滑。[8]三参数指数平滑模型:StStSt预测未来T期的值:xt+TAT=BT=αCT通过设定不同的指数平滑系数,如下表所示:表4-5海航创新2019年12月10日~2020年3月16日α及预测值第一组α预测值均方误差第二组α预测值均方误差0.1-1.257300.1-0.55810.16560.2-5.060200.2-4.94080.11710.3-8.990100.3-9.47680三参数指数平滑的预估值为负数,虽然均方误差较小,但是不符合实际,故可以认为,三参数指数平滑不适合该数据的运算,根据实验可以看出,进行预测的时候,三参数指数平滑不一定优于双参数指数平滑,只有在具有曲率的时候及长期趋势和季节变动的非平稳序列中,三参数指数平滑才具有研究的意义。4.4时间序列预测结果和分析根据以上三个实验可以看出,在进行预测的时候,对于不同的数据趋势需要选定不同的参数个数进行预测,对于海航创新数据而言,具有长期趋势,相比较的情况下,最适合用于双参数指数平滑预测法,对于单参数指数平滑而言,数据不是平稳序列,第一组数据波动很大,第二组数据呈现向上趋势,均不适合单参数指数平滑,对于三参数指数平滑[17],由于序列不是对曲率地方进行预测,数据预测结果意义不大,相比较而言双参数指数平滑的均方误差较小,且预测值和真实值较为接近,但是时间序列分析仅是根据时间数据进行分析的,对于外界因素的变动没有办法进行分析,对于较长时间的预测而言,外界因素的影响导致了数据预测准确性降低,使预测和实际严重不和或者偏差较大,例如在双参数指数平滑第二组数据,数据长时间呈现向上趋势,但是由于疫情等政策的影响,会导致股票价格下降,这些外界因素不能代入计算,指数平滑只是根据以往数据进行预测,这也导致了在预测过程中,容易造成较大的偏差第5章BP神经网络在股票预测上的应用BP算法是近些年较为流行的数据挖掘算法之一,是由输入层、隐含层和输出层组成,隐含层的层数和神经元的个数是由人为决定的,通常情况下,输入层的神经元个数可以根据特征值来决定,而输出层的层数是由变量的个数所决定的。每个神经元都是对数据的一次处理,[18]BP神经网络是利用逆向传播训练数据的神经网络,也是近几年神经网络中运用最广泛的一种,通过函数映射以及模式分类,利用误差平方的函数,进行梯度下降来计算数据。[9]BP算法主要是向前传播和反向传播通常运用于函数逼近、模式识别、分类和数据压缩中,也常用语预测数据,神经网络是非线性分析,虽然算法本身具有一定的局限性,但是具有自组织、自适应和容错性等优点,适用于处理股票价格预测等具有诸多因素影响的非线性序列的预测中。本论文采用来"海航创新","岭南控股","ST云网","西安饮食","华天酒店","张家界","腾邦国际","众信旅游",曲江文旅这九个股票从2019年12月18日到2020年3月19日的数据进行BP算法,通过前八个股票进行近期众信旅游股票价格的预测。5.1BP神经网络BP网络中,通过找到合适的权值和阈值,使得E进行目标训练,再利用Sigmoid函数进行隐含层和输出层的对应函数。[19]在输入层中,Xi输入信号,Xd是隐层中的的阈值是通过Sigmoid中分离得到的,对通过对应的函数进行对应信号神经元输入权值,隐层获得权值之后再对输出层进行对应神经元的权值输出。BP的反向传播主要利用最小二乘法的方式进行回归计算。最小二乘法公式:E=对于所用的数据,每一列都是一组训练集,用于一个输入层进行计算,本论文采用了九个训练集,行数代表输入层的神经元个数,用于采用了59行的数据,所以还有59个输入层神经元,通过三层的BP网络,其中隐层可以有一层,也可以多多层,网络选用Sigmoid传递函数,在通过误差E反向传递不断地通过训练调整权值和阈值使误差E达到极小值。[20]Sigmoid传递函数公式:fx误差公式:E=该模型由每组数据的海航创新","岭南控股","ST云网","西安饮食","华天酒店","张家界","腾邦国际","众信旅游”,为输入,以曲江文旅股票收盘价格为输出,所以输入层的节点数为8,输出层的节点数为1.。本论文利用了海航创新,"岭南控股","ST云网","西安饮食","华天酒店","张家界","腾邦国际","众信旅游”,曲江文旅九个股票数据进行BP算法,找出九个股票之间的关联,进行数据的训练,最后对众信旅游数据进行预测数据格式如下:表5-1BP算法数据海航创新岭南控股ST云网西安饮食华天酒店张家界腾邦国际众信旅行曲江文旅2.317.422.494.122.615.155.335.68.652.317.492.544.122.635.225.56.168.72.447.482.544.062.65.165.3268.662.337.272.573.952.565.085.16.048.462.437.342.613.992.65.175.166.218.55……2.856.382.34.13.094.944.386.2783.146.312.324.113.354.944.186.218.163.456.22.334.523.34.93.935.598.393.126.112.454.213.034.83.855.318.552.816.032.574.633.054.83.65.258.92.536.072.75.093.144.943.635.35——进行2020年3月19日的数据预测,通过至18日的九个股票数据进行训练,通过privite_data=np.array([2.53,6.07,2.7,5.09,3.14,4.94,3.63,5.35])将19日数据预测出来,如下图所示:图5-12020年3月19日预测结果可以用此方法对后十期数据进行预测,然后通过对比真实值和预测值来观察BP算法进行股票预测的准确度,将3月6日之前的九个股票的收盘价格进行续训练,每得到一个预测值之后,添加3月6日的九个数据真实值加入训练,之后得到3月9日的预测值,以此类推,从而得到3月6日至3月19日的预测值,然后将预测值和真实值的数据进行对比,如下表所示:表5-2曲江文旅预测结果比对时间真实值预测值2020年3月6日7.897.6462548969715162020年3月9日7.657.5856211797359732020年3月10日7.847.9982148974939352020年3月11日88.1348367057243322020年3月12日8.168.2431509716458772020年3月13日8.398.349362678908722020年3月17日8.558.5853236572996472020年3月18日8.98.2871742592945222020年3月19日8.438.57037899323225图5-2曲江文旅预测结果比对直线图由曲线图可以看出根据另外八个股票预测额曲江文旅的股票数据与真实值相近,可以看出BP神经算法的准确性较高。这是因为,在机器学习的过程中,信号从输入层输入,进过隐藏层处理之后传递给输出层,此时进行输出层预期值和实际值的对比,如果对比较大,进行误差的反向传播,将信号传入隐藏层处理反向传递给输入层,从而获得每一个层的误差信号,再通过权值的修改,直到输出层的预测值和实际值较为接近为止。在传递过程中,只用的是单极性的sigmoid函数进行梯度下降法,可以求得目标函数的极小值,得到最小均方误差。[21]5.2BP神经网络预测结果和分析由实验中得到数据所做的折线图可以看出,预测数据和真实数据之间的拟合程度较强,比较贴近,BP神经算法具有自适应性,可以通过训练数据,得到数据之间的关联,在数据中,通过九个股票之间的联系,可以得到人脑不能总结出的信息,再通过正向传播和反向传播,使预测数据不断接近真实数据,实际上,BP神经算法已经广泛用于类似股票预测的领域当中,因为股票预测具有不确定性,受外界干扰较多,影响因素也繁多,但是根据机器学习,可以通过成百上千次的学习,得到最符合现实的数据。神经网络是近代以来得到广泛应用的数据挖掘方法之一,本模型没有对一个股票的常用技术指标进行详细分析,而是采用九个股票之间的联系,得到曲江文旅股票收盘价格的预测,根据实验结果,虽然BP网络的预测结果比较好,但是影响股票的因素很多,如果只根据这一网络进行预测,可以不能及时了解到股票的走向,因为每一天的数据都是新加上去的,但是在选取股票是否进行购买的时候,并不是根据一天数据就能确定是否购买,而该模型不能对长期进行预测,由于里面的权值和阈值都是在变化的,所以的预测值也是不断在变化,只能在大概范围内确定该股票的购买是否可行,却不能看出能否长期盈利,比如该模型进行预测值,得到预测值在7.5-8.5上下浮动,可以看出近期的股票收盘价格已经高于8.5,而得到的预测结果虽然随着权值和阈值不断变化,但是预测值却低于8.5,购买的意义不大,基本可以看出现在的收盘价在较高价格,如果现在进行购买容易导致亏损。第6章三种算法比较6.1三种算法比较通过本论文的三个模型进行股票预测。首先利用了主成分分析对海航创新的收盘价、交易额和交易量等进行研究发现交易额和交易量股票趋势的主要成分,交易额对第一主成分影响较大,而交易量略大于收盘价对第二主成分的影响,根据主成分进行分析,以为主成分是通过对数据变量进行降维,用最少的成分代表尽可能多的原始数据,所以可以粗略的根据股票的交易额和交易量继续主观上的分析来确定是否购买该股票,以及该股票购买的盈利可能性高低,如果交易额和交易量近期的数量都较多,则可以购买该股票。除此之外,本论文还对开盘价、收盘价、最高价格、最低价格以及成交量也进行了一次主成分分析,可以清晰地看见有两个主成分,所以也可以从成交量和收盘价来观察股票的购买盈利性有多大,但是根据主成分分析的飞一个实验,可以看出交易额和交易量对主成分的影响比较大一些。第二个实验是对海航创新股票进行时间序列指数平滑法,通过参数的个数不同,分为了单参数指数平滑法、双参数指数平滑法和三参数指数平滑法三种类型,将数据分为了两段,第一组数据波动较大,第二组数据呈现明显向上趋势,通过单参数指数平滑发现无论第一组还是第二组数据得到的预测值都不是很理性,虽然MSE的值都比较小,但是预测值和真实值之间偏差较大,这是因为单参数指数平滑适合平稳数据,而第一组和第二组的数据都是非平稳时间序列,所以不适应,之后我又进行双参数指数平滑,而双参数指数平滑通常适用于只含有长期趋势的指数平滑法,通过对第一组数据和第二组数据进行研究发现第一组数据和第二组数据的MSE都非常小,而第一组数据的MES接近于0,是由于存在长期趋势,但是波动较大,还可能存在其他趋势,而第二组数据的MES也较小,从预测结果来看两组数据的预测比较准确,之后我又对数据进行三参数指数平滑法,我发现两组数据的拟合程度不好,出现了复数,严重与现实不合,因为三参数指数平滑法一般用于含有季节变动和长期趋势的非平稳时间序列,而三参数指数平滑一般用于曲率的地方,所以不适合该数据。时间序列平滑法是根据以往数据通过加权平均的方法进行计算,但是股票是存在许多影响因素,光凭以往数据不能及时的反应股票趋势的变化,只适合用于波动不大,具有明显规律的序列。[21]第三个实验是利用BP算法对"海航创新","岭南控股","ST云网","西安饮食","华天酒店","张家界","腾邦国际","众信旅游",曲江文旅九个股票进行训练得到之间的关联,然后通过"海航创新","岭南控股","ST云网","西安饮食","华天酒店","张家界","腾邦国际","众信旅游",对曲江文旅股票的收盘价格进行预测,通过实验得到了九组预测数据,然后通过和真实数据的对比,发现预测结果比较精确,因为BP算法具有自适应,自学习等能力,由于在算法中权值和阈值是通过不断地调整,所以得到的预测值每次都有一定的变化,但是可以看出整体的趋势,例如预测的过程中,得到的预测值小于8.5,但是最近一次数据显示的真实值大于8.5,则认为该股票的股票价格处于较高峰值,该股票不建议购买,总体而言,BP算法的预测结果比较好,比较适合像股票预测具有多因素影响的数据预测中,但是股票预测中依旧有许多因素影响,有些突发因素无法通过学习调整权值和阈值来做出及时反映,所以光靠这模型来进行预测是远远不够的。总结大数据时代已经到来,人工智能、数据挖掘这些词汇已经耳熟能详,数据的价值也在不断的提高,数据的积累也在不断增加,过去通过图表形式展现和分析已经不能跟上时代的步伐,为什么数据挖掘技术崛起,因为可以从海量的数据中提炼出人脑不能分析和感知出来的联系,著名的案例,啤酒和尿布,看似没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论