基于多特征因子的隐马尔科夫模型的自适应股票预测方法与流程

文档序号:14861116发布日期:2018-07-04 07:29阅读:518来源:国知局
基于多特征因子的隐马尔科夫模型的自适应股票预测方法与流程

本发明属于股票预测技术领域,本发明涉及一种基于hmm的股指趋势分类预测方法。



背景技术:

在上个世纪60年代,鲍姆提出了隐马尔科夫模型,然后通过在语音识别领域内的使用被广大科研人员和爱好者熟知,1988年李开复的博士论文,基于hmm的语音识别软件被评为重要发明。文艺复兴科技公司是国际著名投资机构,因从1989年保持在超高的年回报率被业界誉为最高效的对冲基金。正是通过独特的数学模型捕捉市场机会进行量化投。而隐马尔科夫模型是该公司的主要工具之一。因此,在金融市场中尝试hmm进行预测具有实际意义。

股票市场一般按照投资的方式不同分为:基本面、技术型和量化型。根据统计,全球绝大部分的投资方法都是基本面型的,此法以基金投资为主。一部分人员是技术型为主,此方式专业性较强,通过分析各种技术指标投资,计算繁琐,以民间个人为主。近几年,在国内外量化型的投资方式逐渐增多。在股票市场中应用hmm量化模型,首先要认识清楚两个问题:第一,对hmm的参数的学习问题,第二,基于观察值的状态分类。模型参数是通过观察值学习来的,但是通过单一股票值不能够直接建立可以反映股票走势的模型,从而探究观察值背后的隐状态以供投资研究使用。不过可以提取一些重要的特征因子,例如股票值、成交量等二次信息数据作为模型的观测值,通过多维特征因子序列来建立hmm量化模型

目前行业内的研究还多在金融方向做一些统计分析类模型,如:钟摆理论模型、小市值理论、alpha模型、归因分析、羊驼和海龟策略等,这些传统的方法已经做到了领域的天花板,或者没办法做到突破瓶颈,可以利用机器学习的方法,在没有过多的金融框架的限制下,更多的从数据的本质和市场的内在自然发展规律来一探究竟,会有更好的效果,目前各种算法已经在行业内做过初步的研究,但是更好的模型还是需要多做优化、改进,以期更好的和实际问题结合。在人工智能时代,能否将人工智能更紧密的应用在股票预测,寻找一种高效的股票预测算法,具有重要的新颖性、创造性和实用价值。



技术实现要素:

基于hmm的股票预测的思路是将历史数据的时间点通过隐状态的标注,实现时间点的分类,然后通过寻找和待预测日前一天的分类标注一致的历史点,计算取得历史点和它们后一日的涨跌幅度,来估计待预测日和前一日的收盘价残差。

本发明主要由股票样本数据和hmm组成。

基于多特征因子的隐马尔科夫模型的自适应股票预测方法,该方法包括三个步骤,

第一,通过股票样本数据训练hmm模型,建立基于hmm模型,通过限定模型的适用条件,以达到最优的预测效果;限定模型的适用条件为训练样本的长度、观测值的预测窗口、hmm的隐状态数、避免适用未来数据的窗口,并对这些数据参数进行最优化处理。

第二,在训练好的hmm模型,得到最优化的限定参数后,对共53个特征因子进行适用,并各自对待预测观测值进行价格预测,按照预测的准确率的高低排列,选取高区分能力的因子,考虑特征因子间的相关性,提取不相关的特性因子,同时考虑pca选取较好的二次特征因子作为模型的预测特征,作为最终稳定的基于hmm的股指预测模型特征。

第三,通过模型训练得到收敛的hmm参数,利用已得到的模型计算待观测值序列标记为各个隐状态的可能,并标记为最可能的隐状态序列及相应的似然值。然后利用hmm模型,计算待预测的观测值序列最可能的隐状态序列及似然值,并通过在时间和似然函数值作为最相近历史点的寻找依据,基于时间的权值分配使用:wm=exp(1/(i-m+1)),wm为不同相近历史点和后一日间升降幅度所占的权值,i为当前带预测天的前一日序号,m为相近历史天的序号;从而得到训练样本天后一日的价格涨跌幅度,通过此幅度计算得待预测日和前一日的涨跌幅度,进一步得到待预测日的股价趋势分类。

