楊海濤,孫慶輝,呂建明,阮鎮(zhèn)江,夏蘭亭,徐 飛
1(廣東省建設信息中心,廣州 510055)
2(華南理工大學 計算機科學與工程學院,廣州 510006)
省域地理范圍房產權利登記和交易活動中所形成的歷年數(shù)據(jù)記錄是反映我國經濟社會活動的重要大數(shù)據(jù)基礎資源.我們在承擔廣東省應用型科技研發(fā)專項資金重點項目“省域房地產交易數(shù)據(jù)資源云同步及大數(shù)據(jù)規(guī)?;瘧谩边^程中,獲得了海量的廣東省域房地產交易法定業(yè)務實錄大數(shù)據(jù)資源.然而,這些過往業(yè)務所產生的歷史和現(xiàn)狀大數(shù)據(jù)的直接使用,只能發(fā)揮其檔案查詢、數(shù)據(jù)統(tǒng)計和現(xiàn)態(tài)監(jiān)控的數(shù)據(jù)支持作用,對于省級房地產主管部門進行房地產市場預警預報,開展住房和房地產管理政策、產業(yè)發(fā)展和住房建設規(guī)劃的研究和制定等并無前瞻性的幫助.就我國房地產大數(shù)據(jù)應用意義而言,省域區(qū)劃是我國社會治理和政治經濟特色的最大綜合管治(包括監(jiān)管服務與行業(yè)調控)單元.特別是,廣東省作為我國第一經濟大省,2019年全省實現(xiàn)地區(qū)生產總值107 671.07 億元(僅低于世界排行第12 名的韓國),其中全年新增房地產開發(fā)投資15 852.16 億元[1],加上城鎮(zhèn)與房產為依托的各行各業(yè)的經濟產值則總量更為巨大.因此在宏觀層面研究廣東省域房產大數(shù)據(jù)并深化其應用具有重要的現(xiàn)實意義.本文擬通過建立基于人工智能的系統(tǒng)平臺,全程實現(xiàn)對既有積累的海量房產法定業(yè)務大數(shù)據(jù)資源做可視化呈現(xiàn)并面向未來進行建模預測,以探索實現(xiàn)直觀地顯示預示廣東省域城鄉(xiāng)建設、城鎮(zhèn)發(fā)展的某些重要指標(如房產或房屋建筑面積和套數(shù))的時空演化過程,為研究廣東省域城鄉(xiāng)建設、區(qū)劃經濟的布局趨勢,科學有效地輔助支持各相關城市開發(fā)建設管理決策和省域房地產市場宏觀調控等工作服務.
在“十三五”期間,我們一直從事廣東省域房產大數(shù)據(jù)相關工作,具備了進一步開展房產大數(shù)據(jù)深度智慧應用的基礎.
1.2.1 房產大數(shù)據(jù)基礎平臺及數(shù)據(jù)資源開發(fā)建設
建立“(房產)行業(yè)數(shù)據(jù)云同步樞紐平臺系統(tǒng)”:實現(xiàn)了可覆蓋全省各市房地產交易登記數(shù)據(jù)的同步歸集.提供了包括同步系統(tǒng)節(jié)點規(guī)劃管理、安裝配置,分塊流水線處理、單和雙向同步(全量/增量,樂觀/謹慎校驗策略,同步塊及分組調適)、并發(fā)控制、指標映射、多屬性主鍵歸一、敏感字段Hash,以及同步正確性保障等較齊全的同步樞紐平臺功能.
建立“HBDP (housing big data platform)省房屋大數(shù)據(jù)計算集群及作業(yè)調度系統(tǒng)”[2]:集群采用Hadoop分布式文件存儲架構,選用Hive 管理元數(shù)據(jù),供用戶利用Spark SQL 進行房屋大數(shù)據(jù)分布式交互分析,參見圖1.
圖1 HBDP 省房屋大數(shù)據(jù)計算集群及作業(yè)調度系統(tǒng)
歸集省域房產交易登記數(shù)據(jù)資源:形成全省房產交易與產權管理數(shù)據(jù)大字典1 137 頁(省和各市卷合編),入庫各市4 108 個原始表、92 871 列字段、9.07 億條記錄,約203.7 GB 數(shù)據(jù)量.析出房產單元約1 551.4 萬套(其中,住宅831.8 萬套,有房屋建成年份的約1 200 萬套)、產權人827 萬.梳理8 市網(wǎng)簽和預售系統(tǒng)樓盤表共935.4 萬戶和22 790 個房地產項目的數(shù)據(jù).
1.2.2 海量地址關聯(lián)數(shù)據(jù)的熱力圖渲染優(yōu)化研發(fā)
地址關聯(lián)數(shù)據(jù)的地理分布熱力圖呈現(xiàn)通常是依托基于位置服務 (location-based service,LBS)公共平臺進行二次開發(fā)實現(xiàn).現(xiàn)有方案是將所有地址關聯(lián)數(shù)據(jù)在本地進行整理后按照固定的格式全部上傳至LBS服務提供商的遠程服務器,由遠程服務器處理后返回本地進行呈現(xiàn).但是,在處理海量數(shù)據(jù)時,該方案由于互聯(lián)網(wǎng)帶寬和PC 瀏覽器處理能力的限制,實際響應慢,用戶體驗差.對此,我們通過實踐探索,創(chuàng)造性實現(xiàn)了“一種地址關聯(lián)數(shù)據(jù)處理方法、用戶終端和服務器”[3],它依據(jù)用戶選擇的需求參數(shù)和應用的地圖屬性,將輸入的海量地址關聯(lián)數(shù)據(jù)劃分成即時渲染(第1 組)和延緩渲染(第2 組)兩組數(shù)據(jù),使得第1 組的數(shù)據(jù)能迅速在客戶端呈現(xiàn),同時第2 組數(shù)據(jù)的落圖渲染計算在本地服務器(集群)同步進行.這種前后兩組計算結合能顯著地提高海量地址關聯(lián)數(shù)據(jù)落圖渲染呈現(xiàn)的響應速度,改善了相關應用的用戶體驗,解決了一般PC 端網(wǎng)頁瀏覽器在交互式播放海量地址關聯(lián)數(shù)據(jù)渲染所普遍遇到的顯示滯卡問題.具體參見圖2.
圖2 海量地址關聯(lián)數(shù)據(jù)渲染優(yōu)化處理框圖
1.3.1 省域房產大數(shù)據(jù)熱力圖系統(tǒng)總體構成系統(tǒng)總體由兩大部分構成,參見圖3.
圖3 省域房產大數(shù)據(jù)熱力圖系統(tǒng)總體構成
第一部分是基礎設施部分,它由負責數(shù)據(jù)歸集和專題數(shù)據(jù)生產的系統(tǒng)構成:首先由“(房產)行業(yè)數(shù)據(jù)云同步樞紐平臺系統(tǒng)”同步歸集廣東省域各地城市源數(shù)據(jù),然后,經由“HBDP 省房屋大數(shù)據(jù)計算集群及作業(yè)調度系統(tǒng)”計算生成適用于熱力圖渲染播放的熱力值專題大數(shù)據(jù)對象.本文術語“房屋”與“房產”可相互通用,具體沿繼使用習慣.
第二部分是熱力圖播放和預報部分,它由“熱力圖播放系統(tǒng)”和“人工智能預測系統(tǒng)”構成.其中,“人工智能預測系統(tǒng)”為本文研發(fā)的重點,它提供人工智能建模預測功能,負責使用已有的熱力值數(shù)據(jù)訓練模型并產生預測輸出.
1.3.2 關鍵研發(fā)任務—人工智能預測系統(tǒng)
在前述總體框架,待研發(fā)實現(xiàn)的是“人工智能預測系統(tǒng)”.而該系統(tǒng)的關鍵在于如何有效地實現(xiàn)“省域房產大數(shù)據(jù)熱力值預測計算”的核心課題任務上.基于我們所能掌握的廣東省域房產大數(shù)據(jù)資源限于2018年之前的原始數(shù)據(jù),我們將本文主要課題任務的實質性研發(fā)內容具體地明確為:如何利用人工智能算法對既獲得的已知的廣東省各市截至2017年的房產登記和交易業(yè)務等歷史記錄的指標數(shù)據(jù)(房產套數(shù)和面積)的熱力值,建立可重復使用的時序預測模型系統(tǒng),特別是,近期實現(xiàn)預測后來2018–2023年指標數(shù)據(jù)熱力值;據(jù)此,為將來具備條件(獲得后繼年份數(shù)據(jù)資源)時,滾動地推廣應用至更多的未知數(shù)據(jù)年份.
針對上節(jié)提出的主要課題任務,我們首先從計算機系統(tǒng)開發(fā)建設與應用的角度出發(fā),細化和明確所擬要研究解決的實質技術問題及其技術路線.具體地,本文課題的核心研發(fā)內容主要包括以下3 方面:1)關鍵指標及其計算問題的歸結;2)總體計算處理框架設計;3)時序預測模型設計與實現(xiàn).
(1)房產熱力值的定義
所謂熱力圖就是關于地理區(qū)域單元上的計算指標的值即“熱力值”的地圖渲染.具體地,本課題所研究的房產熱力值是關于一個地理區(qū)域內的房產指標(套數(shù)和面積)的統(tǒng)計量的數(shù)值.
(2)時序數(shù)據(jù)計算任務定義
本文處理的房產指標熱力值是具有時間屬性的,從而可構成時序序列.相應的時序數(shù)據(jù)計算任務包括:一是由原始房產業(yè)務記錄導出可直接計算房產熱力值的房產單元記錄;二是由已知的一系列年份的房產單元記錄數(shù)據(jù)集計算出對應地理區(qū)域的房產指標(套數(shù)和面積)的熱力值(可直接在百度地圖上標識渲染成熱力圖);三對地理區(qū)域后繼年份的未知房產指標熱力值進行預測計算.為簡化起見,只對套數(shù)和面積兩個基本指標進行預測.
鑒于房產數(shù)據(jù)的變化規(guī)模與頻度的實際情況,本文所考慮的時序單位明確為“年份”.
原始房產業(yè)務記錄化為如下房產單元記錄格式:
<房產單元>(經度,緯度,建成年份,套數(shù)|面積,城市)
其中,經度和緯度坐標是用房產單元坐落地址調用“百度開放平臺”Web 服務API的地理編碼服務(又名Geocoder)[4]獲得.例如,以房產單元坐落“廣州市越秀區(qū)豪賢路102 號”調用百度Geocoder,可獲得經緯度坐標{113.281 270 035 554 5,23.136 617 015 096 8}.
我們所討論的房產熱力值是關于具體地理區(qū)域內的所有<房產單元>個數(shù)(稱作“套數(shù)”)或面積的統(tǒng)計值的數(shù)量指標.欲將房產熱力值落在百度地圖上渲染顯示,就必須將其與地理區(qū)域的坐標相關聯(lián).為簡單起見,我們采取地理區(qū)域中心點的經度和緯度來標識地理區(qū)域,從而有如下的房產指標熱力屬性關系:
<區(qū)域房產熱力>(經度,緯度,年份,熱力值,城市)
其中,“熱力值”是該(經度,緯度)所標識區(qū)域截止于“年份”的期末實有房產單元的“套數(shù)|面積”統(tǒng)計數(shù)(假設房產房屋建成后一直存在,則它代表歷年直至該“年份”期末的累計數(shù),以下均采用此假設).
(3)時序計算區(qū)域的網(wǎng)格化處理
為確定最基本的地理區(qū)域單元,也為了細化計算處理、減少隨機噪音影響,我們將廣東省全域(東沙群島除外)分成M×M個矩形區(qū)域(M>0),稱作“M分網(wǎng)格”.每個網(wǎng)格區(qū)域可用經其左下角點的網(wǎng)格線的行號和列號來唯一標識:網(wǎng)格(x,y)代表以第x列、第y行(0≤x<M,0≤y<M)網(wǎng)格線的交點為其左下角的矩形網(wǎng)格區(qū)域.
網(wǎng)格 (x,y)區(qū)域的年房產熱力值(套數(shù)|面積)按房產房屋建成年份排列構成如下時序:
1)網(wǎng)格(x,y)房產套數(shù)累計時序:
Tx,y={Tx,y,1,Tx,y,2,···}
其中,Tx,y,i為第i年(x,y)區(qū)域累計房產套數(shù).
2)網(wǎng)格(x,y)房產套數(shù)增量時序:
?Tx,y={?Tx,y,1,?Tx,y,2,···}
其中,?Tx,y,i為第i年(x,y)區(qū)域新增房產套數(shù),可由下式計算:
?Tx,y,i=Tx,y,i?Tx,y,i?1
3)網(wǎng)格(x,y)房產面積累計時序:
Ax,y={Ax,y,1,Ax,y,2,···}
其中,Ax,y,i表示第i年(x,y)區(qū)域累計房產面積.
4)網(wǎng)格(x,y)房產面積增量時序:
?Ax,y={?Ax,y,1,?Ax,y,2,···}
其中,?Ax,y,i表示第i年(x,y)區(qū)域新增房產面積,可由下式導出:
?Ax,y,i=Ax,y,i?Ax,y,i?1
進一步,在更大的尺度上,對于某個城市c,我們得到市級房產熱力值統(tǒng)計值序列如下:
1)市級房產套數(shù)累計時序:
Tc={Tc1,Tc2,···}
其中,Tic表示第i年城市c累計房產套數(shù).
2)市級房產套數(shù)增量時序:
?Tc={?Tc1,?Tc2,···}
其中,?Tic表示第i年城市c新增房產套數(shù),可由下式導出:
?Tci=Tci?Tci?1
3)市級房產面積累計時序:
Ac={Ac1,Ac2,···}
其中,Aci表示第i年,城市c累計房產面積.
4)市級房產面積增量時序:
?Ac={?Ac1,?Ac2,···}
其中,?Aci表示第i年城市c新增房產面積,可由下式導出:
?Aci=Aci?Aci?1
本課題的基本預測計算任務可歸結為兩個:
預測1:給定網(wǎng)格區(qū)域(x,y)的房產套數(shù)n年時序數(shù)據(jù){Tx,y,1,Tx,y,2,···,Tx,y,n},預測下一年(第n+1年)該區(qū)域累計房產套數(shù)Tx,y,n+1.
預測2:給定網(wǎng)格區(qū)域(x,y)的房產面積n年時序數(shù)據(jù){Ax,y,1,Ax,y,2,···,Ax,y,n},預測下一年(第n+1年)該區(qū)域累計房產面積Ax,y,n+1.
顯見,通過逐年向前移動時序數(shù)據(jù),就可實現(xiàn):利用過去一段時間房產數(shù)據(jù)的變化,對未來一段時間內的房產數(shù)據(jù)進行預測.
根據(jù)上節(jié)的分析,課題的基本科學技術問題在于建立時序預測模型:利用過去一段時間內某事件(房屋建成事件)的時間特征來預測未來一段時間內該事件的特征(房產套數(shù)或面積)—這種時間序列數(shù)據(jù)預測.
鑒于房產套數(shù)和建筑面積的預測的建模都是類同的,本文僅需闡述房產套數(shù)的預測模型.
實踐上,我們先直接對廣東省域(由于東沙群島無房地產項目,本文研究的廣東省域不包括東沙群島)各網(wǎng)格單元應用深度神經網(wǎng)絡建立預測模型.結果所產生的預測誤差普遍過大,且無法調優(yōu)模型將誤差降到合理程度.這是因為,全省各市房地產源數(shù)據(jù)集的房產熱力指標值的地理空間和時間區(qū)間的分布相當不均勻,并且在時間和空間上存在不同程度的數(shù)據(jù)樣本不足.因此,我們提出“網(wǎng)格累計量預測+市域增量預測修正”的總體預測建模計算框架.具體工作思路如下.
1)對廣東省域地圖做M分網(wǎng)格,將其中的任意網(wǎng)格看作獨立單元,運用基于深度神經網(wǎng)絡的預測模型對其房產套數(shù)時序數(shù)據(jù)進行獨立預測,獲得其下一時序點套數(shù)的預測值.
2)考慮到實際上同一城市的不同區(qū)域間受共同的城市發(fā)展內在關系影響,彼此間應存在某些關聯(lián)或約束,我們在模型中進一步引入同城數(shù)據(jù)約束修正來提高預測結果的合理性和準確性.
總體處理框架如圖4所示.具體過程如下.
圖4 房產套數(shù)預測總體處理框架
1)市域網(wǎng)格預測
將同屬一個城市的所有網(wǎng)格區(qū)域篩濾出來,然后將每個網(wǎng)格區(qū)域 (x,y)的房產累計套數(shù)年份時序{Tx,y,1,Tx,y,2,···,Tx,y,n}輸入到基于深度神經網(wǎng)絡的網(wǎng)格房產套數(shù)累計預測模型.該預測模型輸出下一個時序年份該區(qū)域房產套數(shù)累計Tx,y,n+1的預測值.根據(jù),計算出對應的房產套數(shù)增量的預測值:
對同屬城市c的每個區(qū)域(x,y)的房產套數(shù)增量預測值進行歸一化,得到:
其中,?c表示所有屬于城市c的網(wǎng)格區(qū)域(u,v)的集合.
2)市域全局修正
由此修正后的房產套數(shù)增量的預測值,得到該網(wǎng)格區(qū)域的累計房產套數(shù)最終預測值:
實際操作上,整個工作路線包括如下基本步驟:
1)數(shù)據(jù)預處理:對原始數(shù)據(jù)進行清洗、網(wǎng)格映射、序列提取、數(shù)據(jù)規(guī)范化,獲得網(wǎng)格區(qū)域房產套數(shù)累計時序、網(wǎng)格區(qū)域房產面積累計時序、市級房產套數(shù)增量時序、市級房產面積增量時序.
2)使用網(wǎng)格區(qū)域房產套數(shù)累計時序,訓練圖4中的網(wǎng)格房產套數(shù)累計預測模型[5,6].
3)使用市級房產套數(shù)增量時序,訓練圖4中的市級房產套數(shù)增量預測模型.
4)使用網(wǎng)格區(qū)域房產面積累計時序,訓練網(wǎng)格房產面積累計預測模型(與套數(shù)預測模型類似,省略).
5)使用市級房產面積增量時序,訓練市級房產面積增量預測模型(與套數(shù)預測模型類似,省略).
6)應用圖4所示的預測過程對2018–2023年的房產套數(shù)進行預測,輸出規(guī)定格式的數(shù)據(jù).
7)對2018–2023年的房產面積進行預測,輸出規(guī)定格式的數(shù)據(jù)(與步驟6)類似,省略).
訓練數(shù)據(jù)資源限于2018年之前的原始數(shù)據(jù).
前節(jié)的總體處理框架設計關鍵在于圖4中的網(wǎng)格房產累計套數(shù)(或面積)預測模型和市級房產套數(shù)(或面積)增量預測模型設計—它們都是基于深度神經網(wǎng)絡的時序預測模型設計.眾所周知,在人工智能深度學習算法中[7,8],正如卷積神經網(wǎng)絡主要用于圖像數(shù)據(jù)建模,循環(huán)神經網(wǎng)絡(recurrent neural networks,RNN)主要用于時序數(shù)據(jù)建模.但是,傳統(tǒng)的RNN 在長期依賴方面存在梯度消失的問題,也就是會遺忘時間序列距離比較遠的信息.1997年,Hochreiter和Schmidhuber提出了傳統(tǒng)RNN的一種變形:長短時記憶網(wǎng)絡(long short term memory,LSTM)[9].LSTM 通過引入3 種門限(遺忘門限、輸入門限和輸出門限)而獲得學習長期依賴的能力,即具有學習時間序列距離較遠信息的能力.盡管LSTM 相對于RNN 更加復雜,但因為它可以適應更長的時間序列數(shù)據(jù),我們用LSTM對已知的過往年份房產熱力數(shù)據(jù)進行時序特征抽取,并對這些特征進行時序預測[10],然后用全連接層(fully connected layers,FC)[11]神經網(wǎng)絡再將時序預測得到的特征數(shù)據(jù)回歸映射成房產指標熱力數(shù)據(jù).
圖4中的網(wǎng)格房產累計套數(shù)(或面積)預測模型和市級房產套數(shù)(或面積)增量預測模型均采用如圖5所示的(LSTM→FC)房產數(shù)據(jù)時序預測模型設計:先用LSTM 對輸入的n年份時序數(shù)據(jù){X1,X2,···,Xn}進行特征抽取和預測,輸出該時序數(shù)據(jù)隱含的時序特征的抽象表達向量的預測值(不直接是房產指標熱力值本身);然后,將LSTM 模型的輸出向量作為后面FC的輸入,經由FC 做非線性變換后,輸出下一年份(第n+1年)的房產熱力值Xn+1的預測值.
圖5 房產數(shù)據(jù)時序預測模型
(1)技術選型
我們選擇在谷歌公司的TensorFlow 開源機器學習平臺上實現(xiàn)預測建模[12].在TensorFlow 平臺上,我們使用 Keras[13]這種直觀的高階API 來構建和訓練機器學習模型,這樣能夠快速迭代模型并輕松地調試模型.
鑒于為省域房產大數(shù)據(jù)熱力圖預測而構建和訓練機器學習模型需要頻繁地進行大規(guī)模CPU-heavy的張量數(shù)值計算,一般CPU 難以承擔.于是,我們配置強力的加速計算協(xié)處理器,即引入具有比CPU 更加強大密集數(shù)據(jù)計算能力的GPU 來參加計算.但是,傳統(tǒng)的訪問GPU 模式(如依賴圖像API 接口來實現(xiàn)GPU 訪問)無法將GPU 強大的密集數(shù)據(jù)計算能力用于圖像處理之外的用途.NVIDIA 發(fā)明的CUDA (compute unified device architecture)編程模型采用了一種全新的計算體系結構來使用GPU 硬件資源,可讓軟件開發(fā)者在應用程序中能充分地利用CPU和GPU 各自的優(yōu)點,特別是充分利用GPU 強大的計算能力加速大規(guī)模密集數(shù)據(jù)計算[14].NVIDIA 已將CUDA 實現(xiàn)成一套實用編程環(huán)境,并且可通過對應的SDK 集成到更高級別的機器學習框架中.其中,cuDNN 就是CUDA的一個專門用于TensorFlow 神經網(wǎng)絡運算加速的SDK[15].因此,我們采用TensorFlow+CUDA+cuDNN的開發(fā)環(huán)境來運行調試深度神經網(wǎng)絡.
(2)算法部署
TensorFlow 平臺選擇Python 作為表達和控制模型訓練的語言.Python 是數(shù)據(jù)科學家和機器學習專家用的最舒適的高級語言,籍用其NumPy[16]庫的豐富計算資源,可以很容易地在Python 中進行各種海量數(shù)據(jù)高性能預處理計算,然后輸送給TensorFlow 進行真正CPU-heavy 計算.所以我們采用Python 語言進行編程.具體環(huán)境部署上,使用Anaconda 安裝和管理Python相關包—Anaconda 提供最便捷的方式來使用Python進行數(shù)據(jù)科學計算和機器學習[17].算法部署主要包括模型訓練和生成數(shù)據(jù)兩部分.
模型訓練部分的目錄部署:data 文件夾:存放預處理后的數(shù)據(jù),model 文件夾:存放訓練好的模型;Python可執(zhí)行代碼文件“網(wǎng)格累計(套數(shù)|面積)模型訓練.py”用于網(wǎng)格累計(套數(shù)|面積)模型的訓練,“登記單市模型訓練.py”與“網(wǎng)簽單市模型訓練.py”分別用于對單個城市的登記與網(wǎng)簽數(shù)據(jù)增量模型進行訓練.
生成數(shù)據(jù)部分的目錄部署:Python 可執(zhí)行代碼文件“登記面積數(shù)據(jù)生成.py”“登記套數(shù)數(shù)據(jù)生成.py”“網(wǎng)簽面積數(shù)據(jù)生成.py”和“網(wǎng)簽套數(shù)數(shù)據(jù)生成.py”分別對登記數(shù)據(jù)面積、登記數(shù)據(jù)套數(shù)、網(wǎng)簽數(shù)據(jù)面積、網(wǎng)簽數(shù)據(jù)套數(shù)進行預測,并會將結果分別保存在dj_area(登記面積)、dj_count (登記套數(shù))、wq_area (網(wǎng)簽面積)、wq_count (網(wǎng)簽套數(shù))目錄下.
(3)訓練預測模型
訓練好的模型存放在model 文件夾下.如果一個市的數(shù)據(jù)發(fā)生大幅變動,則需重新訓練.訓練命令語法格式為:
Python+運行腳本名稱+argv1+argv2+argv3
其中,argv1 代表預處理后的數(shù)據(jù)集名,argv2 代表城市名稱,argv3 代表熱力指標名稱(套數(shù)或面積).若訓練過程誤差不下降,則需重新運行腳本—可能是模型參數(shù)隨機初始化或者訓練樣本過少造成的.
(4)生成預測數(shù)據(jù)
在數(shù)據(jù)生成代碼所在目錄,使用Python 命令:
Python+運行腳本名稱+argv1
其中,argv1 代表預處理后的數(shù)據(jù)集名.運行結果除在指定的文件夾下生成套數(shù)|面積熱力圖預測數(shù)據(jù)的JSON 格式文件外,還在當前目錄下生成相應的CSV格式文件.JSON 格式的輸出數(shù)據(jù)可直接用于熱力圖渲染,CSV 格式的輸出數(shù)據(jù)便于做大數(shù)據(jù)分析.
3.1.1 數(shù)據(jù)壓縮落圖
原始房產數(shù)據(jù)極其龐大,難以全部在百度地圖上落圖顯示,必須先進行壓縮映射預處理并生成相應的訓練數(shù)據(jù)集后,才能應用預測模型對網(wǎng)格區(qū)域累計房產熱力值(套數(shù)、面積)進行預測.
壓縮映射:將原始數(shù)據(jù)記錄的經緯度坐標精度降低(將經緯度小數(shù)點后13 位有效數(shù)字四舍五入至小數(shù)點后僅保留5 位有效數(shù)字),然后去掉重復值.本課題所有房產地址的經緯度坐標均取自百度地圖公開數(shù)據(jù),原始精度為小數(shù)點后13 位有效數(shù)字.
“房產登記簿數(shù)據(jù)”共有12 476 111 條房屋建成年代記錄.壓縮映射得到353 464 條不同經緯度坐標的記錄,每條記錄包含聚集計算出來的熱力值屬性(套數(shù)|面積).
“房產網(wǎng)簽數(shù)據(jù)”共有6 076 778 條新建房屋年份記錄.壓縮映射得到50 242 條不同經緯度坐標的記錄.
3.1.2 數(shù)據(jù)網(wǎng)格映射
基于經緯度網(wǎng)格的房產指標數(shù)據(jù)熱力圖必須先將落在同一個網(wǎng)格中的各個房產原始數(shù)據(jù)記錄歸化成網(wǎng)格數(shù)據(jù):用網(wǎng)格中間點的經緯度坐標作為網(wǎng)格坐標,網(wǎng)格區(qū)域中所有房產的指標統(tǒng)計值(如總建筑面積或總房產套數(shù))作為網(wǎng)格的房產指標值.
再進一步將網(wǎng)格數(shù)據(jù)規(guī)范化,即,將所有網(wǎng)格數(shù)據(jù)映射成一個Y×M×M點的張量Z(Y為房屋建成年份的最大時間跨度,M為網(wǎng)格劃分數(shù)):
對于任一條略去“城市”屬性的網(wǎng)格房產數(shù)據(jù)記錄(lonq,latq,yearq,countq)|1≤q≤m,m為網(wǎng)格數(shù)據(jù)記錄總數(shù),(lonq,latq)為對應網(wǎng)格的經緯度,countq為該網(wǎng)格區(qū)域在年份yearq的房產統(tǒng)計指標增量值,則其到張量Z的映射由式(1)–式(3)計算:
張量Z的第1 維度坐標k可通過式(1)求得:
其中,ymin代表所有記錄年份中的最小值.
張量Z的第2 維度橫坐標i可通過式(2)求得:
其中,lonmin和lonmax分別代表廣東省經度范圍(東沙群島除外)的最小值和最大值.
張量Z的第3 維度縱坐標j可通過式(3)求得:
其中,latmin和latmax分別代表廣東省緯度范圍(東沙群島除外)的最小值和最大值.
最后,Z任意點(k,i,j)的數(shù)值Zk,i,j由下式計算:
這樣,Zk,i,j(0≤k≤Y,0≤i<M,0≤j<M)代表網(wǎng)格(i,j)里累計至第k年末的房產套數(shù)或面積統(tǒng)計值.
3.1.3 網(wǎng)格數(shù)目選擇
網(wǎng)格越細化(網(wǎng)格劃分M越大),網(wǎng)格化后的坐標點越多,反之亦然.
首先,我們選定廣東省全域(東沙群島除外)經、緯度范圍:
[lonmin,lonmax]=[110.177,116.885]
[latmin,latmax]=[20.334,25.313]
然后,就省域房產登記簿數(shù)據(jù)集,計算網(wǎng)格劃分數(shù)M與房產數(shù)據(jù)集網(wǎng)格化后其坐標點數(shù)目的關系,結果見圖6.
圖6 網(wǎng)格劃分M 與網(wǎng)格化后坐標點數(shù)目的關系
由圖6可見,網(wǎng)格化后數(shù)據(jù)集經緯度坐標點數(shù)目隨著M的增大而增加,但當M達到7 000 后,坐標點數(shù)目增長逐漸減弱,說明:此后網(wǎng)格劃分繼續(xù)細化對于網(wǎng)格化近似精度的提高其作用逐漸趨無.若在獲得較高的網(wǎng)格化近似精度的同時,又兼顧算法的性能(網(wǎng)格化后坐標點越少就越好),推薦M=7000的網(wǎng)格化.
3.1.4 滑窗切分處理
對于長的時序數(shù)據(jù)序列一般采用滑窗法進行數(shù)據(jù)切分預測,即限定一個滑動窗口,依次將其順時序向前移動一定步長來切取數(shù)據(jù)子序列用以預測后繼若干時序值:對于已知數(shù)據(jù)序列 (X1,X2,···,XN),取滑窗跨度L(L
鑒于要預測的年末實有房產套數(shù)和面積是不斷增長的數(shù)值,為降低解空間的取值范圍,我們將滑窗內L個時點序列(X1,X2,···,XL)各項數(shù)據(jù)規(guī)范化為相對于其第1 時點的增量值:(X1?X1,X2?X1,···,XL?X1),以加快神經網(wǎng)絡學習過程收斂.
3.1.5 建模參數(shù)取值
根據(jù)以上設計建立模型后,我們針對本課題應用實際進行優(yōu)化.經測試后確定:
1)“網(wǎng)格房產累計預測模型”(參見圖4中的“網(wǎng)格房產套數(shù)累計預測模型)的參數(shù)如表1所示.
表1 網(wǎng)格房產累計數(shù)據(jù)建模參數(shù)
2)“市級房產增量預測模型”(參見圖4中的“市級房產套數(shù)增量預測模型)的參數(shù)如表2所示—只對全市域總增量值進行預測,不用做網(wǎng)格劃分.
表2 市級房產增量數(shù)據(jù)建模參數(shù)
通常不是所有的原始數(shù)據(jù)都可直接用于神經網(wǎng)絡模型.在此數(shù)據(jù)預處理是必須的.
3.2.1 數(shù)據(jù)清洗
數(shù)據(jù)清洗過程包括對缺失值、異常值進行處理.
缺失值處理:對于缺失房屋建成年份、坐落地址或面積數(shù)值的數(shù)據(jù),直接舍棄,因為這些數(shù)據(jù)對于時序預測沒有意義;對于缺失城市屬性的數(shù)據(jù),可以根據(jù)房產坐落確定地理位置,不會對預測結果產生影響.
異常值處理:主要針對面積數(shù)值為零的原始數(shù)據(jù)—對此類數(shù)據(jù)記錄直接舍棄.
3.2.2 數(shù)據(jù)集準備
深度學習算法需要切取歷史時序數(shù)據(jù)進行訓練和測試.全部房產數(shù)據(jù)記錄經網(wǎng)格數(shù)據(jù)映射存儲在三維張量Z中.令 ?c為城市c所有網(wǎng)格的集合,則從Z中切取:1)矩陣序列(Z1,Z2,···,ZY)|Zk={Zk,i,j|(i,j)∈?c}(1≤k≤Y),2)數(shù)據(jù)序列(Z1,i,j,Z2,i,j,···,ZV,i,j)|V=max(l),?Zl,i,j≠null(1≤l≤Y),? (i,j)∈?c作為預測模型訓練與測試的候選數(shù)據(jù)集.
對于每一份數(shù)據(jù)集來說,均需要劃分訓練集與測試集.訓練集是模型學習時用的數(shù)據(jù)集,是確定模型參數(shù)用的;測試集則是檢驗模型性能時用的數(shù)據(jù)集.在時序數(shù)據(jù)預測問題中,訓練集與測試集不能交叉.訓練集就類似考生平常做的習題,測試集類似考試的題目,后者是衡量一個模型泛化能力的數(shù)據(jù)集.
若測試集序列太短,將不足以評價和調校預測模型.結合各城市房產單元數(shù)據(jù)集的房屋建成年份時序范圍的實際(詳見表3),我們取每個市至少最后5 個年份的數(shù)據(jù)作為其評價模型的測試集,即要具備最近5+3年(加上3年滑窗跨度)的原始數(shù)據(jù).這樣絕大多數(shù)城市數(shù)據(jù)滿足要求,只有個別城市例外—在表3中用*標注:佛山市房產登記簿僅有2012–2016年的數(shù)據(jù);梅州市、惠州市和茂名市的網(wǎng)簽數(shù)據(jù)分別只有6、7和6 個年份的.
表3 各市房屋建成年份數(shù)據(jù)范圍
具體以某市為例說明:
1)用最近1993–2017年數(shù)據(jù)進行預測評價:
輸入2012年以前數(shù)據(jù),預測2013年的環(huán)比增量.
輸入2013年以前數(shù)據(jù),預測2014年的環(huán)比增量.
輸入2014年以前數(shù)據(jù),預測2015年的環(huán)比增量.
輸入2015年以前數(shù)據(jù),預測2016年的環(huán)比增量.
輸入2016年以前數(shù)據(jù),預測2017年的環(huán)比增量.
2)然后,將預測結果與真實數(shù)據(jù)進行比較評價.
計算及評價結果見圖7.圖中,預測數(shù)據(jù)序列在2012年及之前的年份直接使用真實數(shù)據(jù).
圖7 某市房產登記預測示例
房產登記簿數(shù)據(jù):其落圖壓縮后得到的353 464 條不同經緯度坐標的數(shù)據(jù)記錄網(wǎng)格化后,落至81 240 個經緯度網(wǎng)格上,用于生成其預測模型的訓練數(shù)據(jù)集.
房產網(wǎng)簽數(shù)據(jù):其落圖壓縮后得到50 242 條不同經緯度坐標的數(shù)據(jù)記錄網(wǎng)格化后,落到3 514 個經緯度網(wǎng)格上,用于生成其預測模型的訓練數(shù)據(jù)集.
對于已知房產時序數(shù)據(jù)seq=(X1,X2,···,XL),將其規(guī)范為(G1,G2,···,GL)|Gk=Xk?X1(1≤k≤L)后,放入房產數(shù)據(jù)預測模型預測出L+1年份相對于時序首年的熱力值增量GL+1,即可預測出至L+1年份的全量值:
XL+1=X1+GL+1
將XL+1加入已知序列得seq:=seq+(XL+1).再從新的seq最后面切取長度為L的子序列,并對此子序列重復上述過程,就可逐年推進預測未知年份的數(shù)據(jù).我們將一個年份的預測數(shù)據(jù)存儲成一個文件,以(經度,緯度,年份,預測全量值)格式輸出到JSON和CSV 文件中.其中,“預測全量值”代表直到該“年份”年末,(經度,緯度)所標識區(qū)域的房產統(tǒng)計指標的歷史累計值.
預測模型的評價指標采用平均絕對百分誤差(mean absolute percentage error,MAPE):
其中,n表示序列樣本的個數(shù),yi表示真實值,yi′表示預測值.平均絕對百分誤差反映了預測值對真實值的偏離程度.優(yōu)化方法采用Adam (adaptive moment estimation)算法[18].Adam 是一種自適應調節(jié)學習率的方法.它利用梯度的一階矩估計和二階矩估計動態(tài)調整預測模型每個參數(shù)的學習率.Adam的優(yōu)點主要在于經過偏置校正后,每一次迭代學習率都有個確定范圍,使得參數(shù)比較平穩(wěn).我們設定學習率 α=0.001,取每個市最后5年真實數(shù)據(jù)作為評價模型的測試集.
誤差評價可按以下指標衡量:
1)預測增量相對于真實增量的誤差MAPE-I.
2)預測全量相對于真實全量的誤差MAPE-T.
對于深度學習過程校正:增量和全量預測模型分別使用MAPE-I和MAPE-T進行偏置校正.
對于最終預測結果評價:考慮到本課題是以預測各市年末實有房產數(shù)(累計全量數(shù))為目標,我們使用MAPE-T進行誤差評價.
測試評價表明,不同市的訓練樣本的數(shù)量和質量、環(huán)比變化梯度對于預測誤差的影響是不同的,詳見表4.表中佛山市的登記簿和梅州、惠州、茂名3 市的網(wǎng)簽數(shù)據(jù)因真實數(shù)據(jù)序列太短無法進行深度學習,不能進行預測,誤差評價不適用(標記為NA).此外,個別市的訓練數(shù)據(jù)樣本較小,年份實際增量波動較大,預測效果相比其他市較差(例如,湛江、茂名兩市的登記簿數(shù)據(jù)預測,以及韶關和汕尾兩市的網(wǎng)簽數(shù)據(jù)預測),甚至出現(xiàn)極端誤差情況(例如云浮市的網(wǎng)簽數(shù)據(jù)預測).但從整體結果來看,我們的模型還是能捕捉到各市的房產指標數(shù)據(jù)的基本變化,平均誤差大多數(shù)在5%以下,絕大多數(shù)在10%以下.這說明,針對性建立和訓練的預測模型是有效的,達到預期的目的.
表4 各市房產套數(shù)和面積預測的平均絕對百分誤差(%)
以廣州市房屋登記簿時序數(shù)據(jù)預測為例.我們用已知的1958–2017年歷史數(shù)據(jù)記錄,對其各網(wǎng)格單元區(qū)域未知的2018–2023年各年年末房屋套數(shù)熱力值進行預測.然后將廣州市各網(wǎng)格區(qū)域所有年份的年末實有房屋套數(shù)熱力值在百度地圖落圖呈現(xiàn)—調用百度地圖LBS 服務,渲染成市域房屋統(tǒng)計指標數(shù)據(jù)地理分布熱力值圖[19],并在此基礎上提供正反時序的各年度熱力圖播放,供觀察比較.為簡便起見,我們僅取廣州市房屋套數(shù)分布熱力圖局部情況為例進行前后兩兩環(huán)比,限于篇幅,僅以圖8和圖9例示.目測可見,隨著預測年份推延,全市實有累計房屋套數(shù)的地理分布熱力值增加趨勢具有如下特征:開始變化明顯,后來逐漸減弱.這里的一個原因是隨著預測年份的增長,模型的預測值準確度下降,預測結果趨同;另一個原因是每當熱力圖圖斑開始呈現(xiàn)高亮度色時,后來的熱力值增加對于圖斑的增強作用會顯著減弱.圖示目測效果大體與我們對廣州市近年城市建設區(qū)域發(fā)展的直觀預期相符.
圖8 2017 與2018年房屋套數(shù)熱力圖環(huán)比
圖9 2022 與2023年房屋套數(shù)熱力圖環(huán)比
(1)應用集成方面,本文基于深度神經網(wǎng)絡機器學習的廣東省域房產大數(shù)據(jù)熱力圖人工智能預測系統(tǒng),與廣東省域“(房產)行業(yè)數(shù)據(jù)云同步樞紐平臺系統(tǒng)”[20]、“HBDP 省房屋大數(shù)據(jù)計算集群及作業(yè)調度系統(tǒng)”和“熱力圖播放系統(tǒng)”配合使用,全面實現(xiàn)了可從過往已知的至后來未知的廣東省域房產登記和交易大數(shù)據(jù)指標的熱力圖年時序播放展示,有助于從時空維度俯瞰城市建設演化過程,為城市資源和區(qū)劃經濟規(guī)劃等相關的宏觀管理活動提供歷史和前瞻性的大數(shù)據(jù)參考,也可作為滿足人們對城市具體屬性未來演變的預見愿望的行業(yè)大數(shù)據(jù)直觀應用的實踐范例.
(2)技術創(chuàng)新方面,本文提出“網(wǎng)格累計量預測+市域增量預測修正”的總體預測建模計算框架,相對于常規(guī)直接應用深度神經網(wǎng)絡機器學習模型,不但在建模前期引入了網(wǎng)格粒度調選環(huán)節(jié),為簡化計算量提供選項,更重要的是有效地將細化的局部預測與全局宏觀預測修正結合,較好地化解了因各地網(wǎng)格單元源數(shù)據(jù)樣本質量參差不齊而引起的模型訓練預測誤差過大問題,創(chuàng)造條件來調優(yōu)應用長短時記憶與全連接層網(wǎng)絡AI 深度學習模型.這樣,即使在網(wǎng)格單元樣本時間和空間數(shù)據(jù)質量不理想情況下,仍然實現(xiàn)了課題的技術目標:系統(tǒng)產生的預測數(shù)據(jù)可直接應用于百度熱力圖呈現(xiàn),預測模型的可評測應用誤差總體囿于合理范疇,相應數(shù)據(jù)結果可視化符合人們目測預期.