劉海
摘要:二手房交易市場比重的增大,使得對于二手房房價(jià)預(yù)測構(gòu)建模型有重要意義。選取合肥市2019年6月至2020年6月的二手房成交記錄作為研究數(shù)據(jù)。針對BP神經(jīng)網(wǎng)絡(luò)模型易陷入局部最優(yōu)和傳統(tǒng)遺傳算法的BP神經(jīng)網(wǎng)絡(luò)收斂速度過慢的不足,建立雙鏈遺傳算法的BP神經(jīng)網(wǎng)絡(luò)模型,對研究數(shù)據(jù)進(jìn)行仿真訓(xùn)練,并檢驗(yàn)了模型的泛化能力。實(shí)驗(yàn)結(jié)果表明使用模型在精度和收斂速度的雙重考量下最優(yōu)。
Abstract: The increasing proportion of the second-hand housing market makes it important to build a model for the prediction of second-hand housing prices. This paper selects the transaction records of second-hand houses in Hefei City from June 2019 to June 2020 as the research data. The BP neural network model is easy to fall into the local optimum and the convergence speed of the traditional Genetic Algorithm is too slow. In this paper, the BP neural network model of Double-chain Genetic Algorithm is established, the research data are simulated and trained, and the generalization ability of the model is tested. The experimental results show that the proposed model is optimal under the consideration of both accuracy and convergence speed.
關(guān)鍵詞:房價(jià)預(yù)測;BP神經(jīng)網(wǎng)絡(luò);遺傳算法;雙鏈遺傳算法
Key words: house price forecast;BP neural network;Genetic Algorithm;Double-chain Genetic Algorithm
中圖分類號:F224? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)29-0003-04
0? 引言
近年來中國房地產(chǎn)行業(yè)發(fā)展迅速,人們買房的需求不斷增加,使得房屋交易由新房交易為主逐步轉(zhuǎn)變成新房和二手房交易“并駕齊驅(qū)”[1]。因此建立模型能夠?qū)Χ址糠績r(jià)進(jìn)行一房一價(jià)預(yù)測在交易中有重要的參考價(jià)值。
在機(jī)器學(xué)習(xí)算法中BP神經(jīng)網(wǎng)絡(luò)由于具有良好的泛化能力、學(xué)習(xí)能力和映射能力,使得其在房價(jià)預(yù)測中有一定的優(yōu)勢[2-4]。然而BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程容易使模型參數(shù)收斂為局部極值,無法達(dá)到最優(yōu),所以將遺傳算法(GA)與BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行組合,補(bǔ)足了神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)[5]。李春生、李霄野[6]等用遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò),對中國2005年至2015年的房價(jià)進(jìn)行研究,發(fā)現(xiàn)改進(jìn)后的算法比單一的BP神經(jīng)網(wǎng)絡(luò)的性能更好。杭曉亞、柳敘豐[7]等運(yùn)用GA-BP模型對青島市的房價(jià)進(jìn)行預(yù)測,效果也十分顯著。但是傳統(tǒng)的遺傳算法存
在收斂過慢或早收斂現(xiàn)象[8],因此使用雙鏈遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)建立模型對合肥市二手房房價(jià)進(jìn)行預(yù)測研究。
1? BP神經(jīng)網(wǎng)絡(luò)和雙鏈遺傳算法
1.1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Network)是一種通過誤差反向傳播進(jìn)行參數(shù)調(diào)優(yōu)的多層前饋神經(jīng)網(wǎng)絡(luò),是運(yùn)用最普遍的神經(jīng)網(wǎng)絡(luò)模型[9]。模型由輸入層、隱含層、輸出層組成,且各層神經(jīng)元之間采用全連接形式[10]。一個(gè)隱含層的BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程由信號的正向傳播和誤差的反向傳播構(gòu)成。正向傳播時(shí),信號由輸入層進(jìn)入網(wǎng)絡(luò),通過隱含層的信號處理后將信號傳入輸出層,當(dāng)輸出層輸出與期望輸出之間的誤差滿足預(yù)設(shè)精度則模型訓(xùn)練終止,否則進(jìn)入誤差反向傳播階段;反向傳播時(shí),通過梯度下降法優(yōu)化目標(biāo)函數(shù)將誤差反向傳向各層,對各層每個(gè)神經(jīng)元的權(quán)值和閾值進(jìn)行調(diào)整[11]。信號的正向傳播和誤差的反向傳播更替進(jìn)行,直到誤差精度達(dá)到預(yù)設(shè)要求或者迭代至預(yù)設(shè)的次數(shù)。
1.2 雙鏈遺傳算法
遺傳算法(Genetic Algorithm,GA)是基于達(dá)爾文進(jìn)化論的思想提出的一種優(yōu)化搜索計(jì)算模型,通過模擬自然界物種在繁衍后代過程中個(gè)體的選擇、基因的交叉、變異,將優(yōu)良基因保留而淘汰劣質(zhì)基因的原則實(shí)現(xiàn)對問題解的優(yōu)化[12]。傳統(tǒng)的遺傳算法在對個(gè)體進(jìn)行編碼時(shí)采用的時(shí)單鏈染色體結(jié)構(gòu),本文使用了一種改進(jìn)算法,引入更符合自然界遺傳規(guī)律的雙鏈染色體結(jié)構(gòu)[13-14],稱之為雙鏈遺傳算法(Double-chain Genetic Algorithm,DGA)。
1.2.1 染色體的雙鏈結(jié)構(gòu)
雙鏈遺傳算法中每個(gè)個(gè)體有兩條染色體,含有兩份相同的遺傳信息,在進(jìn)行遺傳操作時(shí)通過解鏈只對其中的一條染色體進(jìn)行交叉、變異產(chǎn)生子代染色體,使得既能參與遺傳進(jìn)化生成子代基因,又能保留父代潛在的優(yōu)秀基因,使得迭代進(jìn)行的遺傳操作時(shí),增加種群的多樣性,擴(kuò)大了搜索空間[15-16]。
1.2.2 雙鏈染色體遺傳操作
Step1:對需要優(yōu)化的問題進(jìn)行編碼處理;
Step2:初始化種群X0,設(shè)定最大遺傳代數(shù)G,初始遺傳代數(shù)g=0;
Step3:計(jì)算初始種群個(gè)體X0每條鏈適應(yīng)度值;
Step4:對初始種群中個(gè)體進(jìn)行選擇、交叉、變異操作產(chǎn)生新的個(gè)體Xg,此時(shí)種群中新個(gè)體的雙鏈染色體中既包含父代信息基因鏈也包含子代信息基因鏈;
Step5:計(jì)算新個(gè)體Xg中父代鏈和子代鏈的適應(yīng)度值,將適應(yīng)度值更優(yōu)的基因鏈代入下一次遺傳操作中,直到g=G時(shí)結(jié)束。
2? 數(shù)據(jù)來源及數(shù)據(jù)預(yù)處理
2.1 數(shù)據(jù)來源
本文使用的數(shù)據(jù)來自鏈家二手房網(wǎng)(https://hf.lianjia.com),采集2019年6至2020年6月合肥市二手房成交數(shù)據(jù),共得到12581條有效數(shù)據(jù)。其中每條數(shù)據(jù)含有特征變量28個(gè),對特征變量進(jìn)行分類,分為3個(gè)類型,分別為數(shù)值變量、名義變量和序數(shù)變量。具體變量如表1所示。
2.2 原始變量的衍生
在鏈家網(wǎng)上收集到的房屋戶型數(shù)據(jù)的具體形式有2室1廳1廚1衛(wèi)、3室1廳1廚2衛(wèi)等52種形式,若按照處理名義變量的方式來處理此變量,易導(dǎo)致維度災(zāi)難,因此本文根據(jù)房屋戶型變量的數(shù)據(jù)特征,將其衍生出臥室數(shù)量、廚房數(shù)量、客廳數(shù)量、衛(wèi)生間數(shù)量4個(gè)數(shù)值變量。
在鏈家網(wǎng)上收集到的梯戶比例數(shù)據(jù)的具體形式有2梯4戶、1梯2戶、1梯4戶等155種形式,按照處理名義變量的方式來處理也會造成維度災(zāi)難,因此構(gòu)造新的梯戶比例:梯數(shù)與戶數(shù)的比值。
2.3 數(shù)據(jù)的預(yù)處理
原始數(shù)據(jù)中可能含有大量的缺失值和異常值,不利于對數(shù)據(jù)的分析以及后續(xù)的建模,為了提升原始數(shù)據(jù)的質(zhì)量以便后續(xù)工作的進(jìn)行,需要對數(shù)據(jù)進(jìn)行預(yù)處理。本文首先對數(shù)據(jù)的缺失值進(jìn)行處理,表2展示了有缺失值的特征變量的統(tǒng)計(jì)信息。
表2展示了原始數(shù)據(jù)中部分特征變量的缺失信息。其中瀏覽次數(shù)、套內(nèi)面積、供暖方式缺失比例分別為55.32%、75.5%、96.7%,缺失比例過大,因此將這三個(gè)變量直接刪除;有無電梯缺失比例小于1%,因此將缺失的記錄刪除;戶型結(jié)構(gòu)缺失比例為32.2%,采用眾數(shù)插補(bǔ)的方式對缺失值進(jìn)行補(bǔ)充。
對原始數(shù)據(jù)缺失值進(jìn)行處理之后在對數(shù)據(jù)的異常值進(jìn)行處理,本文通過箱線圖、經(jīng)驗(yàn)判斷的方式對異常值進(jìn)行檢測,并刪除異常值。
2.4 數(shù)據(jù)量化處理
接著對名義變量和序數(shù)變量進(jìn)行量化處理。其中名義變量采用one-hot編碼處理。
序數(shù)變量為所在樓層,取值為低、中、高,可分別取值為0、1、2。
為消除數(shù)值變量量綱的影響,將數(shù)值變量進(jìn)行歸一化,歸一化的公式為:
其中xstd為歸一化后的數(shù)據(jù),xmin和xmax分別為每個(gè)數(shù)值變量的最小值與最大值。
至此完成對數(shù)據(jù)的處理,下面將處理后的數(shù)據(jù)用于建模。
3? DGA-BP二手房成交價(jià)格預(yù)測模型
3.1 DGA-BP模型參數(shù)設(shè)置
DGA-BP模型設(shè)置的參數(shù)分為BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置和雙鏈遺傳算法參數(shù)設(shè)置,設(shè)置具體如下:
①確定BP神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)。確定BP神經(jīng)網(wǎng)絡(luò)的隱含層層數(shù)及各層神經(jīng)元個(gè)數(shù)。設(shè)定神經(jīng)網(wǎng)絡(luò)輸入層有54個(gè)神經(jīng)元,1個(gè)隱含層且隱含層神經(jīng)元有109,輸入層有1神經(jīng)元。同時(shí)通過多次調(diào)整確定BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率為0.01,預(yù)設(shè)迭代次數(shù)為30000次。
②設(shè)定適應(yīng)度函數(shù),用于計(jì)算種群中個(gè)體的適應(yīng)度。本文使用測試集誤差本文使用BP神經(jīng)網(wǎng)絡(luò)測試集的測試誤差作為適應(yīng)度函數(shù),適應(yīng)度函數(shù)為:
yi為測試集中數(shù)據(jù)的真實(shí)值,i為數(shù)據(jù)的估計(jì)值。
③設(shè)定最大遺傳代數(shù),初始化種群,隨機(jī)產(chǎn)生一個(gè)初始種群,將種群中每個(gè)個(gè)體通過格雷編碼的方式進(jìn)行編碼,每個(gè)個(gè)體含有兩條信息相同的染色體,都含有神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的全部信息,并計(jì)算初始種群中每個(gè)個(gè)體的每條鏈的適應(yīng)度值。本文設(shè)定種群規(guī)模為50,最大遺傳代數(shù)為200。
④進(jìn)行遺傳操作設(shè)定:
選擇算子:本文采用輪盤賭的方式進(jìn)行選擇操作;
交叉算子:本文采用兩點(diǎn)交叉的方式進(jìn)行交叉操作;
變異操作:本文設(shè)定的變異概率為0.01。
3.2 模型評價(jià)指標(biāo)
①平均絕對誤差(MAE)。平均絕對誤差是期望值與預(yù)測值差值的平均值。計(jì)算公式如下:
其中n為樣本數(shù)目,yi為期望值,i為估計(jì)值。
②均方誤差(MSE)。均方誤差是期望值與預(yù)測值差值平方的平均值。計(jì)算公式為:
其中n為樣本數(shù)目,yi為期望值,i為估計(jì)值。
③可決系數(shù)(R2)??蓻Q系數(shù)是判定模型擬合能力的指標(biāo),可決系數(shù)越大則模型的擬合能力越強(qiáng)。其計(jì)算公式如下:
式中:SSE為回歸平方和;SST為總離差平方和;SSR為殘差平方和,其計(jì)算公式如下:
其中yi為樣本的期望值,yi為樣本的平均值,i為樣本的估計(jì)值。
3.3 實(shí)驗(yàn)結(jié)果
本文使用有效數(shù)據(jù)9817條數(shù)據(jù),按照3:7的比例將數(shù)據(jù)集劃分為測試集與訓(xùn)練集,通過與BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)的GA-BP模型進(jìn)行比較,突出本文使用的DGA-BP模型的優(yōu)越性。
其中圖2表示DGA-BP模型在收斂速度上與GA-BP模型的比較結(jié)果。從圖中可以看出DGA-BP模型的收斂速度遠(yuǎn)遠(yuǎn)快于GA-BP模型,在進(jìn)化到53代時(shí)就達(dá)到最佳收斂,收斂速度遠(yuǎn)遠(yuǎn)快于GA-BP模型。
表3表示了BP模型、GA-BP模型、DGA-BP模型在測試集上的計(jì)算結(jié)果的展示,從表中可以看出在MAE、MSE、R2指標(biāo)的測度中,GA-BP模型和DGA-BP模型的計(jì)算結(jié)果都優(yōu)于BP模型。
從上述敘述中可以總結(jié)得出DGA-BP模型在收斂速度和算法精度的綜合考量中最優(yōu),于此同時(shí)新抓取了合肥市二手房成交數(shù)據(jù)800條,使用DGA-BP模型進(jìn)行擬合,得出其MAE為784、MSE為787652、R2為0.9123。其前100個(gè)數(shù)據(jù)擬合結(jié)果展示如圖3所示,通過新抓取數(shù)據(jù)的驗(yàn)證,可以看出DGA-BP模型能夠?qū)戏适卸址砍山粌r(jià)格進(jìn)行較好的預(yù)測。
4? 結(jié)論
本文通過采集合肥市2019年6月至2020年6月城區(qū)二手房成交記錄數(shù)據(jù),對比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型和GA-BP模型,建立一種能夠?qū)Χ址砍山粌r(jià)格進(jìn)行有效預(yù)測的DGA-BP模型,該模型彌補(bǔ)了BP模型和GA-BP模型的不足,使得在追求模型收斂速度和預(yù)測精度的雙重考量為最優(yōu)選擇。在進(jìn)化到54代時(shí),對測試集進(jìn)行擬合,可決系數(shù)R2為0.9406,對新抓取數(shù)據(jù)的擬合,可決系數(shù)為0.9123。說明模型有較好的泛化能力。
然而在建模時(shí)將搜索到的所有指標(biāo)都投入模型中,沒有考察變量的有效性從而對指標(biāo)進(jìn)行篩選,使得本文建立的模型未能最簡化,也降低了模型的收斂速度。今后對如何在眾多指標(biāo)中篩選中穩(wěn)健的重要指標(biāo)是研究的一個(gè)方向點(diǎn)。
參考文獻(xiàn):
[1]姜沛言,孫聰,劉洪玉.住房市場研究中的樣本城市選擇[J].統(tǒng)計(jì)與決策,2016(05):29-33.
[2]李廣勝,郭歡.基于GM(1,1)模型的南京市房價(jià)預(yù)測研究[J].江漢大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,48(02):10-13.
[3]高文,李富星,牛永潔.基于BP神經(jīng)網(wǎng)絡(luò)對房價(jià)預(yù)測的研究[J].延安大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,37(03):37-40.
[4]王筱欣,高攀.基于BP神經(jīng)網(wǎng)絡(luò)的重慶市房價(jià)驗(yàn)證與預(yù)測[J].重慶理工大學(xué)學(xué)報(bào)(社會科學(xué)),2016,30(09):49-53.
[5]張立毅,劉婷,孫云山,李鏘.遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值盲均衡算法的研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(11):162-164.
[6]李春生,李霄野,張可佳.基于遺傳算法改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)房價(jià)預(yù)測分析[J].計(jì)算機(jī)技術(shù)與發(fā)展,2018,28(08):144-147,151.
[7]杭曉亞,柳敘豐,趙澤昆.基于GA-BP神經(jīng)網(wǎng)絡(luò)的青島房價(jià)預(yù)測[J].四川建筑,2015,35(06):233-236.
[8]PHOLDEE N, BUREERAT, S. Hybrid real-code population-based incremental learning and approximate gradients for multi-objective truss design[J]. Engineering Optimization, 2014, 46(8):1032-1051.
[9]李英冰,陳雨勁,歐陽茜.基于BP神經(jīng)網(wǎng)絡(luò)的武漢市二手房估價(jià)模型研究[J].數(shù)字制造科學(xué),2017,15(Z1):66-70.
[10]嚴(yán)旭,李思源,張征.基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)在城市用水量預(yù)測中的應(yīng)用[J].計(jì)算機(jī)科學(xué),2016,43(S2):547-550.
[11]任謝楠.基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化研究及MATLAB仿真[D].天津師范大學(xué),2014.
[12]李巖,袁弘宇,于佳喬,張更偉,劉克平.遺傳算法在優(yōu)化問題中的應(yīng)用綜述[J].山東工業(yè)技術(shù),2019(12):242-243,180.
[13]劉金山,廖文和,郭宇.基于雙鏈遺傳算法的網(wǎng)絡(luò)化制造資源優(yōu)化配置[J].機(jī)械工程學(xué)報(bào),2008(02):189-195.
[14]Harsh Bhasin, Gitanshu Behal, Nimish Aggarwal, Raj Kumar Saini, Shivani Choudhary. On the applicability of diploid genetic algorithms in dynamic environments[J]. Soft Computing, 2016, 20(9).
[15]吳家宏,雷毅.基于雙螺旋染色體和分層結(jié)構(gòu)的遺傳算法[J].計(jì)算機(jī)集成制造系統(tǒng),2005(12):1743-1746.
[16]謝承旺,王志杰,魏波,徐君,汪慎文.一種雙鏈結(jié)構(gòu)的多目標(biāo)進(jìn)化算法DCMOEA[J].控制與決策,2015,30(04):577-584.