隐马尔可夫模型(hiddenmarkovmodel,hmm)是统计模型,是在探究一个马尔可夫过程与背后隐藏状态的关系过程中建立的模型,即它用来描述一个含有隐含未知参数的马尔可夫过程。常用来从可观测的序列中确定该序列的隐含的参数,然后进一步利用这些参数来研究分析。hmm根据使用背景不同分为离散型和连续型,典型的离散型是隐状态和观测值得概率是一一对应,而连续性hmm的隐状态和观测值的概率是通过隐状态的概率分布得到的。一个隐马尔科夫模型通过一个三元组表示:(π,a,b),完整表示为:(n,m,π,a,b),其中:

n:隐状态数;

m:一个隐状态对应的观测值数;

pi:隐状态的初始概率分布π=p{q1=sj},sum(π)=1;

a:隐状态间的转移概率分布。aij=p{qt+1=sj|qt=si},1≤i,j≤n.sum(ai)=1;

b:某隐状态对应观测值的概率分布。bij=p{ot|qt=si},1≤i≤m,1≤j≤n;

离散型观测概率分布:bjk=bj(ot)=p(ot=k|st=j),1≤k≤u;

连续型观测概率分布:bj(ot)=∑wjk·bjk(ot),j=1...n,1≤k≤m;

连续性一般观测值的概率分布使用混合高斯函数近似拟合,∑wjk=1,j=1...n,k=1...m,如果观测序列为多维的,则:bjk=bj(ot)=n(o,ujk,∑jk);

其中:ujk=e[o(t)|q(t)=j,m(t)=k];∑jk=cov[o(t)|q(t)=j,m(t)=k]

在寻找历史点时,涉及到要寻找的历史区间,判别相似历史点的方法,历史点的标注时,需要解决类别数的计算方法,在选择特征时,使用多维的股票指标。

通过训练学习将数据集长度和预测窗口区间调整到最优值,同时保证相近历史点的精准和特征多样性,并采用状态数的自学习,实现自动更新模型的方法。

在一定历史点区间,判别相似历史点的方法,历史点的标注时,类别数的计算方法,在hmm的基础上实现股指的预测。本发明也具有一定的实际应用价值:一是作为机器学习算法的实际应用平台辅助教学;二是在当前机器学习的领域,实现股票预测,从而使用hmm来处理语音信号;三是由于使用硬件成本资源较少以及计算简单快捷,易于实现。

在hmm中有三个典型问题:

1、计算概率问题:在已有模型参数前提下,计算给定观察序列的概率先有参数为λ的隐马尔科夫模型和一个观察序列集。如果想计算在当前的参数情况下,得到这个观察的序列的概率,可以通过动态计算算法前向算法计算观察序列的概率。

2、解码问题:由观察序列找到最可能的隐序列

解码问题和概率计算问题很类似,不同的地方是,计算概率问题是求在所有的隐序列情况下,表现出来的观测序列的概率的总和,而解码问题,是求解在哪一个隐序列前提下,得到此观测序列的概率是最大的,不是求各种的和,使用viterbi算法根据观察序列得到最优的隐状态序列。

3、学习问题:由观察序列集建立最有可能的hmm参数

在实际应用中,hmm都会有一个先期的学习参数问题,对于给定的观察序列o,直接求取到最优的hmm参数λ,得到p(o|λ)值最大的,但是可以通过求其局部最优的解,这种算法称为前向后向算法,也称baum-welch,是em算法的近似方法。

与现有技术相比较,本发明具有如下有益效果:

1.在适用隐马尔科夫模型做股票预测时,确定了一个重要参数序列的隐状态数n的设置问题,使得次参数的设置依赖于数据本身的性质,更为精确。

2.在判别相似历史样本的时候,参考了两点:标注状态类别和类别的似然函数,相比较只考虑类别,太过于宽泛,得到近似样本不精确。

3.在确定相似样本的涨跌幅度的权值时,依赖于标注类别似然值间的距离,同时关注了,预测日和相似样本日间的时间距离。

