一种结合新闻文本的股票智能预测方法与流程

文档序号:16252922发布日期:2018-12-12 00:11阅读:494来源:国知局
一种结合新闻文本的股票智能预测方法与流程

本发明属于数据处理技术领域,具体涉及一种结合新闻文本的股票智能预测方法。

背景技术

金融市场,尤其是股票市场,既和历史行情息息相关,同时也极其容易受到突发金融新闻事件的影响。目前常用预测方法为将股市的预测问题建模为机器学习中的回归或者分类问题。现有技术包括:构建预测系统,将股票的预测问题简化为分类问题,通过分析影响股票行情的新闻文本的一些特征分布进行判断;利用多核的机器学习模型来对股票进行回归预测。然而,现有的大多数方法常常依靠专家来选取特征。但是,单纯的依靠人工从大量复杂的股票数据和新闻文本中发现和挖掘特征表示是十分困难的。而对于机器学习的分类任务和其他一些任务来说,如果不能用向量对数据集进行较好的特征向量表示,则会极大的影响分类器的预测精度。

深度学习特征表示(deeplearnedrepresentation,dlr)包含一个多层的神经网络,具有利用多层的网络结构从样本中抽象出其特征表示的能力,这种抽取特征表示的能力是完全无监督的。在dlr的每一层都可以采用非线性但较为简单的激活函数,将输入的特征表示向量转化成为更加抽象的特征表示向量。因此,经过多层神经网络抽象之后的特征表示可以为将来的分类任务提供一个良好的样本输入量。

深度学习在金融领域中的应用包括:构建投资组合决策的模型系统,利用自编码器(auto-encoder)来进行投资组合,在深度学习的多层网络结构之上通过分类器判定哪只股票将会在今后的股市中表现抢眼;利用深度学习的多层神经网络对股市进行分析和预测。但是现有的股票预测方法,通常是将影响股票走势的新闻事件和历史行情数据分开考虑,并且在处理数据时不能进行很好的特征表示,一定程度上限制了股票预测准确度。



技术实现要素:

为解决上述问题,本发明提出一种结合新闻文本的股票智能预测方法,实现新闻事件和历史行情数据的结合,解决股票预测准确度低的技术问题。

本发明采用如下技术方案,一种结合新闻文本的股票智能预测方法,具体步骤如下:

1)对新闻文本进行预处理,过滤中文分词和停用词,删除没有时间标签的新闻文本;

2)确定股票的预测时长δt,根据新闻文本的时间标签过滤选择新闻文本;

3)对过滤选择的新闻文本进行特征表示,并和对应时刻的股票数据特征向量组成对应时刻的特征表示向量

4)构建自编码器深度学习网络,将步骤3)得到的特征表示向量输入自编码器深度学习网络进行压缩和特征提取,得到低维特征表示向量

5)构建elm神经网络模型,对股价的变化程度进行定量表示,确定elm神经网络模型的目标输出值;

6)根据步骤5)所确定的目标输出值,并将步骤4)得到的低维特征表示向量作为elm神经网络模型的输入,优化elm神经网络模型参数,得到最终的预测模型。

优选地,所述步骤2)中根据新闻文本的时间标签过滤选择新闻文本,具体步骤为:

21)确定股票预测时长δt;

22)股票拥有的数据处于[ts,te]时间段内,从ts开始,t0∈[ts,te-δt]过滤选择距离t0+δt时刻最近的新闻文本作为t0时刻的新闻文本,遍历[ts,te-δt]时间段后得到全部新闻文本。

优选地,所述步骤3)中组成对应时刻的特征表示向量具体步骤为:

31)对新闻文本进行词频-逆向文件频率(termfrequency-inversedocumentfrequency,tf-idf)计算,得到t0时刻的新闻文本词语的tf-idf值作为t0时刻的新闻文本的特征表示,所有新闻文本共包含n个不同的词语,则t0时刻新闻文本特征表示为[w1,w2,...,wn],其中w1、w2、wn分别代表第一个词语、第二个词语和第n个词语的tf-idf值;

32)根据具体股票数据选取所需指标组成股票数据的特征向量,指标包括开盘价、收盘价、成交量和最高价,某支股票包括m个指标,则t0时刻的股票数据特征向量为[q1,q2,...,qm],其中q1,q2,qm分别表示第一个指标、第二个指标和第m个指标在t0时刻的具体值;

33)将步骤31)和步骤32)得到的特征进行组合,得到对应时刻的新闻文本和股票数据结合之后的特征表示向量:

优选地,所述步骤4)中得到低维特征表示向量的具体为:

每一层神经网络都是自编码器,根据步骤3)得到的特征表示向量的维度设置特征表示向量的压缩比,压缩比等于深度神经网络中第一层神经元和最后一层神经元的个数之比,第一层神经元的个数即为步骤3)得到的特征表示向量的维度,最后一层神经元的个数即最终的低维特征表示向量的维度;确定深度学习网络的层数和每一层所包含的神经元的个数,设置从第一层到最后一层神经元的个数线性递减。

