智能终端及其基于LSTM的股票趋势预测方法与流程

文档序号:11655102阅读:618来源:国知局
智能终端及其基于LSTM的股票趋势预测方法与流程
本申请涉及人工智能
技术领域
,具体涉及一种基于lstm(long-shorttermmemory,长短期记忆神经网络)的股票趋势预测方法,还涉及一种执行并实现该方法的智能终端。
背景技术
:股票交易市场是经济运行的晴雨表。投资者如果能够精确的把握股票市场的变化规律,不仅可以获取巨大收益,还可以规避投资风险。对于政府监管而言,既可以提前制定合理政策以引导市场健康发展,也可以对上市公司提前预警风险。因此,股票市场趋势预测一直以来都是一个涉及到国计民生的关键问题,既是投资者追求的圣杯,也是金融市场监管的难点。但是,股票市场变化涉及到政治、经济、文化等诸多方面的影响因素,目前并不存在一个完美的预测方案。股票预测一直以来都是学术界和金融界的研究热点。自从股票市场诞生以来,众多国家的科学家和专业人士先后尝试了各种方法来预测股票价格的时间序列,其中包括统计学方法,计量经济学模型,人工智能与机器学习等。现有技术中,沿用至今的分析方法大致上可以分为基本面分析法与技术分析法两大类。其中基本面分析法着手点在于国家经济政策与公司的基本面等信息,而技术分析方法则侧重利用历史数据带入数学模型或机器中来训练和演算。具体而言,基本面分析方法,是通过宏观国家经济政策、世界经济局势、企业基本盈利状态和未来行业发展前景等基本面因素来研究公司股票价格变动趋势的。常用的分析面主要包括宏观经济政策、企业基本盈利状态、行业发展前景等。但是基本面分析方法中的影响因素极难定量,并且其影响因素一般都处于一个长期的经济周期中,需要学者们实时跟踪才能真正在预测股价走向时有所帮助。技术分析法相比基本面分析来说,是量化研究价格走势方法。主要依靠的是股票的量化指标,如开盘价、收盘价和成交量等。从作用上讲,技术分析法比较注重市场本身的运行规律,其适合于对市场进行短期分析,但是难以预测价格的长远趋势。技术分析重视数量方面的变化,并通过相关因素数量上的变化研究与分析目标的相关性。技术分析依赖的理论前提主要有两个,首先是历史数据代表市场发展过程,其次是价格变动具有趋势性与自影响性。目前较为常见的技术分析方法主要分为两类:1)以arima(自回归移动平均模型,autoregressiveintegratedmovingaveragemodel)、arch模型为代表的传统时间序列分析方法;2)近年来兴起的机器学习方法。传统时间序列分析方法主要是通过将时间序列数据分解为趋势项、周期项与噪音项三个部分,从而实现预测。为了实现这个分解,往往需要平稳性、可逆性、正态分布等假设前提,对于不平稳序列还需要通过差分等手段将非平稳时间序列转换为平稳时间序列。但是,机器学习方法主要是通过海量数据的训练来最小化损失函数,从而实现拟合数据特征,实现预测未来走向的目的。此外,目前有现有方案是使用单个lstm模型进行股票预测的方法,lstm模型是循环神经网络模型的一个变种,能够解决时间序列分析中的长时依赖问题。但是,现有方法中使用单个lstm模型进行预测的缺点较多:首先,lstm模型作为一种深度学习模型,需要大量数据进行训练,而现有的模型仅使用单支股票的历史交易数据进行日线预测,数据量过小,即使是1991年就已经上市的公司,其至今的股票日线数据也仅有不到9000条,与训练lstm模型所需要的海量数据相比差距甚大;其次,单个lstm模型的训练方式实际上是在预测每个时刻向上或者向上的动量,无法实现对未来较长一段时间的预测。因而,虽然现有技术使用单个lstm模型实现了与真实曲线几乎一致的预测曲线,但是其结果具有一定的迷惑性。因为其预测曲线由对各个时刻分别预测的单一预测点组成,预测的起点使用的是上一段时间的真实历史数据,但后续预测点都是由前一个预测点的真实数据来预测。这样会导致即使每个时刻都具有较大偏差(最终结果可能会与真实曲线接近),因此现有的基于单个lstm模型的简单预测方法误差较大且实用性较低。技术实现要素:基于此,有必要针对上述lstm模型的简单预测方法误差较大且实用性较低的问题,提供一种智能终端及其基于lstm的股票趋势预测方法,能够提高对于股票趋势预测的准确度,有效地减小误差,在一定程度上把握比如多方力量影响下的股票走势。一种基于lstm的股票趋势预测方法,所述基于lstm的股票趋势预测方法包括:获取目标股票的历史数据;将所述历史数据进行数据清洗、归一化;将清洗归一化后的历史数据按照时间划分为训练数据集与测试数据集;对所述训练数据集的训练数据进行离线模型训练,以分别训练长短期记忆神经网络lstm的多个神经网络模型;获取训练数据对于训练后的多个神经网络模型输出的预测值列表,将所述预测值列表与实际的股票趋势值进行比较,计算得到多个神经网络模型作为组合模型时所占的权重值;利用测试数据集的测试数据对组合模型中的多个神经网络模型评估预测效果,根据预测效果调整所述多个神经网络模型作为组合模型时所占的权重值。一种智能终端,所述智能终端包括处理器,所述处理器用于读取并执行程序数据,可实现上述的基于lstm的股票趋势预测方法。上述基于lstm的股票趋势预测方法通过将历史数据按照时间划分为训练数据集与测试数据集,对所述训练数据集的训练数据进行离线模型训练,以分别训练lstm的多个神经网络模型,接着,获取训练数据对于训练后的多个神经网络模型输出的预测值列表,并将所述预测值列表与实际的股票趋势值进行比较,以计算得到多个神经网络模型作为组合模型时所占的权重值,最终,利用测试数据集的测试数据对组合模型中的多个神经网络模型评估预测效果,根据预测效果调整所述多个神经网络模型作为组合模型时所占的权重值。本申请通过组合模型的方式,避免单个lstm模型的简单预测方法误差较大且实用性较低的问题,并通过计算调整组合模型的权重值,进一步提高预测的准确性。本申请能够提高对于股票趋势预测的准确度,有效地减小误差,在一定程度上把握比如多方力量影响下的股票走势。附图说明图1为一实施例中基于lstm的股票趋势预测方法的流程示意图;图2为一实施例中智能终端的模块框图。具体实施方式请参阅图1,图1为一实施例中基于lstm的股票趋势预测方法的流程示意图。在图1所示实施例中,本实施例的所述基于lstm的股票趋势预测方法包括但不限于如下步骤。s100、获取目标股票的历史数据。在s100中,所述获取目标股票的历史数据,本实施例具体可以包括:获取目标股票、目标股票的同一板块、所在大盘、其他相关股票、和/或房价等相关领域数据进行融合,以综合得到所述目标股票的历史数据。进一步而言,所述以综合得到所述目标股票的历史数据,在本实施例中可以包括如下过程:根据目标股票的数据分布特点,使用接受-拒绝采样方法,选取分布相似的目标股票的同一板块、所在大盘、其他相关股票、和/或房价等相关领域数据,与目标股票的数据一并构成原始的所述历史数据。不难看出,针对现有实际情况中,股票历史交易数据过少的问题,将股票所在大盘的历史数据,以及同一板块股票的历史交易数据等等,作为股票相关历史数据,可以有效地解决存在的历史数据的数据量过少的问题。s101、将所述历史数据进行数据清洗、归一化。s102、将清洗归一化后的历史数据按照时间划分为训练数据集与测试数据集。需要说明的是,所述将清洗归一化后的历史数据按照时间划分为训练数据集与测试数据集,在本实施例可以具体包括:将所述历史数据中时间位于指定时刻之前的早期数据划分为训练数据集,将所述历史数据中时间位于指定时刻之后的晚期数据划分为测试数据集。s103、对所述训练数据集的训练数据进行离线模型训练,以分别训练长短期记忆神经网络lstm的多个神经网络模型。值得注意的是,在s103对所述训练数据集的训练数据进行离线模型训练之前,还可以包括:使用训练数据集的训练数据生成不同跨度的时间序列数据;其中,对于每个时间跨度(t0,t1,t2,...tn),使用(t0,t1,t2,...tn-1)作为输入值,使用tn-1与tn之间的差异值,将其进行离散化后,转换为独热码数据作为监督值(validation)。其中,s103中对所述训练数据集的训练数据进行离线模型训练,可以对应包括:使用不同跨度的时间序列数据中的每份时间序列数据分别训练lstm的多个神经网络模型。需要说明的是,本实施例的组合模型可以在spark(分布式内存计算)平台上的分布式训练方式。在s103中,所述对所述训练数据集的训练数据进行离线模型训练,本实施例具体可以包括:对所述训练数据集的训练数据采用基于内存计算的分布式训练方法进行训练,其中,将训练数据分发到各个节点上并将神经网络模型的初始模型参数广播给各个节点,每个节点根据当前的模型参数与一定规模的训练数据,获得当前梯度与模型参数更新量,通过汇总各个节点反馈的模型参数更新量来更新模型参数,并将更新后的模型参数广播给各个节点,依此迭代反复,以根据要求完成单个lstm神经网络模型的训练。不难看出,本实施例针对lstm模型用于回归问题上精度低问题,通过离散化手段将股票趋势预测回归问题转换为分类问题,可以有效地提高预测精度。此外,本实施例的基于内存计算的分布式训练方法进行训练,可以有效地加快训练的速度。s104、获取训练数据对于训练后的多个神经网络模型输出的预测值列表,将所述预测值列表与实际的股票趋势值进行比较,计算得到多个神经网络模型作为组合模型时所占的权重值。在s104中,所述计算得到多个神经网络模型作为组合模型时所占的权重值,本实施例具体可以包括:通过多个时段的训练数据,使用线性回归的方法,得到各个lstm神经网络模型在最终的组合模型输出中的权重值。s105、利用测试数据集的测试数据对组合模型中的多个神经网络模型评估预测效果,根据预测效果调整所述多个神经网络模型作为组合模型时所占的权重值。不难看出,本实施例针对单个lstm出现的预测精确度不高的问题,提出模型组合的方法,从而在实际股市中,普通投资者可以预测股市会根据不同时间跨度的股市信息分别判断,最终综合考量,从而得出对于股市走势的较好判断。具体而言,本实施例在具体应用时可以针对股票时间序列数据的特点,使用不同长度的时间窗口,生成序列数据,使用不同的序列数据训练lstm模型,然后将其组合,使用线性回归方法确定各个模型的权重,从而提高预测精度。s106、使用滚动时间窗口的方式对未来预定时间段的股票趋势具体数值进行预测。在s106中,所述使用滚动窗口的方式对未来预定时间段的股票趋势进行预测,本实施例具体可以包括:将组合模型预测的涨跌幅转换为被预测时刻的预测数值,再将当前预测出的预测数值,填入下一被预测时刻的时间窗口,并依此交替循环;当获取到目标股票实际变化趋势的实际数值时,将预测数值与实际数值对比,并根据对比结果将实际数值作为一组新的训练数据,代入模型以更新模型参数。需要说明的是,滚动窗口的方式可以为逐次单个时间窗口滚动循环,也可以是多组时间窗口一并滚动循环,在此不作限定。在本实施例中,监督值也就是目标值(target),在本
技术领域
中为涉及机器学习的监督学习概念,在有监督学习中,本申请计算过程中的算法通过预测数值与监督值之间的差值计算损失(loss),然后根据损失更新模型参数,迭代反复,实现机器学习中的训练过程,最终使得预测数值与监督值相同。本申请通过组合模型的方式,避免单个lstm模型的简单预测方法误差较大且实用性较低的问题,并通过计算调整组合模型的权重值,进一步提高预测的准确性。本申请能够提高对于股票趋势预测的准确度,有效地减小误差,在一定程度上把握比如多方力量影响下的股票走势。举例而言,本申请可以包括下述的具体应用例中,其中,本申请的具体应用例不应用来限制本申请的范围。应用例:(1)首先获取目标股票的历史数据,包括但不限于同一板块、所在大盘、以及其他相关股票的数据等等,随后根据目标股票的数据分布特点,使用接受-拒绝采样方法,选取分布相似的其他相关股票数据,与目标股票历史数据一起构成综合的历史数据;(2)将历史数据进行数据清洗、归一化,然后将清洗后的历史数据按照时间划分为训练数据集与测试数据集,比如较为早期的数据被划分为训练数据集,较为晚期的数据被划分为测试数据集。使用训练数据集的数据生成不同跨度的时间序列数据x1,x2,...xn,其中时间跨度(1<x1<x2,...<xn)。对于每个时间跨度(t0,t1,t2,...tn),使用(t0,t1,t2,...tn-1)作为输入值x,使用tn-1与tn之间的差异值,将其依照表1.1离散化后,转换为独热码数据作为监督值y。在本实施例中,下列表1.1的划分是根据大量股票历史交易数据汇总而得,依照其划分可使得落在各个范围内点的数目大致相等:表1.1涨跌幅与独热码对应表涨跌幅s对应独热码s≥5%00000000015%>s≥2%00000000102%>s≥1%00000001001%>s≥0.5%00000010000.5%>s≥000000100000>s≥-0.5%0000100000-0.5%>s≥-1%0001000000-1%>s≥-2%0010000000-2%>s≥-5%0100000000-5%>s1000000000(3)在训练数据生成好后,进行离线模型的训练,使用训练数据集生成的不同跨度的时间序列数据x1,x2,...xn,对于每份时间序列数据分别训练lstm神经网络模型m1,m2,...mn。(4)鉴于深度学习训练速度比较慢,而本实施例需要训练多个模型,因此本实施例基于内存计算的分布式训练方法,首先将数据分发到各个节点上,随后将初始模型参数广播给各个节点,每个节点根据当前的模型参数与一定规模(onebatch)的训练数据,获得当前梯度与模型参数更新量,然后通过汇总各个节点反馈的更新量来更新模型参数,并再将更新后的模型参数广播出去,这样迭代反复,最终根据要求完成单个lstm神经网络模型的训练过程。(5)在训练数据集中随机抽取若干段时间,对于每个训练好的lstm神经网络模型mn,输出其对于该段时间(例如:t0时段)的预测值得到各个模型的预测值列表再以真实的股票趋势值y0作为参照,得到对于t0时段的训练数据通过多个时段的训练数据,使用线性回归的方法,得到各个lstm神经网络模型在最终的组合模型输出中的权重值。(6)对于训练好的组合模型,使用测试数据集评估其预测效果,并根据评估结果调节组合模型的各项超参数。(7)在实际预测过程中借助组合模型,使用滚动窗口的方式实现对于未来一段时间股票走势的预测,比如:将组合模型预测的涨跌幅转换为被预测日的收盘价等信息的具体数值,再将当前预测出的具体数值,填入下一时刻的时间窗口,这样交替循环,可以在保证精度的情况下,实现对于未来一段时间内股票走势的预测。(8)当获取到实际变化趋势数据时,将预测结果与实际结果对比,同时作为一组新的训练数据,代入模型,更新模型参数。本申请使用level1的股票历史交易数据进行模拟实验,其对于股票走势的预测较为准确,总体表现平稳,能够在一定程度上把握在多方力量影响下的股票走势。与现有技术相比,本申请具有更高的准确度与鲁棒性。请参阅图2,本申请还提供一种智能终端20,所述智能终端包括存储设备21和处理器22,所述处理器22用于读取并执行存储设备21中的程序数据,可实现前面任一实施例所述的基于长短期记忆神经网络的股票趋势预测方法。需要说明的是,智能终端20可以为手机、平板电脑或台式电脑,也可以为服务器。此外,本实施例的存储设备21可以为外接的,也可以为设置于智能终端20内的,在此不作限定。上述基于lstm的股票趋势预测方法和智能终端,通过将历史数据按照时间划分为训练数据集与测试数据集,对所述训练数据集的训练数据进行离线模型训练,以分别训练lstm的多个神经网络模型,接着,获取训练数据对于训练后的多个神经网络模型输出的预测值列表,并将所述预测值列表与实际的股票趋势值进行比较,以计算得到多个神经网络模型作为组合模型时所占的权重值,最终,利用测试数据集的测试数据对组合模型中的多个神经网络模型评估预测效果,根据预测效果调整所述多个神经网络模型作为组合模型时所占的权重值。本申请通过组合模型的方式,避免单个lstm模型的简单预测方法误差较大且实用性较低的问题,并通过计算调整组合模型的权重值,进一步提高预测的准确性。本申请能够提高对于股票趋势预测的准确度,有效地减小误差,在一定程度上把握比如多方力量影响下的股票走势。在本申请所提供的几个实施例中,应该理解到,以上所描述的实施例仅仅是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如一些特征可以忽略,或不执行。本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本申请的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1