还有这个—— 真正的RBF神经网络公式论文
文章编号:1000-2243(2000)04-0012-04
个股走势模式分类的RBF神经网络方法
叶东毅, 刘文标
(福州大学计算机科学与技术系, 福建 福州 350002)
摘要: 提出一个基宽度可调的RBF神经网络学习算法, 并将它应用于个股走势模式的分类问题. 文中对走势模式的特征编码进行了阐述, 改进了原有的编码方案. 实例计算表明效果良好. 关键词: RBF神经网络; 个股走势; 模式分类 中图分类号: TP387 文献标识码: A
股票市场是一个典型的非线性动力系统, 要对其进行准确的预测非常困难[1,2]. 虽然个股的价格很难预测, 但是短期内个股的走势, 即个股的变化模式, 往往存在一定的规律性. 如果能对股票走势的模式进行分类和预测, 就可为进一步的股市行情预测提供帮助. 传统股市技术分析的方法依赖于股票交易中历史事件重现的假设. 常以图形或统计分析结果来显示股票市场变动的幅度、方向、转折点和趋势, 具有简单, 直观的优点. 但是, 由于过多个人主观意念的介入, 以及人的记忆容量和计算能力的限制, 在判断现在是过去何时刻的“历史重现”上, 存在明显的不足. 利用神经网络在非线性映射和联想学习能力方面的优势, 可望提高判断的速度和客观性. 文献[1]利用BP神经网络对股市变化模式提出了一种分类方法, 在一定程度上弥补了传统技术的不足. 但BP网络也有其明显的局限性, 如收敛速度慢, 对初始条件敏感, 易陷入局部极值, 网络拓扑结构的确定尚无理论依据可循, 特别是它的全局逼近性导致样本集的变化需要对网络的所有权值进行重新学习, 这样不利于建立动态的预测模型. 径向基函数(RBF)神经网络是局部逼近型网络[3], 能以任意精度逼近给定的非线性映射. 样本的变动往往只涉及到少数几个基函数中心和宽度的调整, 权值修改工作量相对较少, 比较适合用于动态的系统建模和模式分类. 为此, 本文选择RBF神经网络来处理个股走势的模式分类问题. 为提高RBF网络的自适应性, 提出了一种可调基宽度的计算方法,针对个股走势模式分类问题的特点, 给出走势模式的特征编码, 并采用Kohonen网络确定基函数中心. 实例计算结果表明, 该方法效果良好. 1 改进的RBF网络算法
RBF神经网络采用两层数据处理结构来实现Rn→Rm的映射. 首先, 由网络隐层的基函数对输入数据进行非线性变换; 之后, 网络的输出由基函数的响应通过输出层的加权组合给出. 该网络实现的映射为:
yk(x)=∑sj=1wjkhj(||x-cj||) (k=1, 2, …, m)
(1) 其中, wjk是连续隐层到输出层的可变权值, cj∈ Rn为隐层基函数的对称中心, ||.||表示欧氏距离, hj(.), j=1, 2, …, s是一种径向对称的基函数, 其形式一般根据实际问题的需要确定, 采用高斯型函数:
h(d)=exp[-(d2/2σ2)]
(2) 其中, σ称为接受域的宽度, 可用于控制函数的局部性程度, 亦为径向基函数的宽度. RBF网络的学习分为3个部分: 局部接受域(径向基函数的中心)的学习; 径向基函数宽度的学习; 隐层与输出层之间联结权值的学习. 上述3项的学习通常是分开进行的. 基函数中心的选取是至关重要的, 一般采用聚类算法或神经网络方法求出输入样本的各类中心并将它们作为径向基函数的中心. 基函数宽度的选取往往根据聚类的结果来确定, 最常见的是令它们等于聚类中心与训练样本之间的平均距离, 即
σ2j=(1/Mj)∑x∈θj(x-cj)T(x-cj)
(3) 式中:Mj是样本类θj中的模式数, cj为类中心. 权值的学习采用通常的梯度下降技术[4]或采用矩阵求伪逆的正则化方法[5]. 为了提高RBF网络的学习收敛速度和自适应性, 在径向基函数的宽度选择上做了改进, 提出一个依据数据分布密度的可调宽度的σj计算方法, 其基本思想是利用(3)式计算σj, 根据情况逐步扩大或缩小σj, 使最终的σj满足如下条件: 以cj为中心, σj为半径的区域内, θj类样本数占该类样本总数的比例不小于aj%, 而其它类样本数占所属类样本总数的比例不超过bj%, 其中可调参数aj、 bj满足0<bj<aj<100, 根据实际情况而定. 一般来说, 70≤aj≤90, 10≤bj≤20, j=1, …, s. 对Symmetry问题, Parity问题等布尔学习问题的计算结果表明, 这种做法提高了学习的速度. 2 个股走势的模式分类
股价在每个交易日内瞬息变化, 预测这种瞬时变化是十分困难且无多大意义. 将股价在一段时间内的走向作为一个模式, 并采用RBF神经网络进行分类处理. 首先, 需要对股市的原始数据(收盘价)进行一定的预处理, 以便作为网络的输入信息. 就收盘价而言, 预处理主要保留总体变化趋势, 同时兼顾一些重要的突变信号. 设有收盘价序列{Di}, i=1, 2, …, 计算其中5日移动平均值:
mi=∑4j=0Di+j/5
(4) 移动平均值虽然能够起到平滑数据的作用, 但在一定程度上忽略了数据间的变化特点, 为此作进一步处理. 取
pi=ln(mi+1/mi)
(5) 由于pi的值大多集中在一个较小的区间内, 各值之间的大小差距很小. 因此, 为了产生较为合理的网络输入向量, 根据pi的分布情况, 对其进行适当的编码. 选择连续5d的移动平均值的走向作为模式分类的依据. 以上海二纺机股票作为模拟对象, 时间为1993年3月至1993年12月, 共220d. 文献[1]中将预处理得到的数据pi分为5段编码, 并依据已有的关于模式的典型情况, 将输入模式划分为9个类别处理, 如图1所示.
由于pi数据仅分为5段, 因此难以明确界定某些类, 如图1中的(七)、(八)2类实际处理时的5段编码是相同的. 为了克服这一缺陷, 应给上述9种模式以适当的编码, 本文将数据分为7段, 即:
ei={(-1, 1) (pi∈(-∞, -0.012])
(-1, 0) (pi∈(-0.012, -0.006]) (0, -1) (pi∈(-0.006, -0.002]) (0, 0) (pi∈(-0.002, 0.002]) (0, 1) (pi∈(0.002, 0.006]) (1, 0) (pi∈(0.006, 0.012]) (1, 1) (pi∈(0.012, +∞]) 由于是以连续5d的日平均收盘价作为模式依据, 经离散化编码后, 网络的输入层结点数应为5×2=10. 隐层结点数原则上等于模式类别数, 即为9, 再加上非线性调整项, 故采用10个隐层结点数. 在输出层上加上Sigmoid函数, 使之取值在(0, 1)区间内. 输出层结点数等于模式类别数. 目标输出向量为单位向量εi=(0, 0, …, 1i, 0, …, 0)T对应第i类模式. 参考图1给出各类样本的判别特征: 第一类: 主体单调上升, 变化跨5段以上; 第二类: 主体单调下降, 变化跨5段以上; 第三类: 主体单调上升, 变化跨3~4段, 不占用1, 6, 7段(即不出现e1, e6, e7情况); 第四类: 主体单调下降, 变化跨3~4段, 不占用1, 6, 7段 ; 第五类: 主体升中有降, 以升为主, 不占用1, 6, 7层, 变化跨3~4段; 第六类: 主体升后有降, 而后保持基本平稳, 不占用1, 6, 7层, 变化跨3~4段; 第七类: 主体单调下降, 变化跨5段以上, 且中间有1段的跳升; 第八类: 主体单调下降, 变化跨5段以上, 且中间有2段的跳升; 第九类: 主体小幅波动, 变化只在2段之间, 不占用1, 5, 6, 7段. RBF网络隐层与输出层之间的权值采用文献[6]中的算法来学习. 根据选取的训练模式, 应用Kohonen自组织网络算法确定基函数中心. 基函数宽度则用前述的动态宽度计算法确定, 其中取aj%=0.9, bj%=0.1, j=1, …, s. 算例1: 从220d数据中提取50个模式, 其中30个为训练模式, 20个为检测模式. 权值学习精度为ε=0.02, 用收敛后的网络对检测模式进行分类, 正确率为90%. 算例2: 增加10个新模式作为训练模式, 重新计算基函数中心和宽度, 原有权值保持不变, 对检测模式重新进行分类, 正确率为80%. 由此可见, 网络具有较好的泛化能力. 初步研究表明, 应用RBF神经网络对个股走势模式进行分类是可行的. 需要说明的是, 就走势模式而言, 可以有很多的类别, 并不只限于提到的9种类别, 因此, 如何合理地确定股价变化模式类别, 提高模式分类的合理性和可行性, 值得进一步研究. |