李江鵬
(廣西金融職業技術學院 廣西南寧 530007)
數據挖掘K-Means算法在實踐應用中的分析
李江鵬
(廣西金融職業技術學院 廣西南寧 530007)
在數據挖掘中,聚類分析K-Means算法幾乎是目前最主流的算法和應用了,因為其技術的成熟和算法的可靠,并且所建模型的見解、高校、易理解和易實施,所以被廣泛應用于商業實踐中,在數據化運營實踐中,我們發現K-Means算法有其需要重點注意事項,通過優化這些注意事項,可以使K-Means算法更高效、應用得更好。
K-Means算法;聚類分析;數據挖掘
K-Means聚類算法是使用最普遍的一種聚類算法。名稱中的K食指算法所有尋找的群集數。K的取值需要算法的使用者事先設定。為便于解釋,本文用二維變量下的二維圖形來展示該技術。值得注意的是,一般情況下輸入變量大都多于二維。但是,把輸入變量限定為二維可以使用二維空間的離散點來簡單形象地說明聚類過程,該過程對于高維變量的數據而言也相同。
每一條記錄都被看成是一個離散點,這也意味著所有的輸入變量都必須是數值型的。數據在散點圖上的分布就像云一樣。聚類算法的目標是找到K個點作為群集的中心。群集的中心定義了群集:將每條記錄分配到與它最近的群集中心所在的群集中。
很明顯,好的群集中心應該在數據云中最密集的區域。可以將群集中心的最佳分配方式定義為:使所有的數據點到其最近群集中心的聚類或者距離平方和最小。找到這些最優解比較困難,K-Means算法也沒打算這樣做。相反,其開始時隨機選定一些點作為群集中心點,然后采用一系列步驟加以改進。所以在改進的過程中就有一些需要注意的事項。
2.1 如何處理數據噪聲和異常值
K-Means算法對噪聲和異常值是非常敏感的,這些個別數據對于平均值的影響非常大,相對而言,K-中心點的方法不像K-Means算法,它不是求樣本的平均值,而是用類中最接近于中心點的對象來代表類,因此K-中心點的方法對于噪聲和異常值沒有K-Means算法那么敏感。鑒于K-Means算法的這一局限性,我們應用該算法時需要特別注意這些數據噪聲和異常值,常用處理方法如下:
(1)直接刪除那些比其他任何數據點都要遠離聚類中心點的異常值。為了防止誤刪的情況發生,數據挖掘中需要在多次的聚類循環中監控這些異常值,然后依據業務邏輯與多次的循環結果進行對比,再決定是否刪除這些異常值。
(2)隨機抽樣的方法也可以較好地規避數據噪聲的影響。因為是隨機抽樣,作為稀有事件的數據噪聲和異常值能被隨機抽進樣本中的概率會很小,這樣隨機抽出的樣本就比較干凈。針對該隨機樣本進行聚類分析時不僅可以避免數據噪聲的誤導和干擾,而且其聚類后的結果作為聚類模型可以應用到生育的數據集中,完成對整個數據集的聚類劃分。利用這種隨機抽樣方式得到的聚類模型,在應用于整個數據集時至少有以下兩種方式:
①直接用該聚類模型對剩余的數據集進行判斷,也就是把剩余的數據分配給那些離他們最近的聚類中心,這種方法最簡單、最直觀、最快捷。
②利用監督學習中的分類器的原理,每個聚類被認為是一個類別,已經參與聚類的這些隨機抽樣數據則被看作是學習的樣本,由此產生的分類器可以用于判斷剩余的那些數據點最適合放進那個類別或者那個聚類群體中。這種方式較第一種方式來說比較費時,尤其是當聚類出來的群體較多的時候,利用分類器的原理去分別判斷時會更加耗時。
2.2 數據標準化
在數據化運營的商業實踐中,參與聚類的變量絕大多數都是區間型變量,不同區間型變量之間區間型變量之間的單位數量不同,如果不加處理直接進行聚類,很容易造成聚類結果的失真。比如,長度單位有的是公里,有的是毫米;質量單位有的是噸,有的是克;一般而言,變量的單位越小,變量可能的值域就越大,對聚類結果的影響也就越大。為了避免對度量單位選擇的依賴,在聚類之前所才去的一個重要的技術措施就是進行數據標準化。
數據的標準化有多種不同的方式,其中,以標準差標準化最常用。標準差標準化,又叫Z-Score標準化,經過這種方法處理后的數據符合標準正太分布,即均值為0,標準差為1,其轉化公式如下:

式中:μ-所有樣本數據的均值;σ-所有樣本數據的標準差。
2.3 聚類變量的少而精
在聚類分析中,參與聚類的指標變量不能太多,如果太多,一方面會顯著增加運算的時間,更重要的是變量之間或多或少的相關性會嚴重損害聚類的效果,并且太多的變量參與期中后會使隨后的聚類群體的業務解釋變得很復雜。鑒于此,聚類之前,如何精心挑選特定的少數變量參與聚類是聚類分析技術應用的有一個關鍵點。
那么要如何落實聚類變量少而精的原則呢?本文提出以下幾點:
(1)緊緊圍繞具體分析目的和業務需求挑選聚類變量。在分析展開之前,密切保持與業務需求方的溝通,借鑒業務方的業務經驗和業務直覺,直接排除大量無關的指標變量,鎖定與項目需求關系最密切的核心變量。任何數據挖掘項目都是有明確挖掘任務定義的,聚類分析也如此,在聚類之前應該明確的聚類應用目的。然后根據這個目的挑選一些相應的字段。比如:如果在10000個用戶樣本中,想從產品使用習慣不同的角度來細分群體,以此調整我們的客戶服務,可以優先考慮把產品使用頻率,產品檔次、主要損耗件的類別等作為其中的聚類字段;而如果要從不同的購買習慣的角度來劃分群體,以供營銷策劃參考,則會把付費的方式、產品檔次、是否響應促銷等作為優先考慮的聚類字段。這主要是想說明,對于任何具體的聚類項目,都應該事先在腦海里有一些相應的基本核心字段可以與該項目相匹配,而不能不管是什么項目、什么任務、什么目的,把所有變量統統放進去,這樣做是沒有任何意義的。
(2)通過相關性監測,可防止相關性高的變量同時進入聚類計算。比如:互聯網行業的分析中,登陸次數、在線時長、PV瀏覽量等這些變量相互之間都是有明顯關系的,只取其中一個變量就足夠了。
(3)數據分析也好,數據挖掘也好,其本身是充滿想象藝術的,所謂一半是科學、一半是藝術,這是聚類分析在實踐中應用的特點。數據分析在很多時候是需要一些衍生變量來畫龍點睛的。我們常常容易從現有的數據庫中提取縣城的字段,而經常忘記一些衍生的新字段,比如比率。很多時候,我們的分析中有太多直接提取的絕對值字段,而常會忘記增添一些有價值的相對值字段,什么時候要考慮哪些有價值的比率字段,這需要業務知識和挖掘經驗來支持的。
(4)主要成分分析,作為一種常用的降維方法,可以在聚類之前進行數據清理,幫助有效精簡變量的數量,確保參與聚類運算變量的少而精。然而任何事物都是具有兩面性的,主成分分析在幫助聚類算法精簡輸入變量數目的同時,也會造成聚類結論的可解釋性、可理解性上相對于原始變量而言更加復雜,在直觀上不容易理解。
以上的內容總結的聚類分析都是在典型業務場景中的應用。除此之外,聚類分析還有更多的擴展應用,這些擴展應用有的能顯著提升單純聚類分析所無法實現的商業應用價值,有的可以作為輔助工具提升其他建模工具的應用效果,而效果很顯著,還有的突破了常規聚類應用的場景,參與到個性化推薦的應用中了。聚類分析技術的這些擴展應用,生動體現了數據挖掘分析技術在業務實踐中的生命力,也對人們提出了自我專業提升的方向和思路,即與時俱進、緊貼業務需求、以不變的聚類原理,從容應對萬變的業務員場景和業務需求。
[1]張立.基于新聞評論數據的K-means聚類算法的研究[D].太原理工大學,2010.
[2]于劍,程乾生.模糊聚類方法中的最佳聚類數的搜索范圍[J].中國科學:E 輯,2002,32(2):274~280.
[3]楊燕,薪蕃.微粒群優化算法研究現狀及其發展[J].計算機工程,2004,30(21).
[4]張麗平,俞歡軍,陳德釗,等.粒子群優化算法的分析與改進[J].信息與控制,2004,33(5).
TP311
A
1004-7344(2016)01-0285-02
2015-12-25