优选地,所述步骤5)中确定elm神经网络模型的目标输出值具体为:elm神经网络模型的输入为t0时刻的低维特征表示向量目标输出值为t0+δt时刻的目标输出yi:

其中,r(x)是比较函数,反映t0+δt时刻相对于t0时刻的变化程度,θ是根据股票实际情况设置的阈值,当股票在t0+δt时刻的上涨程度大于阈值θ时,则目标输出yi为+1,当下降程度大于阈值θ时,目标输出yi为-1,当变化程度小于阈值θ时,股票走势保持平稳,则目标输出yi为0。

优选地,所述步骤6)中得到最终的预测模型具体步骤为:

61)根据股票的预测时长δt,将需要预测的股票的历史行情数据和新闻文本进行切分,并标记形成样本集如下所示:

{(x1,y1),(x2,y2),...,(xl,yl)}

样本集包含l个样本,其中,xi为输入值,表示ti时刻通过步骤4)所得到的低维特征表示向量yi为输出值,表示通过步骤5)所得到的ti+δt时刻的目标输出值;

62)将样本集分为训练样本集和测试样本集,利用训练样本集对普通的elm和核函数的kelm的神经网络进行训练,利用测试样本集对两种elm进行交叉验证,确定最终的预测模型。

发明所达到的有益效果:本发明是一种结合新闻文本的股票智能预测方法,实现新闻事件和历史行情数据的结合,解决股票预测准确度低的技术问题。

对于分类模型来说,超限学习机(extremelearningmachine,elm)模型能够达到较高的准确率,可以用来对大量的数据样本进行分析。超限学习机网络层之间的权重和偏置可以随机赋予初始值,避免对模型内部所有的参数进行调优。本发明将影响股票价格的历史的行情和突发的新闻事件结合形成特征表示向量,利用dlr对其进行特征表示,并将股市预测问题转化为一个分类问题,用超限学习机进行分类预测,显著提高短期股票预测的准确率。

附图说明

图1是本发明实施例中筛选新闻文本的流程图;

图2是本发明的新闻文本筛选示意图;

图3是本发明的阈值θ和预测准确率acc的关系图;

图4是本发明的模型训练流程图。

具体实施方式

下面根据附图并结合实施例对本发明的技术方案作进一步阐述。

一种结合新闻文本的股票智能预测方法,包括以下步骤:

1)如图1所示,对新闻文本进行预处理,过滤中文分词和停用词,将新闻文本转换为方便计算机识别的数据格式,删除没有时间标签的新闻文本;

常见的文本处理软件jieba或nltk(naturallanguagetoolkit)均可实现过滤中文分词、停用词等预处理;

2)确定股票的预测时长δt,根据新闻文本的时间标签过滤选择新闻文本;

21)确定股票预测时长δt;

22)股票拥有的数据处于[ts,te]时间段内,从ts开始,t0∈[ts,te-δt],过滤选择距离t0+δt时刻最近的新闻文本作为t0时刻的新闻文本,遍历[ts,te-δt]时间段后得到全部新闻文本;

如图2所示,其中t0即为当前时刻,tδ即为t0+δt时刻,当这段时间内只有一个新闻文本时,则选择该新闻文本作为t0时刻的新闻文本,当这段时间内有多条新闻文本时,则选择距离t0+δt时刻最近的新闻文本作为t0时刻的新闻文本。

以t0时刻的股票数据和距离t0+δt时刻最近的新闻文本相对应作为输入的原始数据,而t0+δt时刻所需预测的股价作为输出的参考数据。

3)对过滤选择的新闻文本进行特征表示,并和对应时刻的股票数据特征向量组成对应时刻的特征表示向量;

31)对新闻文本进行tf-idf计算,得到t0时刻的新闻文本词语的tf-idf值作为t0时刻的新闻文本的特征表示,所有新闻文本共包含n个不同的词语{word1,word2,…wordn},其中word1,word2,wordn分别代表第一个词语、第二个词语和第n个词语,则对应时刻t0新闻文本特征表示为一个n维的向量[w1,w2,...,wn],其中w1、w2、wn分别代表第一个词语、第二个词语和第n个词语的tf-idf值,即:

wn=tf-idf(wordn)

32)根据具体股票数据选取所需指标组成股票数据的特征向量,指标包括开盘价、收盘价、成交量和最高价,某支股票包括m个指标,则t0时刻的股票数据特征向量为[q1,q2,...,qm],其中q1,q2,qm分别表示第一个指标、第二个指标和第m个指标在t0时刻的具体值;

33)将步骤31)和步骤32)得到的特征进行组合,得到对应时刻t0的新闻文本和股票数据结合之后的特征表示向量:

4)构建自编码器深度学习网络,将步骤3)得到的特征表示向量输入自编码器深度学习网络进行压缩和特征提取,得到低维特征表示向量;

