摘要:基于SOM自组织特征神经网络的结构和特点,分析了SOM神经网络结构的缺陷。针对SOM神经网络算法的不足进行了改进,结合股票数据属性分类问题,得到了SOM神经网络竞争层个数选取的几个结论,并通过实验验证了SOM网络结构改进的可行性和有效性。
关键词:SOM神经网络;竞争层神经元;SOM网络分类;股票数据分类
神经网络的学习不仅应包括参数上的调整,也应该包括神经网络结构上的调整,即竞争层(输出层)的数目以及输入神经元之间的学习方式,对神经网络的性能起着重要的作用。
1. SOM(Self-organizing feature map)神经网络简介
SOM神经网络是一个两层网络,即由输入层和竞争层组成,输入层接收样本,竞争层对样本进行分类,这两层的神经元进行完全相互连接,竞争层的神经元按二维形式排列成一个节点矩阵,一般输入层节点数等于能够代表分类问题模式的维数,输出节点数根据具体问题来决定[1-3]。SOM网络的拓扑结构图1 所示。
2. SOM算法
选取SOM网络竞争层神经元个数依据具体的问题而决定,是SOM神经网络的重要步骤,有没有好的方法来选取竞争层的数目呢?周俊临提出自增长型多级自组织映射网络[4],首先将输入数据映射到只含有2 个神经元的平面上,进行较粗的聚类,然后在下一层中相应位置添加2 个神经元,扩大网络规模以细化某些分类,继续增加新的更大的层,依次迭代下去,最后所有的神经元都满足全局控制的停止条件为止。但是,这种方法迭代次数多,适合于数据很少的问题,当数据很大时,需要多次学习才能满足所需条件,迫切找到一种更快的方法来选取竞争层数目。本文针对这个问题进行深入剖析,提出一種较为合理的选取方法。
3 数据选取
选取中国A股市场的000007ST达声原始数据,2004年 3月 2日到2008年 3月 2日的925条股票数据记录,确保了数据源的可靠性。
4 数据分析与处理
4.1 数据预处理在本系统中,输入范围在区间[0,1]最佳。采用归一化处理,将数据归一化到[0,1]之间[2,4],求出这段时间该原始数据库的每一个指标(也叫属性)的最大值max(xi),和最小值min(xi),,和分别为归一化前、后的数据,公式为:
4.2SOM网络算法实现与结论
本文选用000007ST达声原始数据:开盘价、最高价、最低价、收盘价、成交量。利用SOM网络算法[2,3,4],进行SOM网络训练。设股票数据的属性为:开盘价、最高价、最低价、收盘价、成交量,用股票数据的每一个指标值作为一个输入向量,即P1(x)=(x1,1,x2,1,x3,1,…,x925,1),P2(x)=(x1,2,x2,2,x3,2,… ,x925,2),P3(x)=(x1,3,x2,3,x3,3,… ,x925,3),P4(x)=(x1,4,x2,4,x3,4,… ,x925,4),P5(x)=(x1,5,x2,5,x3,5,…,x925,n),其中,n∈[1,925]。这样,总共有个5 输入向量,即有5 个输入神经元。
用5 个神经元作为SOM的神经网络输入,每一天的股票数据作为一组输入,总共有925组输入,竞争层选用4×4、5×5、6×6和 7×7个神经元做实验,经过SOM网络学习,SOM神经网络学习925个股票数据,从竞争层神经元得到权值的结果,可以得出SOM竞争层神经元个数选取的结论:
1) 当竞争层的神经元个数比较少时,竞争层中在同一层神经元竞争学习得到的结果基本相同,80%的神经元得到的权值的结果相差在10%以内。说明竞争层神经元之间的竞争相对公平,竞争层需要增加新的神经元。
2) 当竞争层神经元在同一层之间的竞争较大时,竞争层中在同一层内有1/3以上的神经元竞争得到的权值相差较大(大于30%)的时候,说明竞争层神经元学习较好,即可取这时的竞争层的神经元作为最终竞争层的神经元。
3)竞争层神经元的个数随输入样本个数的不同而不同,当输入样本个数较少时,竞争层的神经元个数较少;当输入样本个数较多时,竞争层的神经元个数相对较多。在实际运用中,根据输入样本初始选择竞争层的神经元,当竞争层神经元在同一层竞争得到的结果相差较小时,就要在竞争层增加神经元(改变输出层参数)的个数;当竞争层神经元在同一层竞争得到的结果相差较大时,应该减少竞争层的神经元个数进行学习。直到竞争层神经元在同一层1/3以上的神经元的权值相差较大时,较为合适。这些结论是根据股票数据的分类得出的,可以更快的得到竞争层神经元的数目,不必要用逐层递增的方式进行学习,可以用跳跃式增加的方式进行学习,减少了SOM网络迭代的次数,也缩小了运行的时间。
4.3SOM网络分类的实现
根据上面的分析,对000007ST达声 的925天的股票数据的5 个属性:开盘价、最高、最低价、收盘价和成交量进行分类。首先用公式(1)把数据进行归一化处理,然后把股票数据的每一个属性作为一个向量,即用5 个神经元作为SOM的神经网络输入,每一天的数据作为一组输入,输入层共有925组输入数据。由上面关于竞争层层数的讨论,选取竞争层为7 层,即7*7=49个神经元,输出为竞争层49个神经元的分类结果。算法中,η 的初始值取为0.9,R=3,dmin=0.005,竞争层取为7 层;N为竞争层的神经元个数,实现的算法的参数:N=49;R=4,结果如图2。
该分类算法把925天的股票数据分成了11类,在每一个分类矢量的平均值附近的作为第0 类;高于平均值的数据分别作为第1,2,3,4,5类;低于平均值的数据分别作为第-1,-2,-3,-4,-5类,如图2。
5 结语
由SOM竞争层神经元个数的选取结论对股票数据的分类结果可以看出:当样本数据量比较大时,利用上面的结论较容易发现竞争层的规律;调整参数就能进行神经网络的学习;当样本数据改变时,改变参数,即可以进行网络学习,不需要重新从源数据开始新一轮的计算。SOM分类反映了样本集的本质区别,大大减弱了一致性准则中的人为因素。
参考文献:
[1]A.Rauber,D.Merkl;etal,“The growing hierarchical self-organizing map:exploratory analysis of high-dimensional data”,Neural Networks,IEEE Transactions on,Volume:13Issue:6,Nov.2002,Page(s):1331-1341.
[2]闫春,刘璐.基于改进SOM神经网络模型与RFM模型的非寿险客户细分研究[J].数据分析与知识发现,2020(4):85-87.
[3]P.N Suganthan,“Hierarchical overlapped SOM's for pattern classifica-tion”,Neural Networks,IEEE Transactions on,Volume:10Issue:1,Jan.1999:193-196.
[4]周俊临.自适应自组织映射网络在模式识别中的应用研究[D].电子科技大学硕士论文:2005.3:34-39.
作者简介:
王吉盛(1976-)男,云南宣威人,云南民族大学图书馆,中职馆员,硕士,主要从事数字图书馆方面的研究。