李春生,李霄野,張可佳
(東北石油大學 計算機與信息技術學院,黑龍江 大慶 163318)
近年來,國內房地產行業高速發展,房價的走勢受到越來越多人的關注。研究房價的影響因素,并對未來房價進行預測,對于國家經濟發展和改善民生具有重要的意義[1]。
國家每年都有相關的年鑒數據,如何從大量且無規律的房地產統計數據中挖掘出房價的走向,成為當今房地產行業的研究熱點。文中提出了一種基于遺傳算法改進的BP神經網絡房價預測模型,以2005-2012年中國統計年鑒數據為基礎,分析預測了2013年、2014年、2015年房價,并與相關真實數據進行比較,從而進行誤差分析。
BP(back propagation)神經網絡也稱反向傳播網絡,是一種按誤差逆傳播算法訓練的多層前饋網絡[2],通常具有3層或3層以上結構。圖1是一種簡單的3層BP神經網絡拓撲結構,包括輸入層、輸出層和隱含層,各層神經元與下層所有神經元連接,而同層各神經元之間無連接。圖1中x1、x2、x3為輸入信號值,y1、y2、y3為輸出信號值。
BP神經網絡的基本原理是采用梯度下降法,通過反向傳播不斷調整網絡的權值和閾值,直到誤差減小到最低[3]。其訓練過程實質上是對各連接權值的動態調整,輸入信號的正向傳播與誤差的反向傳播過程循環進行,一直到輸出的均方誤差達到要求的標準。

圖1 3層BP神經網絡拓撲結構
目標函數定義為:
(1)