每一层神经网络都是自编码器,根据步骤3)得到的特征表示向量的维度设置特征表示向量的压缩比,压缩比等于深度神经网络中第一层神经元和最后一层神经元的个数之比,第一层神经元的个数即为步骤3)得到的特征表示向量的维度,最后一层神经元的个数即最终的低维特征表示向量的维度;确定深度学习网络的层数和每一层所包含的神经元的个数,设置从第一层到最后一层神经元的个数线性递减。

经过多层神经网络输出的特征表示向量和原始的输入的相比,除了维度减少以外,更能抽象出新闻文本和历史股票数据结合之后的特征。

需要说明的是,现有技术中有许多开源工具可以搭建深度学习网络,如sklearn(scikitlearn)、keras和matlab中的深度学习工具箱(deep-learning-toolbox),以deep-learning-toolbox为例,选取其中的神经网络模块(neuralnetwork,nn)模块,设置模块中的参数即网络的层数和每层神经元的个数,搭建深度学习网络。本实施例中设置网络的层数为10,第一层神经元个数为1011,最后一层神经元个数为860,从第一层到最后一层神经元个数服从线性递减数列。

5)构建elm神经网络模型,对股价的变化程度进行定量表示,确定elm神经网络模型的目标输出值;

elm神经网络模型的输入为步骤4)得到的t0时刻的低维特征表示向量目标输出值为t0+δt时刻的目标输出yi:

其中,r(x)是比较函数,本实施例中为t0+δt时刻股票价格减去t0时刻股票价格,反映t0+δt时刻股票相对于t0时刻股票的变化程度,θ是根据股票实际情况设置的阈值,当股票在t0+δt时刻的上涨程度大于阈值θ时,股票会上升,则目标输出yi为+1;当下降程度大于阈值θ时,股票会下降,目标输出yi为-1,当变化程度小于阈值θ时,股票走势保持平稳,则目标输出yi为0。

在金融领域,股票的变化情况服从正太分布,且具有肥尾效应(fattail),上述三种情况发生的概率用以下公式表示:

其中pdfgaussian(x)表示股票价格的高斯分布概率密度函数,p-1,p0和p+1分别表示股票下降、保持平稳或是上升的概率。由以上公式可知,阈值θ直接决定了三种情况的概率,对于没有任何先验知识的时间序列,根据假设时间序列所服从的概率分布对未来情况进行预测,预测准确率和概率分布的关系如下公式所示:

同时根据θ和-θ关于0对称得到:

p-1=p+1

p0=1-2p+1

结合上述公式,最终可得:

acc=6p2-4p+1

p=p-1=p+1,阈值θ和预测准确率acc的关系如图3。

从图3可以看出,accuracy为预测准确率acc,随阈值θ的变化图像类似一个倒置的正弦函数的曲线,预测准确率acc最低点在p=1/3处取得,此时阈值θ约为0.4,在预测准确率acc最低点右侧预测准确率acc随着阈值θ的升高而升高,但是当θ很大时,大多数的股价变化都被预测为保持不变,则股票预测没有意义,在预测准确率acc最低点左侧准确率随着θ的升高而降低,所以θ越小预测准确率越高,但是θ不能低于股市的每笔交易费,否则不能体现股市的波动,因此θ的合理取值范围应该是等于或略大于股市的平均每笔交易费,以香港股市为例,θ取股市交易的平均每笔交易费0.003(30bps,bps表示每股净资产)。

6)根据步骤5)所确定的目标输出值,并将步骤4)得到的低维特征表示向量作为输入,优化elm神经网络模型参数,得到最终的预测模型。

61)根据股票的预测时长δt,将需要预测的股票的历史行情数据和新闻文本进行切分,并标记形成样本集如下所示:

{(x1,y1),(x2,y2),...,(xl,yl)}

样本集包含l个样本,其中,xi为输入值,表示ti时刻通过步骤4)所得到的低维特征表示向量yi为输出值,表示通过步骤5)所得到的ti+δt时刻的目标输出值。

62)如图4所示,将样本集分为训练样本集和测试样本集,利用训练样本集对基础的elm和核函数的kelm的神经网络进行训练,将训练样本集的输入值输入神经网络,得到神经网络的输出,同时和训练样本集的目标输出值进行误差计算,得到网络的误差,将误差反向传播,更新每层神经元的权值,循环迭代所有的训练样本集,直到误差收敛到一定范围。对于elm来说,还需选取两个参数。以rbf径向基核函数为例,径向基核函数需要设置两个参数γ和c,γ的范围设置为{2-17,2-16,...,22},c的范围设置为{2-5,2-4,...,214},通过开源软件在训练样本集上通过交叉检验的方式选取这两个参数的最优值。

利用测试样本集对基础的elm和核函数的kelm的神经网络进行交叉验证,确定最终的预测模型。

利用本发明的方法对未来股票的变化趋势进行预测,以2001年33支香港的股票作为测试,和只考虑新闻文本或者只考虑股票数据的elm神经网络预测结果进行对比,在5分钟-30分钟的预测期内,准确率均上升了0.02,而和考虑新闻文本和股票数据的主成分分析(principalcomponentanalysis,pca)特征学习方法作对比,准确率提高了0.03。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1