


摘要:基于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-)男,云南宣威人,云南民族大學圖書館,中職館員,碩士,主要從事數字圖書館方面的研究。