BP神經網絡的訓練過程如下:
(1)隨機數初始化誤差函數:假設網絡結構為一個含有n個神經元的輸入層,含有l個節點數的隱含層,含有m個節點數的輸出層。輸入層與隱含層之間的連接權值為wij,隱含層與輸出層之間的連接權值為wjk,隱含層各神經元的閾值為a={a1,a2,…,al},輸出層各神經元的閾值為b={b1,b2,…,bm}。
(2)計算隱含層輸出hj。
(2)
其中,f為隱含層激勵函數;xi為第i個輸入節點變量。
(3)計算輸出層函數vk。
(3)
(4)修正輸出層連接權值。
wij(t+1)=wij(t)+η[(1-mc)D(t)+
mc*D(t-1)],i=1,2,…,n
(4)
wjk(t+1)=wjk(t)+η[(1-mc)D'(t)+
mc*D'(t-1)]
(5)
其中,學習速率η>0,D(t)=-?J/?wij(t),D'(t)=-?J/?wjk(t),0 動量因子mc的引入修正了神經元的權值,使其具有慣性和震蕩能力,并根據反向傳播法來產生新的權值變化,進而提高收斂速度[4]。 (5)修正隱藏層連接權值:根據網絡實際輸出vk和期望輸出yk之間的誤差更新aj,bk。 (6) bk(t+1)=bk(t)+(yk-vk) (7) (6)計算全局誤差,判斷迭代是否結束,若未結束,返回步驟2。 實驗數據的選擇需要盡可能準確地反映房價的變化規律,在該研究中,選取影響中國房價的7個主要影響因素:商品房平均銷售價格、住宅、居民消費水平、城鎮單位就業人員平均工資、城鎮居民可支配收入、國內生產總值GDP和城鎮單位就業人員數。數據來源于《2016年中國統計年鑒》中2005-2015年數據,具體如表1所示。 表1 2005年-2015年中國房價及其相關影響因素數據 原始數據由于各項指標的數量級差別較大且量綱不同,為提高網絡的訓練效率,采用Matlab的歸一化函數premnmx,將實驗數據的輸入和輸出數據歸一化,把數據變換到[-1,1]的范圍之間[5]。假設原始數據的輸入樣本為i,輸出樣本為o,用premnmx函數分別求出輸入輸出樣本的最大值maxi和maxo,最小值mini和mino,利用式8和式9求出歸一化處理后的輸入樣本Pn和輸出樣本Tn: (8) (9) 在BP網絡訓練結束后,對于得到的歸一化數據,需要用postmnmx函數對其進行反歸一化處理,還原成正常值[6]。 選取歸一化處理后的中國房價樣本數據,前兩年數據作為輸入向量,兩年后的第一年數據作為目標輸出,如用2005、2006年數據預測2007年房價,用2006、2007年數據預測2008年房價,以此類推,共得出9組數據。將2005-2012年數據作為訓練樣本, 2013-2015年數據作為測試驗證樣本。選定動量因子mc=0.8,最大訓練步數8 000次,誤差設定值0.001,建立仿真模型。 (10) 其中,Hn為隱含層節點數;In為輸入層節點數;Ot為輸出層節點數;α為1~10之間的整數。 根據前面分析,輸入層神經元個數為9,輸出層神經元個數為1,經過計算后得出隱含層神經元個數Hn范圍大概在4~13之間;而隱含層神經元個數的數值過大或過小都會導致網絡誤差震蕩或收斂時間長。綜合這兩個因素,最終選取隱含層神經元個數Hn為8。 BP神經網絡的各隱含層節點的激活函數選取Sigmoid函數,輸出層節點的激活函數采用對S型Sigmoid函數[7]。 實驗采用Matlab2011b中的神經網絡工具箱實現BP神經網絡模型的構建、訓練和仿真,將2005-2012年各房價指標數據輸入到設計好的BP神經網絡,得到網絡的輸出值,與實際值進行比較,再不斷調整權值和閾值,直到計算的誤差值達到要求的范圍。再將2013-2015年房價數據作為檢驗樣本輸入,以此判斷實驗結果,對結果進行還原和分析,得到實際值。預測值與真實值的對比如表2所示,可知訓練的最低準確度為96.89%。 表2 BP神經網絡模型的房價預測結果 遺傳算法(GA)是受達爾文進化論的啟發,借鑒生物進化過程而提出的一種啟發式搜索算法。它將要解決的問題模擬成一個生物進化的過程,通過種群之間進行選擇、交叉和變異等操作,逐步淘汰適應度函數值低的個體,增加適應度函數值高的個體[8]。經過多代循環,最終產生出符合條件的個體。BP神經網絡在逼近預測值過程中耗時多,導致網絡收斂速度慢,且容易陷入局部最優。而遺傳算法則具有高容錯性、并行、全局擇優的特點[9]。因此,文中利用遺傳算法來優化BP神經網絡大的初始權值和閾值,形成GA-BP神經網絡,提高BP神經網絡的收斂速度,降低BP算法陷入局部最優的可能性。 為了對比BP神經網絡與GA-BP神經網絡,在訓練GA-BP神經網絡時,參數選取與之前的BP神經網絡一致。 (1)種群初始化。 將網絡中所有的權值和閾值進行實數編碼,每個個體作為一組染色體[10],染色體形式為: w11,w12,…,wij,a1,a2,…,al,w11,w12,…,wjk,b1,b2,…,bm 其中,wij為輸入層與隱含層的連接權值;a={a1,a2,…,al}為隱含層閾值;wjk為隱含層與輸出層的連接權值;b={b1,b2,…,bm}為輸出層閾值。 遺傳算法的全局搜索性能很大程度上受種群數量的影響,種群的數量要根據具體問題來選取[11]。因此,此次實驗初始種群的規模為100。 (2)選擇適應度函數。 BP神經網絡中的誤差絕對值和越小越好,而在遺傳算法中,適應度值越大越好。因此,以BP神經網絡目標函數的倒數作為適應度函數,即: (11) (3)基因選擇。 采用輪盤賭法對種群中的個體進行選擇操作,選擇適應度高的個體遺傳到下一代[12],每個個體x被選擇的概率px為: (12) 其中,k為種群個體的數目;F(x)為個體x的適應度值。 (4)交叉與變異操作。 交叉運算是遺傳算法中產生新個體的主要操作過程,目的是通過使用交叉算子從全局的角度改善個體編碼結構[13]。變異操作是對群體中的個體串的某些基因座上的基因值作變動,可以產生新的個體,使遺傳算法具有局部的隨機搜索能力[14]。 (5)循環操作。 當個體的適應度達到給定的閾值,或者個體和群體的適應度不再上升時,算法的迭代過程收斂、算法結束。否則,返回到第2步執行循環。將遺傳算法優化后的連接權值和閾值作為BP神經網絡的初始權值和閾值,進行GA-BP神經網絡訓練,直到滿足誤差要求或達到最大訓練次數為止[15]。 將改進的GA-BP神經網絡模型進行訓練,對2013-2015年3組測試驗證樣本進行預測。利用仿真實驗得出的預測結果與實際房價進行比較,如表3所示。對比得出,GA-BP神經網絡模型對2013-2015年房價預測的最低準確度為99.20%。 表3 遺傳算法改進BP神經網絡模型的房價預測結果 經過BP神經網絡模型與GA-BP神經網絡模型的實驗結果對比,可以得出各房價預測模型的誤差統計,如表4所示。BP神經網絡和GA-BP神經網絡的誤差曲線對比如圖2所示。 表4 BP神經網絡與GA-BP神經網絡的房價預測誤差對比 % 由表4得出,傳統BP神經網絡的房價預測模型的誤差遠高于GA-BP神經模型;從圖2可以看出,當最大訓練步數為8 000次,目標誤差設定為0.001時,GA-BP神經網絡經過的訓練次數明顯少于BP神經網絡,且誤差曲線趨勢較為平緩,更加貼近目標曲線,收斂速度明顯加快。由此可得出,遺傳算法改進后的GA-BP神經網絡的預測值更接近于真實值。 圖2 BP神經網絡模型(上)與GA-BP神經網絡模型(下)誤差曲線對比 利用遺傳算法的全局搜索能力找出BP神經網絡的最優初始權值和閾值,進而使BP神經網絡具有更快的收斂速度和更高的精度。采用2005-2012年中國房價及其主要影響因素作為實驗數據,分別用BP神經網絡和GA-BP神經網絡對2013-2015年房價進行了預測。結果表明,GA-BP神經網絡具有預測精度高、收斂速度快的特點,同時避免了陷入局部最優的缺陷,可以作為房價預測的一種可靠的方法,同時也可以嘗試作為其他類型數據的預測方法。2 基于傳統BP神經網絡的房價預測模型
2.1 實驗數據準備及數據預處理

2.2 建立訓練模型

2.3 BP網絡的模型訓練和結果

3 遺傳算法改進的BP神經網絡模型
3.1 遺傳算法改進BP神經網絡的步驟

3.2 改進遺傳算法的BP神經網絡模型的訓練結果

4 實驗結果對比


5 結束語