❶ 各種遙感數據分類方法比較
常用的遙感數據的專題分類方法有多種,從分類判別決策方法的角度可以分為統計分類器、神經網路分類器、專家系統分類器等;從是否需要訓練數據方面,又可以分為監督分類器和非監督分類器。
一、統計分類方法
統計分類方法分為非監督分類方法和監督分類方法。非監督分類方法不需要通過選取已知類別的像元進行分類器訓練,而監督分類方法則需要選取一定數量的已知類別的像元對分類器進行訓練,以估計分類器中的參數。非監督分類方法不需要任何先驗知識,也不會因訓練樣本選取而引入認為誤差,但非監督分類得到的自然類別常常和研究感興趣的類別不匹配。相應地,監督分類一般需要預先定義分類類別,訓練數據的選取可能會缺少代表性,但也可能在訓練過程中發現嚴重的分類錯誤。
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演算法對初始分類進行上下文校正。
❷ 全面歸納距離和相似度計算方法
距離(distance,差異程度)、相似度(similarity,相似程度)方法可以看作是以某種的距離函數計算元素間的距離,這些方法作為機器學習的基礎概念,廣泛應用於如:Kmeans聚類、協同過濾推薦演算法、相似度演算法、MSE損失函數等等。本文對常用的距離計算方法進行歸納以及解析,分為以下幾類展開:
對於點x=(x1,x2...xn) 與點y=(y1,y2...yn) , 閔氏距離可以用下式表示:
閔氏距離是對多個距離度量公式的概括性的表述,p=1退化為曼哈頓距離;p=2退化為歐氏距離;切比雪夫距離是閔氏距離取極限的形式。
曼哈頓距離 公式:
歐幾里得距離公式:
如下圖藍線的距離即是曼哈頓距離(想像你在曼哈頓要從一個十字路口開車到另外一個十字路口實際駕駛距離就是這個「曼哈頓距離」,此即曼哈頓距離名稱的來源,也稱為城市街區距離),紅線為歐幾里得距離:
切比雪夫距離起源於國際象棋中國王的走法,國際象棋中國王每次只能往周圍的8格中走一步,那麼如果要從棋盤中A格(x1,y1)走到B格(x2,y2)最少需要走幾步?你會發現最少步數總是max(|x2-x1|,|y2-y1|)步。有一種類似的一種距離度量方法叫切比雪夫距離。
切比雪夫距離就是當p趨向於無窮大時的閔氏距離:
距離函數並不一定是距離度量,當距離函數要作為距離度量,需要滿足:
由此可見,閔氏距離可以作為距離度量,而大部分的相似度並不能作為距離度量。
閔氏距離也是Lp范數(如p==2為常用L2范數正則化)的一般化定義。
下圖給出了一個Lp球( ||X||p = 1 )的形狀隨著P的減少的可視化圖:
距離度量隨著空間的維度d的不斷增加,計算量復雜也逐增,另外在高維空間下,在維度越高的情況下,任意樣本之間的距離越趨於相等(樣本間最大與最小歐氏距離之間的相對差距就趨近於0),也就是維度災難的問題,如下式結論:
對於維度災難的問題,常用的有PCA方法進行降維計算。
假設各樣本有年齡,工資兩個變數,計算歐氏距離(p=2)的時候,(年齡1-年齡2)² 的值要遠小於(工資1-工資2)² ,這意味著在不使用特徵縮放的情況下,距離會被工資變數(大的數值)主導, 特別當p越大,單一維度的差值對整體的影響就越大。因此,我們需要使用特徵縮放來將全部的數值統一到一個量級上來解決此問題。基本的解決方法可以對數據進行「標准化」和「歸一化」。
另外可以使用馬氏距離(協方差距離),與歐式距離不同其考慮到各種特性之間的聯系是(量綱)尺度無關 (Scale Invariant) 的,可以排除變數之間的相關性的干擾,缺點是誇大了變化微小的變數的作用。馬氏距離定義為:
馬氏距離原理是使用矩陣對兩兩向量進行投影後,再通過常規的歐幾里得距離度量兩對象間的距離。當協方差矩陣為單位矩陣,馬氏距離就簡化為歐氏距離;如果協方差矩陣為對角陣,其也可稱為正規化的歐氏距離。
根據向量x,y的點積公式:
我們可以利用向量間夾角的cos值作為向量相似度[1]:
餘弦相似度的取值范圍為:-1~1,1 表示兩者完全正相關,-1 表示兩者完全負相關,0 表示兩者之間獨立。餘弦相似度與向量的長度無關,只與向量的方向有關,但餘弦相似度會受到向量平移的影響(上式如果將 x 平移到 x+1, 餘弦值就會改變)。
另外,歸一化後計算歐氏距離,等價於餘弦值:兩個向量x,y, 夾角為A,歐氏距離D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA
協方差是衡量多維數據集中,變數之間相關性的統計量。如下公式X,Y的協方差即是,X減去其均值 乘以 Y減去其均值,所得每一組數值的期望(平均值)。
如果兩個變數之間的協方差為正值,則這兩個變數之間存在正相關,若為負值,則為負相關。
皮爾遜相關系數數值范圍也是[-1,1]。皮爾遜相關系數可看作是在餘弦相似度或協方差基礎上做了優化(變數的協方差除以標准差)。它消除每個分量標准不同(分數膨脹)的影響,具有平移不變性和尺度不變性。
卡方檢驗X2,主要是比較兩個分類變數的關聯性、獨立性分析。如下公式,A代表實際頻數;E代表期望頻數:
Levenshtein 距離是 編輯距離 (Editor Distance) 的一種,指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。允許的編輯操作包括將一個字元替換成另一個字元,插入一個字元,刪除一個字元。
像hallo與hello兩個字元串編輯距離就是1,我們通過替換」a「 為 」e「,就可以完成轉換。
漢明距離為兩個等長字元串對應位置的不同字元的個數,也就是將一個字元串變換成另外一個字元串所需要替換的字元個數。例如:1011101 與 1001001 之間的漢明距離是 2,「toned」 與 「roses」 之間的漢明距離是 3
另外的,對於字元串距離來說,不同字元所佔的份量是不一樣的。比如」我樂了「 與【「我怒了」,」我樂了啊」 】的Levenshtein 距離都是1,但其實兩者差異還是很大的,因為像「啊」這種語氣詞的重要性明顯不如「樂」,考慮字元(特徵)權重的相似度方法有:TF-IDF、BM25、WMD演算法。
Jaccard 取值范圍為0~1,0 表示兩個集合沒有重合,1 表示兩個集合完全重合。
但Dice不滿足距離函數的三角不等式,不是一個合適的距離度量。
基礎地介紹下信息熵,用來衡量一個隨機變數的不確定性程度。對於一個隨機變數 X,其概率分布為:
互信息用於衡量兩個變數之間的關聯程度,衡量了知道這兩個變數其中一個,對另一個不確定度減少的程度。公式為:
如下圖,條件熵表示已知隨機變數X的情況下,隨機變數Y的信息熵,因此互信息實際上也代表了已知隨機變數X的情況下,隨機變數Y的(信息熵)不確定性的減少程度。
JS 散度解決了 KL 散度不對稱的問題,定義為:
群體穩定性指標(Population Stability Index,PSI), 可以看做是解決KL散度非對稱性的一個對稱性度量指標,用於度量分布之間的差異(常用於風控領域的評估模型預測的穩定性)。
psi與JS散度的形式是非常類似的,如下公式:
PSI的含義等同P與Q,Q與P之間的KL散度之和。
DTW 距離用於衡量兩個序列之間的相似性,適用於不同長度、不同節奏的時間序列。DTW採用了動態規劃DP(dynamic programming)的方法來進行時間規整的計算,通過自動warping扭曲 時間序列(即在時間軸上進行局部的縮放),使得兩個序列的形態盡可能的一致,得到最大可能的相似度。(具體可參考[5])
圖結構間的相似度計算,有圖同構、最大共同子圖、圖編輯距離、Graph Kernel 、圖嵌入計算距離等方法(具體可參考[4][6])。
度量學習的對象通常是樣本特徵向量的距離,度量學習的關鍵在於如何有效的度量樣本間的距離,目的是通過訓練和學習,減小或限制同類樣本之間的距離,同時增大不同類別樣本之間的距離,簡單歸類如下[2]:
最後,附上常用的距離和相似度度量方法[3]:
❸ k-means與RFM模型結合進行用戶群體劃分
在CRM系統中經常要對用戶進行劃分,以標記不同的標簽,進行個性化的營銷觸達動作。通常的用戶群體劃分會使用用戶的一些屬性信息,例如年齡,職業,性別等。但是這些屬性基本上都是用戶本身的特徵屬性,並不是和品牌關聯產生的屬性信息。另外一種常用的用戶模型,就是 RFM模型 ,是以用戶的實際購買行為數據作為基礎,進行用戶群體的劃分的,在實踐中更加具有實際價值。
RFM模型由三個指標組成,分別為:
最近一次消費 (Recency)
消費頻率 (Frequency)
消費金額 (Monetary)
可以看到這三個屬性都是通過用戶的購買行為計算得出的,這些指標基本上代表了用戶是否活躍,購買能力,忠誠度等信息。
而我們的目標是通過對每個用戶的RFM屬性進行計算,將用戶群體劃分為不同的種類進行區分,以便我們進行分析和精準營銷。例如我們可以分析出高價值用戶,重點發展用戶,流失用戶等群體進行針對性營銷動作。
本文將使用Python的一些工具包,對用戶數據集進行分析處理,例如建立RFM模型,數據標准化,以及使用k-means聚類演算法將用戶群體進行劃分。需要讀者具有一些基礎的Python和數據統計知識。
首先我們通過一些訂單數據分析得到一部分用戶的樣本數據來:
這里包括了用戶的id,總購買筆數,總購買金額以及最後一筆訂單時間的信息。我們將文件載入進來,截取一部分後對欄位類型進行處理:
為了將其轉化為我們要使用的RFM屬性,我們需要對last_order_date進行處理,轉換為最後一次訂單時間到目前的天數。這樣我們就獲得了RFM的基本屬性,分別為last_order_day_from_now(R), total_order_count(F), total_order_price(M)。處理完成後對數據進行可視化觀察數據分布:
其散點圖為:
我們會發現實際上的數據大部分都聚集在了一起,並且有一些非常離散的極端值數據,這對我們後續進行數據聚類會產生不利影響,所以我們使用log函數對數據進行處理,讓其分布的更加均勻:
可以看到現在數據分布的已經比較均勻了,這為我們進行聚類打下一個比較好的基礎。但同時我們也會發現RFM這三個屬性的單位卻並不相同,分別是天數,交易筆數和交易金額。這就造成了其數值差別巨大。而聚類演算法一般都是使用不同向量間的距離進行計算劃分的,屬性單位不同造成的數值差異過大會造成計算距離時的權重分布不均衡,也並不能反映實際情況,所以我們還要對數據進行標准化處理,這里我們使用z-score對RFM屬性進行加工運算。
z-score是一種數據標准化的計算方法,其公式為:
z = (x – μ) / σ
μ代表x所屬數據組的平均值,σ代表x所屬數據組的方差。所以通過z-score計算,我們將絕對值數據轉化為一個數據在所屬數據組中的位置(得分),這樣不同單位和類型間的數據使用z-score做相互的比較也就有了一定的意義。
這時候會看到數據不但分布較為均勻,而且不同維度間的數值差異也很小了,這樣我們可以把三種不同單位的屬性一起進行處理。
當我們建立好RFM的數據模型之後,期望通過不同的RFM值,對用戶進行區分以進行精準化營銷。當然我們可以通過對RFM這三組數值的平均值或者中位數和每個用戶進行比較,以建立起一個數據立方,進行群體劃分。但另外一方面,一般來說用戶群體會大致符合28原則,80%左右的收入是由20%左右的客戶所貢獻的,所以根據平均值或者中位數進行群體劃分也並不能總是科學的反應出不同的用戶群體來,所以我們也可以基於數據本身的特性,使用聚類演算法進行處理,以便讓數據更加「自然」的區分。
這里我們選用非常常用的k-means演算法進行聚類計算,k-means聚類的原理並不復雜,首先隨機的或者通過更高效的方式(例如k-means++)選取k個點,然後不斷迭代的計算,修正這k個點的坐標,目的是讓集合中的每個點的距離(有很多種距離演算法,比較常用的是歐氏距離)都和k個點里的其中一個盡量的近,而和其他的盡量的遠。這樣數據集合就能根據自身的分布規律,自然的區分出不同的類別來。
這里我們將k值設定為3,也就是將數據劃分為三個部分,通過使用我們處理後的RFM屬性進行計算,最終我們得到:
可以看到不同的顏色代表不同的用戶類別,可以簡單的認為標記為0的是流失用戶,1是重點發展用戶,2是高價值用戶。這樣我們就可以對不同的群體使用適合的營銷策略了,同時當有新的用戶加入後,我們也可以使用得到的k-means模型對其進行預測劃分。
在使用這種方式做實際的數據處理時,可能因為數據分布的原因導致區分度並不是特別好,因為根據銷售數據進行用戶區分,並不是總能發現比較明顯的區分「界限」,也就是不同群體間的邊界其實是非常模糊和混雜的(從上面的最終分析圖也可以看出這樣的情況),所以從這個角度講,單純通過RFM模型和聚類進行用戶群體劃分也是有它的局限性的。