劉琛
摘 要:在進(jìn)行空間統(tǒng)計(jì)分析的方法中,傳統(tǒng)的空間統(tǒng)計(jì)方法在構(gòu)建空間權(quán)重矩陣時(shí),往往需要進(jìn)行人工測(cè)量和手寫,這些可能步驟會(huì)降低精準(zhǔn)度和增大誤差的偶然性,為了簡(jiǎn)化空間統(tǒng)計(jì)分析中構(gòu)建空間權(quán)重矩陣的步驟,提出了一種基于百度地圖API和Moran'sI指數(shù)的空間統(tǒng)計(jì)分析方法。該方法調(diào)用了百度地圖開(kāi)放的免費(fèi)接口可以得到目標(biāo)地點(diǎn)的精確位置,從而利用了百度地圖的準(zhǔn)確性,減少了人工構(gòu)建矩陣的誤差可能性。經(jīng)過(guò)對(duì)江蘇省代理ip延遲分布的空間自相關(guān)分析實(shí)驗(yàn),得到江蘇省代理ip存在空間自相關(guān)的結(jié)論,驗(yàn)證了該方法的可行性。雖然在驗(yàn)證的過(guò)程中使用的是傳統(tǒng)的Moran'sI檢驗(yàn),但經(jīng)過(guò)可視化處理后觀察得到與模型結(jié)論的一致性,驗(yàn)證了模型的可行性。因此提出的方法有效的提高了模型的準(zhǔn)確性和簡(jiǎn)化了模型的構(gòu)建難度。
關(guān)鍵詞:百度地圖接口;代理ip;空間權(quán)重矩陣;Moran'sI檢驗(yàn)
中圖分類號(hào):TB 文獻(xiàn)標(biāo)識(shí)碼:Adoi:10.19311/j.cnki.1672-3198.2019.26.106
1 引言
隨機(jī)互聯(lián)網(wǎng)發(fā)展迅猛,重要數(shù)據(jù)很容易沉沒(méi)于互聯(lián)網(wǎng)之海。人工采集數(shù)據(jù)的方法已經(jīng)不能滿足快速獲取有效信息的需求。網(wǎng)絡(luò)爬蟲成了當(dāng)下獲取網(wǎng)絡(luò)信息的一大渠道,同時(shí)各網(wǎng)站也出現(xiàn)了對(duì)應(yīng)的反爬蟲策略,比如將爬蟲的ip拉入黑名單就是最常用的策略。通常避免ip黑名單的方法就是加入代理ip。并且免費(fèi)代理ip在西刺代理、快代理等各大網(wǎng)站有發(fā)布。面對(duì)雜亂無(wú)章的代理ip列表,對(duì)各地列表進(jìn)行空間統(tǒng)計(jì)分析,作為采集ip的一種參考。
空間相關(guān)性研究是空間統(tǒng)計(jì)學(xué)的研究手法,其應(yīng)用領(lǐng)域已經(jīng)進(jìn)入到金融學(xué)、病理研究、社會(huì)學(xué)、環(huán)境學(xué)等多種領(lǐng)域。對(duì)于傳統(tǒng)空間統(tǒng)計(jì)方法有MoransI檢驗(yàn)和GearysC檢驗(yàn),但幾乎所有空間統(tǒng)計(jì)方法需要用到空間權(quán)重矩陣,該矩陣一般由研究者監(jiān)測(cè)和手寫,有不易編輯的缺陷。百度地圖 API 是百度公司免費(fèi)為開(kāi)發(fā)者提供的地圖應(yīng)用網(wǎng)絡(luò)編程接口,無(wú)須任何版權(quán)費(fèi)用,利用它可以很好地實(shí)現(xiàn)本系統(tǒng)的開(kāi)發(fā)。本文充分利用百度地圖 API 提供的豐富的地圖接口進(jìn)行開(kāi)發(fā)計(jì)算空間權(quán)重矩陣,以我國(guó)代理ip網(wǎng)站特點(diǎn)的基礎(chǔ),將空間統(tǒng)計(jì)分析方法運(yùn)用到免費(fèi)代理ip分布研究中。
2 相關(guān)技術(shù)研究
2.1 空間自相關(guān)指標(biāo)Moran'sI指數(shù)
空間單元的分布特征和聚集趨勢(shì)可以由空間自相關(guān)性來(lái)反應(yīng),因此對(duì)空間相關(guān)性進(jìn)行測(cè)度,也就是單元聚集趨勢(shì)的程度。Moran指數(shù)是由Moran于1948年提出的 ,反映的是空間鄰接或空間鄰近的區(qū)域單元屬性值的相似程度。MoransI檢驗(yàn)是對(duì)已知某種屬性的數(shù)據(jù)數(shù)組進(jìn)行評(píng)估,從而判斷其是否滿足離散模式、聚類模式或是隨機(jī)模式。指數(shù)計(jì)算公式如式(1)。
在(1)式中,I為全局MoransI指數(shù),Ii為局部MoransI指數(shù),wij為空間權(quán)重矩陣i行j列元素,xi為空間觀測(cè)值矩陣第i個(gè)觀測(cè)值,xMean為觀測(cè)值平均值,n為觀測(cè)值個(gè)數(shù)。I的取值可經(jīng)過(guò)標(biāo)準(zhǔn)化到[-1,1]中,正數(shù)表示觀測(cè)值相似的空間會(huì)趨近在一起,負(fù)數(shù)表示觀測(cè)值相近的空間會(huì)遠(yuǎn)離,等于0表示不存在空間自相關(guān);I值與1的差越小,空間單元之間差距越小。I值與-1的差越小,空間單元差距越大。當(dāng)I接近于-1/(n-1)時(shí),觀測(cè)值之間才相互獨(dú)立,即屬性的分布呈無(wú)規(guī)律的隨機(jī)分布狀態(tài)。全局型指標(biāo)能夠判斷出現(xiàn)像在空間上的整體分布情況,但難以探測(cè)出聚集的位置所在及區(qū)域相關(guān)的程度。忽略了空間過(guò)程的潛在不穩(wěn)定。到底是高高集聚還是低低集聚?哪個(gè)區(qū)域單元對(duì)全局貢獻(xiàn)更大?這就必須進(jìn)行局部空間自相關(guān)分析。局部指標(biāo)用于反映整個(gè)大區(qū)域中一個(gè)局部小區(qū)域單元上的某屬性值與相鄰局部小區(qū)域單元上同一屬性值的相關(guān)程度。對(duì)觀測(cè)值在空間上是否存在空間自相關(guān),可計(jì)算Z值推斷,計(jì)算公式如式(2)。
2.2 百度地圖坐標(biāo)接口
百度地圖為開(kāi)發(fā)者提供了豐富的接口調(diào)用主要提供JavaScript、iframe、WebService和http + xml 等接口,包括定位、地圖、搜索、鷹眼軌跡、導(dǎo)航路線規(guī)劃路況等功能。開(kāi)發(fā)者可以很方便地訪問(wèn)百度服務(wù)和數(shù)據(jù),創(chuàng)建功能全面、交互性強(qiáng)的地圖應(yīng)用程序,支持 PC端和移動(dòng)端基于瀏覽器的地圖應(yīng)用開(kāi)發(fā),且支持HTML5特性的地圖開(kāi)發(fā)。其中的正/逆地理編碼功能即可得到對(duì)應(yīng)地點(diǎn)的經(jīng)緯度,利用Python的requests模塊對(duì)百度地圖應(yīng)用發(fā)起請(qǐng)求可隨時(shí)使用該功能。百度地圖的開(kāi)發(fā)文檔可見(jiàn)網(wǎng)址http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding,請(qǐng)求需要填寫的參數(shù)如表1。
2.3 爬蟲爬取免費(fèi)代理網(wǎng)站
為了研究代理ip的分布特征,需要爬取代理ip的數(shù)據(jù),數(shù)據(jù)公布較全面、反爬蟲策略較少、更新及時(shí)的網(wǎng)站適合作為數(shù)據(jù)來(lái)源。反爬蟲機(jī)制,即一系列反爬蟲措施的集合。反爬蟲機(jī)制通過(guò)預(yù)處理請(qǐng)求頭、封鎖IP、異步加載、使用加密JS算法、設(shè)置驗(yàn)證碼等措施達(dá)到封鎖爬蟲的目的。支持網(wǎng)絡(luò)通信的編程語(yǔ)言均可以編寫網(wǎng)絡(luò)爬蟲,Python因?yàn)橛写罅績(jī)?yōu)秀的爬蟲庫(kù),代碼簡(jiǎn)潔易懂,在網(wǎng)絡(luò)爬蟲領(lǐng)域有著廣泛的應(yīng)用。與調(diào)研百度地圖API的原理相同,需要用到Python的requests模塊對(duì)免費(fèi)代理網(wǎng)站進(jìn)行訪問(wèn)。在獲得網(wǎng)頁(yè)HTML源碼后,利用xpath表達(dá)式可以得到對(duì)應(yīng)網(wǎng)頁(yè)中的元素,其中xpath表達(dá)式可在瀏覽器進(jìn)入代理網(wǎng)站后,右擊對(duì)應(yīng)元素打開(kāi)開(kāi)發(fā)者工具可以得到瀏覽器提供的表達(dá)式。最后將數(shù)據(jù)寫入sqlite數(shù)據(jù)庫(kù),供后續(xù)程序調(diào)用。
3 基于百度地圖API和Moran'sI指數(shù)的空間統(tǒng)計(jì)分析方法
代理ip廣泛應(yīng)用與信息安全領(lǐng)域,本文研究的方法以江蘇省代理ip延遲在空間自相關(guān)的統(tǒng)計(jì)分析為例,在爬取完數(shù)據(jù)后,數(shù)據(jù)應(yīng)有ip、端口、延遲時(shí)間、地點(diǎn)等屬性,數(shù)據(jù)庫(kù)中部分代理ip如表2。
3.1 利用百度地圖API構(gòu)建空間權(quán)重矩陣
按照文檔內(nèi)容,利用python的requests編寫爬蟲填寫表1參數(shù)發(fā)起get請(qǐng)求即可得到對(duì)應(yīng)地點(diǎn)的經(jīng)緯度??臻g數(shù)據(jù)自身帶有空間位置屬性,隱含了相對(duì)地理位置關(guān)系,因此需構(gòu)造空間權(quán)重矩陣度量空間單元的距離,把空間信息轉(zhuǎn)化為數(shù)值,利用API獲得經(jīng)緯度如表3。
對(duì)兩地坐標(biāo)計(jì)算歐氏距離,然后以反距離權(quán)重法計(jì)算距離的p次方的倒數(shù)作為權(quán)重,本文的p為3,為了得到標(biāo)準(zhǔn)的Moran'sI指數(shù),需要進(jìn)一步的將矩陣進(jìn)行行歸一化使得行元素和為1如式(4),最終的權(quán)重矩陣下:
空間權(quán)重矩陣行列索引均為[南京市,南通市,常州市,徐州市,無(wú)錫市,淮安市,鹽城市,蘇州市,鎮(zhèn)江市]。市區(qū)與市區(qū)間的權(quán)重表示距離,距離越大,權(quán)重越小,主對(duì)角元素為0表示自己不與自己相鄰??臻g權(quán)重歸一化后,不再有數(shù)量級(jí)影響,只反應(yīng)空間單元的位置關(guān)系。
3.2 Moran'sI檢驗(yàn)
本文的觀測(cè)矩陣為2016年江蘇省代理ip的延遲均值,觀測(cè)空間為江蘇省9個(gè)市,因?yàn)榫W(wǎng)站對(duì)2016年公布的代理ip最為齊全,保證各市當(dāng)年樣本量大于30,觀測(cè)矩陣如表4。
根據(jù)式(1)可求得全局Moran'sI指數(shù)為0.37710,說(shuō)明江蘇省市級(jí)之間的ip代理之間呈空間正相關(guān),局部Moran'sI指數(shù)見(jiàn)表5,Moran散點(diǎn)圖如圖1,以觀測(cè)離差值和標(biāo)準(zhǔn)化觀測(cè)值為坐標(biāo)點(diǎn)的Moran散點(diǎn)圖,常來(lái)研究局部的空間不穩(wěn)定性,它對(duì)空間滯后因子進(jìn)行可視化。變量觀測(cè)值和其空間滯后之間的擬合程度(直線的斜率)恰好是Moran'sI系數(shù)。
可見(jiàn)無(wú)錫市、鎮(zhèn)江市和蘇州市存在顯著空間正相關(guān),呈現(xiàn)空間聚集模式,對(duì)全局的空間聚集模式貢獻(xiàn)較大,將觀測(cè)值和局部Moran'sI指數(shù)進(jìn)行可視化繪制熱力圖,如圖2和圖3。
由圖1和圖2可看出江蘇地區(qū)的代理ip延遲有屬性值高的區(qū)域與屬性值高的區(qū)域聚集在一起現(xiàn)象,為了進(jìn)一步驗(yàn)證該特征,需進(jìn)行Z值檢驗(yàn)以確認(rèn)造成此種相關(guān)性的原因是由于偶然因素或系統(tǒng)過(guò)程,根據(jù)式(2)可以得到全局Z檢驗(yàn)數(shù)為2.3906,局部Z檢驗(yàn)數(shù)如表6。
原假設(shè)為觀測(cè)空間上不存在空間自相關(guān),全局Z檢驗(yàn)數(shù)>1.96,證明觀測(cè)值在0.05的水平上顯著,選擇拒絕原假設(shè),因此認(rèn)為觀測(cè)空間上存在空間自相關(guān),Z值大于0且顯著,相似的觀測(cè)值(高值或低值)趨于空間聚集。
4 結(jié)論
本文提出一種基于百度地圖API和Moran'sI指數(shù)的空間統(tǒng)計(jì)分析方法,以江蘇省各市的免費(fèi)代理ip分布為例,首先用Python編寫爬蟲爬取得到代理網(wǎng)站的數(shù)據(jù)。整理得到各市的代理ip延遲時(shí)間平均值作為觀測(cè)值矩陣,然后編寫爬蟲發(fā)起網(wǎng)絡(luò)請(qǐng)求調(diào)用百度地圖API得到江蘇省各市的經(jīng)緯度,使用反距離權(quán)重法求得空間權(quán)重矩陣,最后求出全局和局部Moran'sI指數(shù),進(jìn)行顯著性驗(yàn)證后得到江蘇省代理ip延遲存在空間自相關(guān)的結(jié)論。整個(gè)過(guò)程驗(yàn)證了該研究方法的可行性,成功緩解了傳統(tǒng)研究方法對(duì)生成空間權(quán)重矩陣的不便,同時(shí)利用了百度地圖的精準(zhǔn)度提高了研究的精準(zhǔn)度。
本文利用基于百度地圖API和Moran'sI指數(shù)的空間統(tǒng)計(jì)分析方法進(jìn)行實(shí)驗(yàn),并取得了良好的實(shí)驗(yàn)效果,但該方法并沒(méi)有考慮空間統(tǒng)計(jì)學(xué)中時(shí)間維度的影響,也沒(méi)有采用當(dāng)下更前端的空間統(tǒng)計(jì)檢驗(yàn)方法,只是從技術(shù)層改進(jìn)了傳統(tǒng)空間統(tǒng)計(jì)的步驟,所以討論更多改良算法是下一步研究的重點(diǎn)。
參考文獻(xiàn)
[1]白楊.Python代理IP定向采集爬蟲的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)新通信,2019,21(01):40-41.
[2]劉石磊.對(duì)反爬蟲網(wǎng)站的應(yīng)對(duì)策略[J].電腦知識(shí)與技術(shù),2017,13(15):19-21.
[3]王雪青,陳媛,劉炳勝.中國(guó)區(qū)域房地產(chǎn)經(jīng)濟(jì)發(fā)展水平空間統(tǒng)計(jì)分析——全局Moran's I、Moran散點(diǎn)圖與LISA集聚圖的組合研究[J].數(shù)理統(tǒng)計(jì)與管理,2014,33(1):59-71.
[4]王仲君,鄒亞娟,趙華玲.基于空間自相關(guān)的肺結(jié)核擴(kuò)散的機(jī)理分析[J].中國(guó)衛(wèi)生統(tǒng)計(jì),2013,30(5):630-634.
[5]曾昭法,左杰.中國(guó)省域城鎮(zhèn)化的空間集聚與驅(qū)動(dòng)機(jī)制研究——基于空間面板數(shù)據(jù)模型[J].中國(guó)管理科學(xué),2013,(S2):580-586.
[6]潘竟虎,張文,李俊峰,等.中國(guó)大范圍霧霾期間主要城市空氣污染物分布特征[J].生態(tài)學(xué)雜志,2014,33(12):3423-3431.
[7]王紅崧,周海晏.基于百度地圖API的旅游地理信息系統(tǒng)開(kāi)發(fā)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(23):60-63.
[8]戴平生,陳建寶.空間統(tǒng)計(jì)學(xué)研究應(yīng)用綜述[C]//國(guó)際應(yīng)用統(tǒng)計(jì)學(xué)術(shù)研討會(huì),2008.
[9]鄭靜,許學(xué)強(qiáng),陳浩光.廣州市人口結(jié)構(gòu)的空間分布特征分析[J].熱帶地理,1994,14(2):133-142.
[10]Cliff A D,Ord J K.Spatial Processes[M].London:Pion,1981:266.
[11]苗得文,邱滿,許忠奇,等.基于NewMap API的地圖服務(wù)系統(tǒng)在交通擁堵識(shí)別中的應(yīng)用研究[J].計(jì)算機(jī)科學(xué),2013,40(Z6):384-386.
[12]王靜.基于Scrapy的電子商務(wù)網(wǎng)絡(luò)測(cè)量與網(wǎng)絡(luò)特征分析[D].北京:北京交通大學(xué),2012.
[13]彭程.基于空間統(tǒng)計(jì)分析的農(nóng)產(chǎn)品價(jià)格數(shù)據(jù)挖掘——以豬肉價(jià)格為例[J].農(nóng)業(yè)現(xiàn)代化研究,2014,35(1):000029-32.
[14]李新,程國(guó)棟,盧玲.空間內(nèi)插方法比較[J].地球科學(xué)進(jìn)展,2000,15(3):260-265.
[15]徐偉嘉,何芳芳,李紅霞,等.珠三角區(qū)域PM_(2.5)時(shí)空變異特征[J].環(huán)境科學(xué)研究,2014,27(9):951-957.