楊 鑫,楊宜來,胡克勇
(青島理工大學信息與控制工程學院,山東 青島 266525)
城市功能區(qū)分類研究不僅對城市規(guī)劃與管理具有十分重要的意義,還可為人類生活、工作和交通等提供便利[1]?,F有城市功能區(qū)分類方法主要可分為:基于指標值閾值劃定的方法、基于非監(jiān)督的聚類方法和基于監(jiān)督分類的方法[2-3]?;谥笜碎撝祫澏ǖ姆椒ㄊ苤饔^因素的影響較大,監(jiān)督分類和非監(jiān)督分類方法以數據為基礎,分類結果相對客觀。非監(jiān)督分類方法實現簡單,但分類結果準確性相對較低。監(jiān)督分類法可從訓練樣本中獲取先驗知識以提高分類準確性,且訓練樣本越多,訓練得到的模型也越準確。然而實際應用中,功能區(qū)訓練樣本數據通常較難獲取,區(qū)域內主要功能的判斷需要行業(yè)專家的專業(yè)知識及對城市深入地熟悉與了解。如何使用較少的訓練樣本來獲取性能較好的分類器是分類方法選擇要考慮的重要問題。
本研究提出采用POI數據和主動學習算法實現城市功能區(qū)分類。POI是電子地圖上代表地理實體的點數據,具有易獲取、數據覆蓋面全、數據完整性高的特點[4]。主動學習是一種半監(jiān)督分類法,其核心任務是確定選擇訓練樣本的標準,從而選擇盡可能少的樣本進行標記來訓練出一個好的學習模型,相對于監(jiān)督分類方法,主動學習顯著降低了訓練樣本收集的成本,該方法的應用有助于快速準確實現城市功能區(qū)分類。
選擇北京市朝陽區(qū)作為典型研究區(qū)。朝陽區(qū)是北京市主城六區(qū)之一,西與東城區(qū)、豐臺區(qū)、海淀區(qū)相毗鄰,北連昌平區(qū)、順義區(qū),東與通州區(qū)接壤,南與大興區(qū)相鄰;朝陽區(qū)是北京市轄區(qū)內人口較多的一個區(qū),工業(yè)發(fā)達,外交活動頻繁,在經濟、居住、教育等方面均有較強代表性,基礎服務設施完善,區(qū)域功能齊全且分化明顯。
研究采用街區(qū)作為城市功能區(qū)的空間尺度。當前常用的城市功能區(qū)空間劃分方法包括:街區(qū)(又稱交通分析小區(qū),Traffic Analysis Zone,TAZ)和不同空間尺度的格網[5]。格網常用于大致表征城市功能區(qū)的分布趨勢,無法準確描述城市功能區(qū);TAZ是由不同等級的道路連接、交叉形成的區(qū)域,區(qū)域內的功能相對比較完整。本文采用不同等級的道路將朝陽區(qū)劃分為741個TAZ,如圖1(a)所示。
圖1 北京市朝陽區(qū)街區(qū)及POI分布圖
本研究所使用的POI數據通過百度地圖API下載,共計90767條(見圖1(b)),屬性字段包括名稱、類別、經緯度坐標。結合土地利用規(guī)劃數據、POI、高空間分辨率遙感影像等數據,本研究對朝陽區(qū)所有TAZ的城市功能類型進行了人工識別,結果如圖2所示,功能區(qū)類型包括:農地、休閑娛樂區(qū)、城中村、就業(yè)區(qū)、居住區(qū)、就業(yè)居住混合區(qū)。
圖2 人工功能區(qū)識別結果
POI代表的地理實體或社會經濟組織機構涵蓋人們日常生活的方方面面,且具有詳細的三級分類體系。根據POI類型與城市功能區(qū)類型的相關性及對城市功能區(qū)類型的影響作用,選擇與城市功能區(qū)類型相關性較大的POI類別構建了城市功能區(qū)分類的指標體系,見表1。
表1 街區(qū)功能分類指標體系
表1中所有指標的計算方法如下:
(1)指標 A1~A6。計算該類指標首先需對街區(qū)內該類型的全部POI進行計數,計算過程:采用ArcGIS軟件的Spatial Join功能,選擇街區(qū)圖層作為目標圖層,連接需計算的POI類型數據到目標圖層,即可在目標圖層的屬性表中得到街區(qū)內的POI計數。如果計數值大于0,則指標值為1,否則指標值為0。
(2)指標A7~A9。計算該類指標的過程如下:采用ArcGIS軟件的Euclidean Distance 功能,輸入需計算的POI數據和街區(qū)圖層數據,即可計算得到街區(qū)內每個位置至與其最近的POI的距離;然后使用ArcGIS軟件的Zonal Statistic功能即可計算得到街區(qū)內各位置距離值的平均值。
(3)指標 A10~A11。該類指標的計算過程為:采用ArcGIS軟件的Spatial Join 功能,選擇街區(qū)圖層作為目標圖層,連接需計算的POI類型數據到目標圖層,即可在目標圖層的屬性表中得到街區(qū)內的POI計數,然后使用ArcGIS軟件屬性表管理中的Field Calculator功能計算街區(qū)內POI計數與街區(qū)面積的比值得到街區(qū)內該類POI的密度。
上述方法計算得出的不同指標之間存在數量級差,為消除數量級差帶來的計算誤差,對各個指標進行了均值標準化處理,由此得到與每個TAZ對應的11個指標。
2.2.1 算法總體框架
主動學習算法是一個迭代的過程,每一次迭代從未分類數據集中選擇最有價值的幾個樣本交由專家進行標記,并將這些新標記過的樣本加入訓練樣本集,模型基于新的訓練集進行更新,然后利用模型對未分類數據集中的樣本進行分類,隨后進入下一次迭代[6]。
采用主動學習算法對街區(qū)功能進行分類,每個街區(qū)就是一個待分類樣本。每一次迭代過程中,所有街區(qū)可以分為三個類別:①已完成功能分類的街區(qū),記為TK;②未完成功能分類的街區(qū),記為TU;③被選中由專家標記功能類別的街區(qū),記為TC。分類前TK為空集,TU為空時迭代終止,分類完成。
主動學習算法主要包含2個關鍵部分:一是抽樣引擎,用于從TU中選擇樣本記入TC;二是分類器,用于根據現有訓練樣本集TK進行分類模型訓練,完成TU中樣本的分類。由于不同樣本對于樣本分類的學習模型的貢獻度是不一樣的,如果能夠選取一部分最有價值的街區(qū)標記其類型,有可能僅基于少量數據就能獲得同樣高效的模型。因此在抽樣引擎中設計合理的選擇策略,選擇最有價值的街區(qū),是主動學習的關鍵任務。
本文設計一個基于密度峰值聚類的抽樣引擎,采用密度峰值聚類方法確定TU中所有街區(qū)的價值排序,依次選擇最有價值的街區(qū)記入TC,由專家標記其類別記入TK。然后基于該聚類方法的聚類優(yōu)勢設計一個基于標準投票策略的分類器,逐步完成TU中街區(qū)的分類。以下將詳細闡述采用基于密度峰值聚類的主動學習算法實現街區(qū)分類的方法。
2.2.2 關鍵參數計算
本文采用基于密度峰值聚類的主動學習算法進行街區(qū)分類。密度峰值聚類方法由Rodriguez和Laio于2014年提出[7],該算法的核心思想在于其對聚類中心的刻畫,作者認為聚類中心應用同時具有以下兩個特點:①樣本的“局部密度”大,即它被密度均不超過它的鄰居包圍,②樣本與其它密度更大的樣本之間的“距離”相對更大。
將朝陽區(qū)所有街區(qū)記為集合X={X1,X2, ……,Xn},根據2.1中街區(qū)功能分類的指標體系,每個街區(qū)具有11個屬性值,街區(qū)i的屬性值可記為{Ai1,Ai2, ……,Ai11}。
本方法中包含兩個關鍵參數:樣本的局部密度ρi和到高密度樣本的最短距離δi。這兩個參數的計算都基于樣本之間的距離dij,該距離采用樣本屬性的歐式距離來度量,計算公式為:
(1)
其中,dij為樣本i與樣本j之間的距離,Aik為樣本i的第k個屬性值。
局部密度表達的含義為以某一樣本為中心,在某一設定的距離范圍內樣本的個數。樣本i的局部密度記為ρi,其計算公式如下式:
ρi=∑jf(dij-dc)
(2)
ρi表示以樣本i為中心,距離為dc的范圍內樣本的數量;其中dc>0,是需指定的距離,稱為截斷距離,其值的大小取決于所有樣本間距離的分布;f(x)為一個判別函數,當x≥0時其值為0,當x<0時,其值為1。
樣本i到高密度樣本的最短距離δi的計算公式如下:
δi=minj:ρj>ρidij
(3)
若樣本i在全部樣本中具有最高的局部密度,δi為樣本i與其最遠的樣本間的距離,可用計算公式可表述為:
δi=maxjdij
(4)
對每個樣本計算上述兩個關鍵參數后,所有樣本可表示為式(5)。
(5)
在密度峰值聚類算法中還需要計算得到一個重要中間結果:master樹。其獲取過程為:計算樣本i到高密度樣本的最短距離δi時,記錄距離樣本i最近的高密度樣本,稱為樣本i的master,具有最高局部密度的樣本的master為空。假定樣本i從屬于其master,然后根據這種從屬關系構建一個樹,在這個樹中,樣本i為其master的子節(jié)點,master為空的樣本為根節(jié)點,如果存在多個master為空的節(jié)點,創(chuàng)建一個空節(jié)點作為這些節(jié)點的根節(jié)點。
2.2.3 城市功能區(qū)分類
圖3 聚簇標記、分離過程
對上述分離得到的兩個新的集合再次調用主動學習算法。如圖4所示,對兩個新集合分別標記后,以樣本6為根節(jié)點的集合已經是一個“純集合”了,所以為這整個集合內的未標記樣本分配與樣本6、13、14一致的標簽,如圖4(b)中右子樹。而以樣本1為根節(jié)點的集合,再次分配標簽后依然是“非純集合”。如果還有標簽可供使用,那么重復分離集合的過程,否則執(zhí)行投票策略,如圖4(b)中左子樹。這里假設已經沒有標簽可用了,可見樣本1、4的標簽數量最多,故將樣本1、4的標簽分配給該集合內剩余未分配標簽的樣本。
圖4 “純聚簇”與 “非純聚簇”決策過程
當所有樣本都被標記時,分類結束。如果標簽用盡還有未被標記的樣本,則需要使用投票策略對其進行分類,過程如下。統(tǒng)計未被全部分類的集合內的各個標簽數量,找出數量最多的那種標簽,將這種標簽賦予本集合內所有未被標記的樣本。至此,整個功能區(qū)分類過程全部結束。其算法描述如下。
主動學習算法:
初始化:輸入全部待分類街區(qū);
計算ρ和δ,構造一個 master樹;
for(k=4; 專家標記樣本的數量小于指定值N,且還存在未分類樣本;k++)do:
基于密度峰值聚類,聚類類別數為k,依據 master 樹,找到聚類中心和每個類別中包含的樣本信息,同時根據聚類信息將 master 樹分裂為k個子master樹;
根據聚類中心和各類別信息,找出本輪循環(huán)的關鍵樣本;
對關鍵樣本的功能類型進行標記;
for(i=1 tok)do:
if第 i 個 master 樹中的樣本的功能類型沒有完全標識 then:
如果該 master 樹中已知類型的樣本數量大于等于N,且已知類型完全一致,那么按已知樣本類型來設置該 master 樹中所有樣本的類型;
end if
end for
end for
if還有樣本未分類 then:
for(i=1;i≤k;i++)do:
如果第i個 master 樹中還存在未分類樣本,則采用標準投票策略決定未分類樣本的類別;
end for
end if
采用基于POI和主動學習的城市功能區(qū)分類方法,設置2.2.2中截斷距離dc的值為3.5,設定標注功能區(qū)個數為50(占總功能區(qū)個數的6.75%),依據圖2中的功能區(qū)類型標記樣本,完成北京市朝陽區(qū)所有街區(qū)分類,分類結果如圖6所示。對比圖2和圖5可見,基于本方法實現的城市功能區(qū)分類結果與人工識別結果較為相似。休閑娛樂區(qū)在整個朝陽區(qū)分布較為均衡;農地、城中村主要分布在朝陽區(qū)的東部區(qū)域;就業(yè)、居住和就業(yè)居住混合區(qū)主要分布在西部區(qū)域,這與北京市的圈層結構以及朝陽區(qū)所處的地理位置密切相關,朝陽區(qū)東與通州區(qū)接壤,西則與發(fā)展更為成熟的東城、豐臺、海淀相毗鄰。
圖5 功能區(qū)識別結果
為分析采用基于POI和主動學習的城市功能區(qū)分類方法進行北京市朝陽區(qū)城市功能區(qū)分類結果的準確性,首先本文選擇了幾個區(qū)域,將識別結果與百度地圖和百度衛(wèi)星地圖進行了對比分析,見圖6。區(qū)域A為國家體育館(鳥巢)附近的幾個街區(qū),結合百度地圖和百度衛(wèi)星地圖,可以看到(1)區(qū)域A左側為國家森林公園,本方法的識別結果為休閑娛樂區(qū);(2)區(qū)域A右側的街區(qū)內均包含了居住小區(qū)、商業(yè)大廈、幼兒園、中小學,居住就業(yè)功能都非常成熟,本方法的識別結果為就業(yè)居住混合區(qū)??梢?,區(qū)域A內城市功能區(qū)識別情況與實際相符。區(qū)域B為古塔公園附近的幾個街區(qū),從該區(qū)域的百度地圖和百度衛(wèi)星地圖可以看出該區(qū)域內功能類型復合多樣,結合地圖:(1)識別結果中被識別為休閑娛樂區(qū)的兩個街區(qū)分別是北京CBD國際高爾夫球會和古塔公園;(2)識別結果中被識別為居住區(qū)的街區(qū)是觀音惠園和北京安德魯斯莊園這兩個居住小區(qū);(3)識別結果中被識別為就業(yè)區(qū)的街區(qū)從衛(wèi)星地圖上可見為工廠廠房;(4)識別結果中被識別為城中村的街區(qū)是王四營鄉(xiāng)和觀音堂村??梢姡瑓^(qū)域B內城市功能區(qū)識別情況與實際相符。
圖6 部分區(qū)域識別結果與百度地圖和百度衛(wèi)星圖的對比
區(qū)域C為富力城附近幾個街區(qū),從識別結果是可以看出該區(qū)域內主要包含居住區(qū)和居住就業(yè)混合區(qū),從百度地圖和百度衛(wèi)星地圖上可見該區(qū)域內主要是成熟居住區(qū)和商務區(qū),幼兒園、中小學等配套生活設施齊全,這表明該區(qū)域內的功能區(qū)識別總體準確。然而,該區(qū)域內道路密集、街區(qū)面積較小,采用本方法的識別過程中相鄰街區(qū)的功能可能相互影響,從而造成部分功能區(qū)識別結果與人工識別結果之間存在一定偏差,如區(qū)域C的識別結果上以星號標注的居住區(qū),其人工識別結果為就業(yè)居住混合區(qū),分析該街區(qū)的指標計算結果發(fā)現其離幼兒園、中小學的距離較小,與居住區(qū)的該類指標相近。
為了進一步分析本方法識別結果的準確性,計算了人工識別結果與基于本研究構建方法的分類結果之間的混淆矩陣,如圖7所示。本研究中城市功能區(qū)分類對象為街區(qū),分類過程中未考慮街區(qū)的面積,在進行識別結果的準確性評價時,應以功能區(qū)的個數為依據,而非以功能區(qū)的面積為依據,因此混淆矩陣中的值為街區(qū)個數的比例。
圖7 識別結果混淆矩陣
從圖7的混淆矩陣可見,本方法在城市功能區(qū)分類的應用中具有較高的精度,其中,農地和就業(yè)居住混合區(qū)的識別精度較高,分別為0.810和0.822;休閑娛樂區(qū)的居住區(qū)的識別精度其次,分別為0.778和0.738;城中村和就業(yè)區(qū)的識別精度相對較低,分別為0.706和0.693。
混淆矩陣中未正確分類的功能區(qū),結合它們的POI分布情況及指標體系,對分類錯誤的原因進行了綜合分析:
(1)圖7的混淆矩陣顯示未被正確識別的農地主要被識別為休閑娛樂區(qū),未被正確識別的休閑娛樂區(qū)主要被識別為農地;未被正確識別的城中村主要被識別為農地。這主要是因為農地內包含的POI較少,而少部分休閑娛樂區(qū)和城中村內包含的POI也較少,且農地、休閑娛樂區(qū)和城中村都離幼兒園、中小學的距離較遠,從而導致這三類功能區(qū)之間存在分類錯誤的情況。
(2)圖7的混淆矩陣顯示未被正確識別的就業(yè)區(qū)主要被識別為就業(yè)居住混合區(qū),未被正確識別的居住區(qū)主要被識別為就業(yè)居住混合區(qū),未被正確識別的就業(yè)居住混合區(qū)主要被識別為居住區(qū),且這三類錯誤率相對較高??梢?,這三類功能區(qū)類型相對容易混淆。分析就業(yè)區(qū)和居住區(qū)的POI分布情況發(fā)現,并非所有的就業(yè)區(qū)內完全不包含居住功能,也并非所有的居住區(qū)內完全不包含就業(yè)功能。在圖6區(qū)域C中分類錯誤原因分析中,已闡述相鄰街區(qū)的功能類型可能對當前街區(qū)的類型產生一定影響。另一方面,在設計基于POI的城市功能區(qū)分類指標體系時,考慮到POI僅能代表地理實體的類型,不能代表地理實體的功能強弱,比如,占地面積較大的住宅小區(qū)和占地面積較小的住宅小區(qū)反映在數據上都是一個POI點,同一個地理實體可能對應多個POI,如一個住宅小區(qū)可能在不同的出入口都包含一個POI點,因此,本研究中指標A1~A6設計為是否含有住宅、商務寫字樓、產業(yè)園等POI,未考慮這幾類POI數量或密度對功能區(qū)分類的影響,由此也導致部分識別結果的不準確。
采用本文的方法進行城市功能區(qū)分類過程中,高密度樣本的選擇對分類結果至關重要,而截斷距離dc是影響樣本密度的重要因素,當dc過大時所有樣本的密度值都較大,而當dc過小時所有樣本的密度值都較小。因此,本文以北京市朝陽區(qū)為例,根據街區(qū)之間距離值的分布范圍設置不同的dc完成城市功能區(qū)分類,探究dc與城市功能區(qū)識別總體精度的關系,分析結果見圖8。其中,總體精度的計算以人工識別結果為標準(見圖2),統(tǒng)計本方法的識別結果中分類正確的功能區(qū)數量占功能區(qū)總數的比例。根據圖5可見,當dc的取值小于2.5時,隨著dc的增加分類精度總體上呈上升趨勢;當dc的取值在2.5到8.5之間時,dc的變化對分類精度的影響較小;當dc的取值大于8.5時,隨著dc的增加分類精度呈下降趨勢。
圖8 截斷距離與城市功能區(qū)分類總體精度關系圖
本研究的目的是通過標記少量功能區(qū)的類型,獲取更高的城市功能區(qū)分類精度。本文以北京市朝陽區(qū)為例,分析了采用本方法進行城市功能區(qū)分類時功能區(qū)標記個數對分類總體精度(計算方法同3.3)的影響,見圖9。從圖中可見,隨著標記個數的增加,分類精度也在逐步提升。通常在有監(jiān)督的機器學習算法中,會首先在總樣本中至少選擇50%的樣本進行學習訓練,然后采用訓練好的模型進行分類。而采用本文所提出的方法對北京市朝陽區(qū)進行城市功能區(qū)分類時,標記的功能區(qū)個數達到50(占總功能區(qū)個數的6.75%),分類精度達到一個較高的值。由此可證明本方法在節(jié)約標記成本的前提下,可取得較高的分類準確性。
圖9 標注的功能區(qū)個數與城市功能區(qū)分類總體精度關系圖
快速、準確地獲取城市功能區(qū)空間結構不僅是城市規(guī)劃管理者的需求,還可為人們日常生活、工作和交通等提供便利。然而,城市的快速發(fā)展導致了城市內部的復雜化與多樣化,給城市功能區(qū)地圖的獲取帶來了巨大挑戰(zhàn),近年來,城市功能區(qū)分類逐漸成為城市地理空間結構研究的重要問題。本文構建了一套城市功能區(qū)分類方法。一方面,該方法以POI為數據基礎,數據具有較強的可獲取性。另一方面,該方法基于主動學習算法實現,主動學習是一種半監(jiān)督分類算法,可以少量標記為代價達到優(yōu)于非監(jiān)督分類方法準確性的效果。本文將該方法應用于北京市朝陽區(qū)的城市功能區(qū)分類,研究表明該方法具有較高的準確性。
本方法的準確性還可通過以下方面的改進得到進一步的提升:(1)指標體系的改進,指標體系是城市功能區(qū)分類的基礎,根據分類結果的反饋,探究分類指標與功能區(qū)類型的相關性,改進與完善指標體系可進一步提高城市功能區(qū)分類的準確性;(2)數據源的擴充,僅使用POI數據使得本方法的數據源獲取簡單容易,但數據源的單一性同時也制約了本方法的準確性,如POI數據可反映地理實體的屬性類別特征,但無法反映地理實體的功能強弱,若增加手機基站數據,以區(qū)域內的人流量表征區(qū)域功能的強弱便可彌補POI數據的不足。在后續(xù)的研究中將從以上兩方面入手,以期進一步提升方法的準確性。