4.使用了多种特征属性,包含了股市的市值资本、技术、动量等指标作为初选特征,经过多种方法筛选出预测能力较强的属性作为特征向量,预测能力较优于使用特征少的方法。

附图说明

图1为hmm训练的过程。

图2为训练观测值标记为各隐状态的概率对比。

图3为因子预测对比。

图4为因子间相关性。

图5为样本外模型各种形式的结果对比。

图6为部分数据样本的样例。

图7为样本长度和准确率。

图8为预测窗口和准确率。

图9为寻找历史相近点的代码。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的描述。

本发明主要由股票数据和hmm组成。股票数据是沪深指数从2007.1.4-2017.4.10的交易日数据,算法是假设一阶马尔科夫性和当前时间点的状态、观测值独立性的hmm。

s1数据准备:

步骤1:通过财经网、scapy、指标计算公式搜集数据,如图6所示。

步骤2:将这些搜集数据进行归一化规整等预处理。

步骤3:对预处理的搜集股票数据划分为训练数据集和测试数据集。

s2构建模型参数:

步骤1:将s1中的步骤3的训练数据集在因子情况下,运用python的hmmlearn.hmm,学习hmm算法的内部参数,此算法是本模型的核心算法:

(1)输入特征向量x是由55为指标最终确定为12为(s3特征选择)。

(2)输出为每个样本点的类别标记,范围是在隐状态数目n内(s2的步骤4确定)由解码算法viterbi标注得到。

(3)hmm的转移概率矩阵a=[aij](1≤i,j≤n),定义了某交易日i和后相邻交易日j之间的隐状态转移的概率,利用了1阶马尔可夫性原理。

(4)hmm观察概率分布b=bj(k)(1≤j≤n),此矩阵定义了某个交易日的隐状态被标记为j时,观测到的特征向量是为k向量的概。

(5)在s2步骤1中涉及到的hmm算法中的参数,是通过学习算法baum-welch多次的迭代学习,收敛取得最优的时得到。

步骤2:首先确定在总数据集中,划分的每批次训练样本集的长度,在各种值下取得最优,如图7所示。

步骤3:在历史数据区间确定后,调整预测窗口的长度,如图8所示。

步骤4:本次运行的hmm的隐状态的数目的确定是有程序自学习得到的,是通过oehs准则,运行ncomponents.py获取最稳定的隐状态值,作为hmm的隐状态数目n。

s3特征选择:

步骤1:通过s2部分取得的模型适用最优参数后,同时利用过滤式的特征过程方法,得到各个因子预测能力的排序,如图3所示。

步骤2:同时使用pca和pearson系数,过滤出预测结果较好的不相关的因子,如图4所示。

步骤3:由s3的步骤1,2得到55个属性指标中的12维作为hmm算法的输入特征,即特征向量。

s4模型适用:

步骤1:通过s2,s3部分,构建模型中涉及到的适用参数和hmm算法的参数的最优值:单批次训练数据样本长度、预测区间长度、寻找的相似历史点数、隐状态的数n、12维输入特征向量等。在模型构建完整的基础后,将历史时间点和待测日计算出似然值且标记分类,如图2所示。

步骤2:通过距待预测日的距离和似然函数的距离程序,筛选出最相近的历史点,代码如图9所示,通过加权平均得到涨跌幅度,从而得到待测日的走势分类。

步骤3:通过在测试集上运行,得出不同情况的模型的结果如图5所示。

通过提出的在金融股市中动态建模方法,在以股市技术指标作为特征因子组成的研究数据中,通过不同的特征向量组合,并将隐状态数动态化,调整训练样本长度、预测窗口,寻找最相近的历史数据点,对模型的效果有较大改善作用,具体各种不同预测模型对序列趋势的预测效果如图5所示。

经过比较分析,当12维因子作为输入特征时得到的预测效果较好,最高预测效果为62.5%,比较单一特征预测胜率提高了3.75%,比对静态法结果,正确率提高了11.5%,效果提高较为显著,此也证明方法的优越性,模型应该随着数据的变化适时的更新,大大简化了传统方法的时间以及正确率,进而从神经网络的处理方法解决了说话人识别问题。因此可以认为本发明有非常高的应用价值。

最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围当中。

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