近鄰傳播演算法
❶ 各種遙感數據分類方法比較
常用的遙感數據的專題分類方法有多種,從分類判別決策方法的角度可以分為統計分類器、神經網路分類器、專家系統分類器等;從是否需要訓練數據方面,又可以分為監督分類器和非監督分類器。
一、統計分類方法
統計分類方法分為非監督分類方法和監督分類方法。非監督分類方法不需要通過選取已知類別的像元進行分類器訓練,而監督分類方法則需要選取一定數量的已知類別的像元對分類器進行訓練,以估計分類器中的參數。非監督分類方法不需要任何先驗知識,也不會因訓練樣本選取而引入認為誤差,但非監督分類得到的自然類別常常和研究感興趣的類別不匹配。相應地,監督分類一般需要預先定義分類類別,訓練數據的選取可能會缺少代表性,但也可能在訓練過程中發現嚴重的分類錯誤。
1.非監督分類器
非監督分類方法一般為聚類演算法。最常用的聚類非監督分類方法是 K-均值(K-Means Algorithm)聚類方法(Duda and Hart,1973)和迭代自組織數據分析演算法(ISODATA)。其演算法描述可見於一般的統計模式識別文獻中。
一般通過簡單的聚類方法得到的分類結果精度較低,因此很少單獨使用聚類方法進行遙感數據專題分類。但是,通過對遙感數據進行聚類分析,可以初步了解各類別的分布,獲取最大似然監督分類中各類別的先驗概率。聚類分析最終的類別的均值矢量和協方差矩陣可以用於最大似然分類過程(Schowengerdt,1997)。
2.監督分類器
監督分類器是遙感數據專題分類中最常用的一種分類器。和非監督分類器相比,監督分類器需要選取一定數量的訓練數據對分類器進行訓練,估計分類器中的關鍵參數,然後用訓練後的分類器將像元劃分到各類別。監督分類過程一般包括定義分類類別、選擇訓練數據、訓練分類器和最終像元分類四個步驟(Richards,1997)。每一步都對最終分類的不確定性有顯著影響。
監督分類器又分為參數分類器和非參數分類器兩種。參數分類器要求待分類數據滿足一定的概率分布,而非參數分類器對數據的概率分布沒有要求。
遙感數據分類中常用的分類器有最大似然分類器、最小距離分類器、馬氏距離分類器、K-最近鄰分類器(K-Nearest neighborhood classifier,K-NN)以及平行六面體分類器(parallelepiped classifier)。最大似然、最小距離和馬氏距離分類器在第三章已經詳細介紹。這里簡要介紹 K-NN 分類器和平行六面體分類器。
K-NN分類器是一種非參數分類器。該分類器的決策規則是:將像元劃分到在特徵空間中與其特徵矢量最近的訓練數據特徵矢量所代表的類別(Schowengerdt,1997)。當分類器中 K=1時,稱為1-NN分類器,這時以離待分類像元最近的訓練數據的類別作為該像元的類別;當 K >1 時,以待分類像元的 K 個最近的訓練數據中像元數量最多的類別作為該像元的類別,也可以計算待分類像元與其 K 個近鄰像元特徵矢量的歐氏距離的倒數作為權重,以權重值最大的訓練數據的類別作為待分類像元的類別。Hardin,(1994)對 K-NN分類器進行了深入的討論。
平行六面體分類方法是一個簡單的非參數分類演算法。該方法通過計算訓練數據各波段直方圖的上限和下限確定各類別像元亮度值的范圍。對每一類別來說,其每個波段的上下限一起就形成了一個多維的盒子(box)或平行六面體(parallelepiped)。因此 M 個類別就有M 個平行六面體。當待分類像元的亮度值落在某一類別的平行六面體內時,該像元就被劃分為該平行六面體代表的類別。平行六面體分類器可以用圖5-1中兩波段的遙感數據分類問題來表示。圖中的橢圓表示從訓練數據估計的各類別亮度值分布,矩形表示各類別的亮度值范圍。像元的亮度落在哪個類別的亮度范圍內,就被劃分為哪個類別。
圖5-1 平行六面體分類方法示意圖
3.統計分類器的評價
各種統計分類器在遙感數據分類中的表現各不相同,這既與分類演算法有關,又與數據的統計分布特徵、訓練樣本的選取等因素有關。
非監督聚類演算法對分類數據的統計特徵沒有要求,但由於非監督分類方法沒有考慮任何先驗知識,一般分類精度比較低。更多情況下,聚類分析被作為非監督分類前的一個探索性分析,用於了解分類數據中各類別的分布和統計特徵,為監督分類中類別定義、訓練數據的選取以及最終的分類過程提供先驗知識。在實際應用中,一般用監督分類方法進行遙感數據分類。
最大似然分類方法是遙感數據分類中最常用的分類方法。最大似然分類屬於參數分類方法。在有足夠多的訓練樣本、一定的類別先驗概率分布的知識,且數據接近正態分布的條件下,最大似然分類被認為是分類精度最高的分類方法。但是當訓練數據較少時,均值和協方差參數估計的偏差會嚴重影響分類精度。Swain and Davis(1978)認為,在N維光譜空間的最大似然分類中,每一類別的訓練數據樣本至少應該達到10×N個,在可能的條件下,最好能達到100×N以上。而且,在許多情況下,遙感數據的統計分布不滿足正態分布的假設,也難以確定各類別的先驗概率。
最小距離分類器可以認為是在不考慮協方差矩陣時的最大似然分類方法。當訓練樣本較少時,對均值的估計精度一般要高於對協方差矩陣的估計。因此,在有限的訓練樣本條件下,可以只估計訓練樣本的均值而不計算協方差矩陣。這樣最大似然演算法就退化為最小距離演算法。由於沒有考慮數據的協方差,類別的概率分布是對稱的,而且各類別的光譜特徵分布的方差被認為是相等的。很顯然,當有足夠訓練樣本保證協方差矩陣的精確估計時,最大似然分類結果精度要高於最小距離精度。然而,在訓練數據較少時,最小距離分類精度可能比最大似然分類精度高(Richards,1993)。而且最小距離演算法對數據概率分布特徵沒有要求。
馬氏距離分類器可以認為是在各類別的協方差矩陣相等時的最大似然分類。由於假定各類別的協方差矩陣相等,和最大似然方法相比,它丟失了各類別之間協方差矩陣的差異的信息,但和最小距離法相比較,它通過協方差矩陣保持了一定的方向靈敏性(Richards,1993)。因此,馬氏距離分類器可以認為是介於最大似然和最小距離分類器之間的一種分類器。與最大似然分類一樣,馬氏距離分類器要求數據服從正態分布。
K-NN分類器的一個主要問題是需要很大的訓練數據集以保證分類演算法收斂(Devijver and Kittler,1982)。K-NN分類器的另一個問題是,訓練樣本選取的誤差對分類結果有很大的影響(Cortijo and Blanca,1997)。同時,K-NN分類器的計算復雜性隨著最近鄰范圍的擴大而增加。但由於 K-NN分類器考慮了像元鄰域上的空間關系,和其他光譜分類器相比,分類結果中「椒鹽現象」較少。
平行六面體分類方法的優點在於簡單,運算速度快,且不依賴於任何概率分布要求。它的缺陷在於:首先,落在所有類別亮度值范圍之外的像元只能被分類為未知類別;其次,落在各類別亮度范圍重疊區域內的像元難以區分其類別(如圖5-1所示)。
各種統計分類方法的特點可以總結為表5-1。
二、神經網路分類器
神經網路用於遙感數據分類的最大優勢在於它平等地對待多源輸入數據的能力,即使這些輸入數據具有完全不同的統計分布,但是由於神經網路內部各層大量的神經元之間連接的權重是不透明的,因此用戶難以控制(Austin,Harding and Kanellopoulos et al.,1997)。
神經網路遙感數據分類被認為是遙感數據分類的熱點研究領域之一(Wilkinson,1996;Kimes,1998)。神經網路分類器也可分為監督分類器和非監督分類器兩種。由於神經網路分類器對分類數據的統計分布沒有任何要求,因此神經網路分類器屬於非參數分類器。
遙感數據分類中最常用的神經網路是多層感知器模型(multi-layer percep-tron,MLP)。該模型的網路結構如圖5-2所示。該網路包括三層:輸入層、隱層和輸出層。輸入層主要作為輸入數據和神經網路輸入界面,其本身沒有處理功能;隱層和輸出層的處理能力包含在各個結點中。輸入的結構一般為待分類數據的特徵矢量,一般情況下,為訓練像元的多光譜矢量,每個結點代表一個光譜波段。當然,輸入結點也可以為像元的空間上下文信息(如紋理)等,或多時段的光譜矢量(Paola and Schowengerdt,1995)。
表5-1 各種統計分類器比較
圖5-2 多層感知器神經網路結構
對於隱層和輸出層的結點來說,其處理過程是一個激勵函數(activation function)。假設激勵函數為f(S),對隱層結點來說,有:
遙感信息的不確定性研究
其中,pi為隱層結點的輸入;hj為隱層結點的輸出;w為聯接各層神經之間的權重。
對輸出層來說,有如下關系:
遙感信息的不確定性研究
其中,hj為輸出層的輸入;ok為輸出層的輸出。
激勵函數一般表達為:
遙感信息的不確定性研究
確定了網路結構後,就要對網路進行訓練,使網路具有根據新的輸入數據預測輸出結果的能力。最常用的是後向傳播訓練演算法(Back-Propagation)。這一演算法將訓練數據從輸入層進入網路,隨機產生各結點連接權重,按式(5-1)(5-2)和(5-3)中的公式進行計算,將網路輸出與預期的結果(訓練數據的類別)相比較並計算誤差。這個誤差被後向傳播的網路並用於調整結點間的連接權重。調整連接權重的方法一般為delta規則(Rumelhart,et al.,1986):
遙感信息的不確定性研究
其中,η為學習率(learning rate);δk為誤差變化率;α為動量參數。
將這樣的數據的前向和誤差後向傳播過程不斷迭代,直到網路誤差減小到預設的水平,網路訓練結束。這時就可以將待分類數據輸入神經網路進行分類。
除了多層感知器神經網路模型,其他結構的網路模型也被用於遙感數據分類。例如,Kohonen自組織網路被廣泛用於遙感數據的非監督聚類分析(Yoshida et al.,1994;Schaale et al.,1995);自適應共振理論(Adaptive Resonance Theory)網路(Silva,S and Caetano,M.1997)、模糊ART圖(Fuzzy ART Maps)(Fischer,M.M and Gopal,S,1997)、徑向基函數(駱劍承,1999)等也被用於遙感數據分類。
許多因素影響神經網路的遙感數據分類精度。Foody and Arora(1997)認為神經網路結構、遙感數據的維數以及訓練數據的大小是影響神經網路分類的重要因素。
神經網路結構,特別是網路的層數和各層神經元的數量是神經網路設計最關鍵的問題。網路結構不但影響分類精度,而且對網路訓練時間有直接影響(Kavzoglu and Mather,1999)。對用於遙感數據分類的神經網路來說,由於輸入層和輸出層的神經元數目分別由遙感數據的特徵維數和總的類別數決定的,因此網路結構的設計主要解決隱層的數目和隱層的神經元數目。一般過於復雜的網路結構在刻畫訓練數據方面較好,但分類精度較低,即「過度擬合」現象(over-fit)。而過於簡單的網路結構由於不能很好的學習訓練數據中的模式,因此分類精度低。
網路結構一般是通過實驗的方法來確定。Hirose等(1991)提出了一種方法。該方法從一個小的網路結構開始訓練,每次網路訓練陷入局部最優時,增加一個隱層神經元,然後再訓練,如此反復,直到網路訓練收斂。這種方法可能導致網路結構過於復雜。一種解決辦法是每當認為網路收斂時,減去最近一次加入的神經元,直到網路不再收斂,那麼最後一次收斂的網路被認為是最優結構。這種方法的缺點是非常耗時。「剪枝法」(pruning)是另一種確定神經網路結構的方法。和Hirose等(1991)的方法不同,「剪枝法」從一個很大的網路結構開始,然後逐步去掉認為多餘的神經元(Sietsma and Dow,1988)。從一個大的網路開始的優點是,網路學習速度快,對初始條件和學習參數不敏感。「剪枝」過程不斷重復,直到網路不再收斂時,最後一次收斂的網路被認為最優(Castellano,Fanelli and Pelillo,1997)。
神經網路訓練需要訓練數據樣本的多少隨不同的網路結構、類別的多少等因素變化。但是,基本要求是訓練數據能夠充分描述代表性的類別。Foody等(1995)認為訓練數據的大小對遙感分類精度有顯著影響,但和統計分類器相比,神經網路的訓練數據可以比較少。
分類變數的數據維對分類精度的影響是遙感數據分類中的普遍問題。許多研究表明,一般類別之間的可分性和最終的分類精度會隨著數據維數的增大而增高,達到某一點後,分類精度會隨數據維的繼續增大而降低(Shahshahani and Landgrebe,1994)。這就是有名的Hughes 現象。一般需要通過特徵選擇去掉信息相關性高的波段或通過主成分分析方法去掉冗餘信息。分類數據的維數對神經網路分類的精度同樣有明顯影響(Battiti,1994),但Hughes 現象沒有傳統統計分類器中嚴重(Foody and Arora,1997)。
Kanellopoulos(1997)通過長期的實踐認為一個有效的ANN模型應考慮以下幾點:合適的神經網路結構、優化學習演算法、輸入數據的預處理、避免振盪、採用混合分類方法。其中混合模型包括多種ANN模型的混合、ANN與傳統分類器的混合、ANN與知識處理器的混合等。
三、其他分類器
除了上述統計分類器和神經網路分類器,還有多種分類器被用於遙感圖像分類。例如模糊分類器,它是針對地面類別變化連續而沒有明顯邊界情況下的一種分類器。它通過模糊推理機制確定像元屬於每一個類別的模糊隸屬度。一般的模糊分類器有模糊C均值聚類法、監督模糊分類方法(Wang,1990)、混合像元模型(Foody and Cox,1994;Settle and Drake,1993)以及各種人工神經網路方法等(Kanellopoulos et al.,1992;Paola and Schowengerdt,1995)。由於模糊分類的結果是像元屬於每個類別的模糊隸屬度,因此也稱其為「軟分類器」,而將傳統的分類方法稱為「硬分類器」。
另一類是上下文分類器(contextual classifier),它是一種綜合考慮圖像光譜和空間特徵的分類器。一般的光譜分類器只是考慮像元的光譜特徵。但是,在遙感圖像中,相鄰的像元之間一般具有空間自相關性。空間自相關程度強的像元一般更可能屬於同一個類別。同時考慮像元的光譜特徵和空間特徵可以提高圖像分類精度,並可以減少分類結果中的「椒鹽現象」。當類別之間的光譜空間具有重疊時,這種現象會更明顯(Cortijo et al.,1995)。這種「椒鹽現象」可以通過分類的後處理濾波消除,也可以通過在分類過程中加入代表像元鄰域關系的信息解決。
在分類過程中可以通過不同方式加入上下文信息。一是在分類特徵中加入圖像紋理信息;另一種是圖像分割技術,包括區域增長/合並常用演算法(Ketting and Landgrebe,1976)、邊緣檢測方法、馬爾可夫隨機場方法。Rignot and Chellappa(1992)用馬爾可夫隨機場方法進行SAR圖像分類,取得了很好的效果,Paul Smits(1997)提出了保持邊緣細節的馬爾可夫隨機場方法,並用於SAR圖像的分類;Crawford(1998)將層次分類方法和馬爾可夫隨機場方法結合進行SAR圖像分類,得到了更高的精度;Cortijo(1997)用非參數光譜分類對遙感圖像分類,然後用ICM演算法對初始分類進行上下文校正。
❷ MapRece之金庸的江湖人物分析項目
通過一個綜合數據分析案例:」金庸的江湖——金庸武俠小說中的人物關系挖掘「,來學習和掌握MapRece程序設計。通過本項目的學習,可以體會如何使用MapRece完成一個綜合性的數據挖掘任務,包括全流程的數據預處理、數據分析、數據後處理等。
1 任務1 數據預處理
1.1 任務描述
從原始的金庸小說文本中,抽取出與人物互動相關的數據,而屏蔽掉與人物關系無關的文本內容,為後面的基於人物共現的分析做准備。
1.2 關鍵問題
1.2.1 中文分詞和人名提取
使用開源的Ansj_seg進行分詞。Ansj_seg不僅支持中文分詞,還允許用戶自定義詞典,在分詞前,將人名列表到添加用戶自定義的詞典,可以精確識別金庸武俠小說中的人名。
但實際測試的時候發現,Ansj_seg分詞會出現嚴重的歧義問題,比如「漢子」屬於人名列表中的人名(nr),但Ansj_seg可能會錯誤地將它分類為名詞(n)。因此,如果根據詞性提取人名,會導致最後提取的人名太少。解決方法是在提取人名的時候,需要在將人名加入用戶自定義詞典的同時,構造一個包含所有人名的字典,對分詞的結果逐個進行測試,如果在字典里,就是人名。
1.2.2 文件傳輸
使用HDFS傳遞數據。考慮到人名列表文件已經存放在了HDFS里,所以使用HDFS的方式不需要移動人名列表文件,只需要在Configuration中設置文件在HDFS文件系統中的路徑,然後在Mapper的setup()函數里調用HDFS的函數獲取文件內容即可。
1.2.3 單詞同現演算法
兩個單詞近鄰關系的定義:實驗要求中已經說明,同現關系為一個段落。
段落劃分:非常慶幸的是,小說原文中一個段落就是一行,因此,不需要自己定義FileInputFormat和RecordReader。
1.3 MapRece設計
1.3.1 Mapper
1.3.2 Recer
1.3.3 Driver
2 任務2 特徵抽取:人物同現統計
2.1 任務描述
完成基於單詞同現演算法的人物同現統計。在人物同現分析中,如果兩個人在原文的同一段落中困嫌出現,則認為兩個人發生了一次同現關系。我們需要對人物之間的同現關系次數進行統計,同現關系次數越多,則說明兩人的關系越密切。
2.2 關鍵問題
2.2.1 人名冗餘
在同一段中,人名可能多次出現,任務一隻負責提取出所有的人名,沒有剔除多餘的人名,任務必須在輸出同現次數之前汪簡手處理冗餘人名。我的做法是在Mapper中創建一個集合,把所有人名放入集合中,集合會自動剔除冗餘的人名。
2.2.2 同現次數統計
兩個人物之間應該輸出兩個鍵值對,如「狄雲」和「戚芳」,應該輸出「<狄雲,戚芳> 1」和「<戚芳,狄雲> 1」。多個段落中允許輸出相同的鍵值對,因此,Recer中需要整合具有相同鍵的輸出,輸出總的同現次數。
2.3 MapRece設計
2.3.1 Mapper
2.3.2 Recer
3 任務3 特徵處理:人物關系圖構建與特徵歸一化
3.1 任務描述
根據任務2人物之間的共現關系,生成人物之間的關系圖。人物關系使用鄰接表的形式表示,人物是頂點,人物之間關系是邊,兩個人的關系的密切程度由共現次數體現,共現次數越高,邊權重越高。另外需要對共現次數進行歸一化處理,確保某個頂點的出邊權重和為1。
3.2 關鍵問題
3.2.1 確保人物的咐攜所有鄰居輸出到相同結點處理
在Mapper結點將輸入的鍵值對「<狄雲,戚芳> 1」拆分,輸出新的鍵值對「<狄雲> 戚芳:1」,「狄雲」的所有鄰居會被分配給同一個Recer結點處理。
3.2.2 歸一化
在Recer結點首先統計該人物與所有鄰居同現的次數和sum,每個鄰居的的同現次數除以sum就得到共現概率。為了提高效率,在第一次遍歷鄰居的時候,可以把名字和共現次數保存在鏈表裡,避免重復處理字元串。
3.3 MapRece設計
3.3.1 Mapper
3.3.2 Recer
4.1 任務描述
經過數據預處理並獲得任務的關系圖之後,就可以對人物關系圖作數據分析,其中一個典型的分析任務是:PageRank 值計算。通過計算 PageRank,我們就可以定量地獲知金庸武俠江湖中的「主角」們是哪些。
4.2 PageRank原理
PageRank演算法由Google的兩位創始人佩奇和布林在研究網頁排序問題時提出,其核心思想是:如果一個網頁被很多其它網頁鏈接到,說明這個網頁很重要,它的PageRank值也會相應較高;如果一個PageRank值很高的網頁鏈接到另外某個網頁,那麼那個網頁的PageRank值也會相應地提高。
相應地,PageRank演算法應用到人物關系圖上可以這么理解:如果一個人物與多個人物存在關系連接,說明這個人物是重要的,其PageRank值響應也會較高;如果一個PageRank值很高的人物與另外一個人物之間有關系連接,那麼那個人物的PageRank值也會相應地提高。一個人物的PageRank值越高,他就越可能是小說中的主角。
PageRank有兩個比較常用的模型:簡單模型和隨機瀏覽模型。由於本次設計考慮的是人物關系而不是網頁跳轉,因此簡單模型比較合適。簡單模型的計算公式如下,其中Bi為所有連接到人物i的集合,Lj為認為人物j對外連接邊的總數:
在本次設計的任務3中,已經對每個人物的邊權值進行歸一化處理,邊的權值可以看做是對應連接的人物占總邊數的比例。設表示人物i在人物j所有邊中所佔的權重,則PageRank計算公式可以改寫為:
4.3.2 PageRanklter類
GraphBuilder將數據處理成可供迭代的格式,PageRank的迭代過程由PageRanklter類實現,包含一個Map和Rece過程。Map過程產生兩種類型的<key,value>:<人物名,PageRrank值>,<人物名,關系鏈表>。第一個人物名是關系鏈表中的各個鏈出人物名,其PR值由計算得到;第二個人物名是本身人物名,目的是為了保存該人物的鏈出關系,以保證完成迭代過程。以上面的輸出為例,則Map過程產生的鍵值對為<完顏萍, 1.0 0.005037>,<小龍女, 1.0 0.017632>,……,<一燈大師, #完顏萍:0.005037783;……>。
Rece過程將同一人物名的<key,value>匯聚在一起,如果value是PR值,則累加到sum變數;如果value是關系鏈表則保存為List。遍歷完迭代器里所有的元素後輸出鍵值對<人物名,sum#List>,這樣就完成了一次迭代過程。
PR值排名不變的比例隨迭代次數變化的關系圖如下,由於我們考慮的是找出小說中的主角,所以只要關心PR值前100名的人物的排名的變化情況,可以看到迭代次數在10以後,PR值排名不變的比例已經趨於穩定了,所以基於效率考慮,選取10作為PR的迭代次數。
4.3.3 PageRankViewer類
當所有迭代都完成後,我們就可以對所有人物的PageRank值進行排序,該過程由PageRankViewer類完成,包含一個Map和Rece過程。Map過程只提取迭代過程輸出結果中的人物名以及對應的PageRank值,並以PageRank值作為key,人物名作為value輸出。為了實現PageRank值從大到小排序,需要實現DescFloatComparator類來重寫compare方法以達成逆序排序。由於可能存在PageRank值相同的情況,所以還需要一個rece過程來把因PageRank值相同而匯聚到一起的人物名拆開並輸出。
PageRankMapper
PageRankRecer
Driver類
5.1 任務描述
標簽傳播(Label Propagation)是一種半監督的圖分析演算法,他能為圖上的頂點打標簽,進行圖頂點的聚類分析,從而在一張類似社交網路圖中完成社區發現。在人物關系圖中,通過標簽傳播演算法可以將關聯度比較大的人物分到同一標簽,可以直觀地分析人物間的關系。
5.2 標簽傳播演算法原理
標簽傳播演算法(Label Propagation Algorithm,後面簡稱LPA)是由Zhu等人於2002年提出,它是一種基於圖的半監督學習方法,其基本思路是用已標記節點的標簽信息去預測未標記節點的標簽信息。LPA基本過程為:(1)每個結點初始化一個特定的標簽值;(2)逐輪更新所有節點的標簽,直到所有節點的標簽不再發生變化為止。對於每一輪刷新,節點標簽的刷新規則如下:對於某一個節點,考察其所有鄰居節點的標簽,並進行統計,將出現個數最多的那個標簽賦值給當前節點。當個數最多的標簽不唯一時,隨機選擇一個標簽賦值給當前節點。
LPA與PageRank演算法相似,同樣需要通過迭代過程來完成。在標簽傳播演算法中,節點的標簽更新通常有同步更新和非同步更新兩種方法。同步更新是指,節點x在t時刻的更新是基於鄰接節點在t-1時刻的標簽。非同步更新是指,節點x在t時刻更新時,其部分鄰接節點是t時刻更新的標簽,還有部分的鄰接節點是t-1時刻更新的標簽。若LPA演算法在標簽傳播過程中採用的是同步更新,則在二分結構網路中,容易出現標簽震盪的現象。在本次設計中,我們考慮到了兩種更新方法,並進行了比較。
5.3 標簽傳播演算法在maprece上的實現細節
5.3.1 LPAInit類
為實現LPA的迭代過程,需要先給每個人物賦予一個獨特標簽,標簽初始化由LPAInit類完成,僅包含一個Map過程。標簽由數字表示,Map過程由1開始,為每一個人物名賦予一個獨特的標簽。為了便於後面的可視化分析,我們需要把PageRank值和標簽整合在一起,所以LPAInit的輸入文件直接採用PageRank過程的輸出文件,格式如下:
5.3.2 LPAIteration類
LPAIteration類完成標簽的更新過程,其格式與LPAInit的輸出格式一致,包含一個Map和Rece過程。Map過程對輸入的每一行進行切割,輸出四種格式的<key,value>:<人物名,關系鏈表>,<人物名,PageRank值>,<人物名,標簽>,<鏈出人物名,標簽#起點人物名>。第四種格式個鍵值對是為了將該節點的標簽傳給其所有鄰居。
Rece過程對value值進行識別,識別可以通過Map過程把預先定義好的特殊字元如『#』、『@』來實現前綴到value上來實現。由於人物關系圖中的各個邊都是有權重的,並且代表兩個人物的相關程度,所以標簽更新過程不是用邊數最多的標簽而是權重最大標簽來更新,我們可以預先把權重最大的若干個保存到一個鏈表中,如果存在多個權重相同的標簽,則隨機選取一個作為該人名新的標簽。非同步方法更新標簽需要使用一個哈希表來存儲已經更新標簽的人物名和它們的新標簽,並且在更新標簽時使用該哈希表裡面的標簽。同步方法更新標簽則不需要存儲已更新的標簽。
本次設計中比較了同步和非同步更新兩種方法,下圖為標簽不變的比例隨迭代次數的變化。可以發現,非同步收斂速度更快,只要6次迭代即可完全收斂,且標簽不變的比例可達100%。而同步更新方法則不能達到100%,說明人物關系圖中存在子圖是二部子圖。
5.3.3 LPAReorganize類
LPA演算法迭代收斂後,所有人物名的標簽不再變化,但是此時的標簽排列是散亂的,需要把同一標簽的人物名整合在一起。該過程由LPAReorganize類完成,包含一個Map和Rece過程。Map過程對輸入的每一行進行切割,以<標簽,人物名#PageRank值#關系鏈表>格式輸出。Rece過程中,同一標簽的人物名匯聚在一起,然後根據每個標簽人物集合的大小從大到小排序,重新賦予標簽(從1開始)。這樣輸出文件中同一標簽的人物名就會聚集在一起。最後的輸出格式如下:
5.3.2 LPAMapper類
LPAIteration類完成標簽的更新過程,其格式與LPAInit的輸出格式一致,包含一個Map和Rece過程。Map過程對輸入的每一行進行切割,輸出四種格式的<key,value>:<人物名,關系鏈表>,<人物名,PageRank值>,<人物名,標簽>,<鏈出人物名,標簽#起點人物名>。第四種格式個鍵值對是為了將該節點的標簽傳給其所有鄰居。
5.3.2 LPARecer類
Rece過程對value值進行識別,識別可以通過Map過程把預先定義好的特殊字元如『#』、『@』來實現前綴到value上來實現。由於人物關系圖中的各個邊都是有權重的,並且代表兩個人物的相關程度,所以標簽更新過程不是用邊數最多的標簽而是權重最大標簽來更新,我們可以預先把權重最大的若干個保存到一個鏈表中,如果存在多個權重相同的標簽,則隨機選取一個作為該人名新的標簽。非同步方法更新標簽需要使用一個哈希表來存儲已經更新標簽的人物名和它們的新標簽,並且在更新標簽時使用該哈希表裡面的標簽。同步方法更新標簽則不需要存儲已更新的標簽。
Driver類
6.1 可視化工具Gephi
Gephi是一款開源的跨平台的基於JVM的復雜網路分析軟體。把PageRank和LPA的結果,轉化為gexf格式,在Gephi中繪制圖像並分析大數據實驗結果,更加直觀、易於理解。
gexf實際上是一種特殊的XML文件,python的gexf庫提供了介面方便我們編輯和生成gexf文件,因此我們選擇使用python處理PageRank和LPA的結果。頂點有兩種屬性,LPA生成的標簽和PageRank計算的PR值,每條邊的權重是PageRank計算出的值。在可視化的時候,標簽決定頂點顯示的顏色,PR值決定標簽的
6.2 可視化預處理
編寫一個python程序transform2xml.py,將數據分析部分得到的PR值,標簽以及點連接關系處理成一個可供Gephi讀取的gexf文件。
6.3 可視化結果
7 輸出結果截圖
7.2 同現次數統計
7.4 PageRank
❸ 遙感圖像分類法
圖像分類是與圖像信息提取和增強不同的遙感圖像處理中另一重要的方面,與圖像增強後仍需人為解譯不同,它企圖用計算機做出定量的決定來代替人為視覺判譯步驟。因此,分類處理後輸出的是一幅專題圖像。在此圖像中,原來圖像中的每一個象元依據不同的統計決定準則被劃歸為不同的地表覆蓋類,由於是一種統計決定,必然伴隨著某種錯誤的概率。因此,在邏輯上的合理要求是,對每一個象元所做的決定,應是使整個被分類面積即對大量單個象元的分類的某個錯誤判據為最小。
以下是幾種常用的遙感圖像分類方法:
1.最大似然分類(maximum likelihood classification)
最大似然分類是一種基於貝葉斯判別准則的非線性監督分類方法,需要知道已知的或確定的訓練樣區典型標準的先驗概率P(wi)和條件概率密度函數P(wi,x)。P(wi)通常根據各種先驗知識給出或假定它們相等:P(wix)則是首先確定其分布形式,然後利用訓練樣本估計其參數。一般假設為正態分布,或通過數學方法化為正態分布。其判別函數集為:
Di(x)=P(wix),i=1,2,…,m (2-2)
如果Di(x)≥ Dj(x),則x屬於wi類。其中,j≠i,j=1,2,…,m。m為類別數。
從上述最大似然分類的說明看,其關鍵就在於已知類別的定義,先驗概率的確定,參與分類的變數的好壞和結果誤差評價。直到現在,最大似然分類至少還有兩個缺點:一是事先大量人力已知光譜類的選擇和定義:二是需要長時間的計算機分類計算時間。實際上這也使得最大似然分類法遙感應用受到了限制,因此許多人專門研究改進演算法以便解決和縮減圖像分類的時間,提高分類的精度。Solst和Lillesand(1991)為了解決已知類別定義消耗大量人力的缺點,發展了半自動訓練法進行已知光譜類的定義。Fabio Maselli等(1992)利用Skidmore和Tumer提出的非參數分類器計算出各已知類訓練集的先驗概率,然後將它們插入常規的最大似然分類過程中進行分類。該方法融合了非參數和參數分類過程的優點,提高了分類的精度。
通常情況下,地形會影響到訓練集數據,這樣訓練集光譜數據就偏離了最大似然分類的假設條件正態分布,從而常規的最大似然分類法在地形起伏較大的地區效果並不太好。為了解決這一問題,C.Conese和G.Maracchi和F.Maselli(1993)提出了一種改進的最大似然分類演算法,即去掉每一類數據集中與第一主成分相關的信息(地形信息)然後再進行分類。通過試驗,這種方法是有效的,分類精度得到了提高。
K.Arai(1993)用光譜和空間信息進行分類改進了最大似然分類方法。該方法簡單易行,大大提高了正確分類的概率。C.Conese和Fabio Maselli(1992)用誤差矩陣提高最大似然分類面積估計的精度。Irina Kerl(1996)加最大似然分類精度的一種方法,即多概率比較法。他對同一遙感數據的原始波段、主成分和植被指數的22種組合進行了最大似然分類,發現沒有一種波段組合的分類能給出圖像中所有土地利用類型的精確分類,每一波段組合僅對圖像中的一兩類土地利用類型分類有效。因此他提出將能有效區分出所要決定的土地利用類型的幾個波段組合的分類結果進行組合來進行圖像分類,並稱這種方法為多概率比較法,這種方法的基礎就是圖像數據不同波段組合的分類結果之間分類概率大小的比較。應用這種方法提高了分類的精度。
2.最小距離分類(minimum distance classification)
最小距離分類是一種線性判別監督分類方法,也需要對訓練區模式樣本進行統計分析,是大似然分類法中的一種極為重要的特殊情況。最小距離分類在演算法上比較簡單,首先需選出要區分類別的訓練樣區,並且從圖像數據中求出各類訓練樣區各個波段的均值和標准差,然後再計算圖像中其他各個象元的灰度值向量到各已知類訓練樣區均值向量之間的距離。如果距離小於指定的閾值(一般取標准差的倍數),且與某一類的距離最近,就將該象元劃歸為某類。因此稱為最小距離分類。該方法的精度主要取決於已知類訓練樣區的多少和樣本區的統計精度。另外,距離度量的方法不同,分類的結果也不相同,常見的有:
(1)明氏距離(minkowski distance)
中亞地區高光譜遙感地物蝕變信息識別與提取
式中Tij=-Tij。
③經過①②步後,隨機象元X被劃歸為正確的類。
另外,通過對參與計算變數的排序和部分一總和邏輯的考慮,可大大降低該演算法計算的時間。與最小距離(歐氏距離)和最大似然分類器相比,整體平均分類器所用時間最少,分類精度與最小距離大致相同,對像農田面積和森林這樣的名義類型的分類十分有效。
Haluk Cetin(1996)提出了一種分類方法:類間距離頻率分布法(interclass distance frequency dis-tribution),這是多光譜數據非參數分類方法的一種。類間距離頻率分布過程簡單,是一種有力的可視化技術,它圖形地顯示多光譜數據和類分布。首先選擇感興趣的類,這些類的統計信息從典型的訓練樣區可獲得。利用類的平均測量矢量計算多光譜數據中每個象元的距離,並存放在一個兩維數據分布數組中。選擇其他類的訓練區,訓練區數據的分布通過距離計算可獲得。通過可視化地檢查結果,建立分類查詢表(look-up table),然後利用分類查詢表進行多光譜圖像數據的分類,具體細節請參見原文。
H.N.Srikanta Prakash等(1996)改進了遙感數據凝聚聚類分析,這是一種基於相互近鄰概念,用來進行多光譜數據分類的非參數、層次、凝聚聚類分析演算法。該方法定義了圍繞象元的感興趣區域(area of interest around each pixel),然後在它內部尋找分類時初始合並操作需要的k最近鄰,將象元的特徵值、波段值和象元的相對位置值一起考慮,提出了改進的距離量度,這樣,大大減少了計算的時間和內存的需求,降低了分類的誤差概率。
Steven E.Franklin和Bradley A.Wilson(1992)設計了3階段分類器進行遙感圖像的分類,它由一個基於四叉樹的分割運算元、一個高斯最小距離均值測試和一個包括輔助地理網數據和光譜曲線測量的最終測試構成。與最大似然分類技術相比,3階段分類器的總體分類精度得到了提高,減少計算時間,另外僅需最少的訓練樣區數據(它們在復雜地形區很難獲得)。