【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

朴素贝叶斯分类器进行股价趋势分类预测

原理

贝叶斯定理

模型思想

1、在风险识别中,贝叶斯模型本质上也是一种已知结果找原因的思维工具。

2、在风险决策中,利用贝叶斯模型的基本思想是充分利用先验信息(如已有的模型,数据信息以及经验资料),将先验分布和抽样分布整合成后验分布,从而利用后验分布进行决策。如果有新的信息,则更新后验分布,实现递归决策方案。从而得到最优策略,使得决策风险尽可能低。在概率统计的表述是:应用所观察到的现象对有关概率分布的主观判断(即先验概率)进行修正的标准方法。

3、在分类预测中,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

概率论基础

要理解贝叶斯模型,必须先理解贝叶斯定理。贝叶斯定理实际上就是计算“条件概率”的公式。

条件概率

条件概率,是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示。其公式为:
【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

上式可转化为:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

称为乘法公式。

全概率公式

设试验E的样本空间为S,A为E的事件,B1,B2,…,Bn为S的一个划分,则全概率公式为:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

模型公式

公式

通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯法则就是这种关系的陈述。

设试验E的样本空间为S,A为E的事件,B1,B2,…,Bn为S的一个完备事件组,则:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

其中:
P(Bi):Bi的先验概率或边缘概率。之所以称为“先验”是因为它不考虑A任何因素的影响。
P(Bi|A):已知A发生后Bi的条件概率,即由于得知A的取值而被称作Bi的后验概率。
P(A|Bi):已知Bi发生后A的条件概率,即由于得知Bi的取值而被称作A的后验概率。
P(A):A的先验概率或边缘概率,也作标准化常量(normalized constant)

解析

根据贝叶斯公式:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

当A为特征向量,Bi(i=1,2,…,n)为分类标签时。贝叶斯模型就可以进行分类预测。例如,在对股价进行分类中,特征向量A可以是各种技术指标或K线量价特征。而Bi(i=1,2,3)对应于给定方向上的实际价格变动的事件,其有三个可能的选项: B1=-1“向下”, B2=0“不确定”, B3=1“向上”。我们就可以根据历史数据来进行分类预测,而预测结果的可能性可以用P(Bi|A)表示,分类级别很简单:P(Bi|A)越大,则属于该类别的可能性也越大。该分类方法也被称为朴素贝叶斯分类器

实践

朴素贝叶斯模型在股票价格趋势分类预测的应用

步骤

朴素贝叶斯分类器的具体步骤如下:

step1:设x={a1,a2,…,an}为一个待分类项,而每个a为x的一个特征属性。

step2:有类别标签集合C={y1,y2,…,ym}。

step3:根据贝叶斯公式,计算P(y1|x),P(y2|x),…,P(ym|x)。

step4:如果,P(yk|x)=max{P(y1|x),P(y2|x),…,P(ym|x)},则x被分到yk类别。

重点

关键就是如何计算第3步中的各个条件概率。

我们可以这么做:

step1:找到一个已知分类的待分类项集合,这个集合叫做训练样本集。

step2:统计得到在各类别下各个特征属性的条件概率估计。即:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

step3:如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

其中,1/N为常数。

因此,朴素贝叶斯分类器过程是利用样本集统计出各特征属性的条件概率以及分类标签的概率。然后根据以上步骤对待分类项进行分类预测。

心得

可以看到,整个朴素贝叶斯分类分为三个阶段:

第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。

第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

应用

下面我们利用朴素贝叶斯模型对股票价格趋势进行分类预测:

属性划分

对属性的确定并对属性进行适当划分是非常重要的。这里为了简单起见,我们利用当日的涨跌状态、RSI指标、RSRS指标、CCI指标做为特征属性。而实际价格趋势为分类标签。根据指标的常用方法对特征属性进行划分,其划分如下表:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

分类训练

本文利用股市沪深300的所有成分股N(N=100)天历史数据作为训练样本。以当前天的下一交易日实际价格涨跌状态为分类标签进行分类器训练。训练样本量为:3万。

利用2018年5月1日之前的N(N=100)天的样本数据为训练样本,训练结果如下表:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

分类预测

预测2018年5月2日-5月15日这10个交易日价格涨跌趋势。利用该段时间沪深300成分股的实际价格涨跌检验分类预测价格涨跌趋势的准确率,如下表所示:

【点宽专栏】教你如何应用朴素贝叶斯分类器进行股价趋势分类预测

总结

简单的利用贝叶斯模型对股价进行分类预测有一定的合理性。如果想要提高贝叶斯模型分类预测的准确性,我们可以从下面两方面出发:

1、从贝叶斯模型的特征属性出发,深入研究和挖掘更多有用的特征属性,并合理地划分每一个特征属性的范围。

2、选择合适的训练样本集进行研究,可以按行业分类选择具有相同趋势的股票进行训练及预测。

拓展

波动率估计

波动率模型,尤其是随机波动率模型在金融领域有着广泛的应用,这就使得模型的参数估计成为一个非常重要的问题。贝叶斯估计在随机波动率模型上是十分普遍并应用广泛的参数估计方法。

有兴趣的同学可以查阅相关资料,利用贝叶斯估计方法对波动率模型进行参数估计。

上一篇:题解【NOIP2013_火柴排序】— 问题与转化


下一篇:辨析BI、数据仓库、数据湖和数据中台内涵及差异点(建议收藏)