數據挖掘——常用聚類算法總結

概述

數據挖掘常又被稱爲價值發現或者是數據勘探,一般是指從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的,人們事先不知道的、但又是潛在有用的信息和知識的過程。它是一種大量數據的高級處理方式。
常用的數據挖掘算法分爲四大類:聚類、分類、關聯以及推薦算法。另外還有一個預處理:降維算法

聚類算法

聚類是在一羣未知類別標號的樣本上,用某種算法將他們分成若干類別,這是一種無監督學習。其主要研究數據間邏輯上或物理上的相互關係。由聚類所組成的簇是一組數據對象的集合,這些對象與同一簇中的對象彼此類似,與其他簇中的對象相異。其分析結果不僅可以揭示數據間的內在聯繫與區別,還可以爲進一步的數據分析與知識發現提供重要依據。聚類算法的聚類效果如圖所示
聚類效果圖 常用的聚類算法由k-means聚類算法、Canopy 聚類算法、FCM(Fuzzy C-Means,模糊C 均值)聚類算法、DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基於密度的聚類方法)聚類算法、LDA(Latent Dirichlet Allocation,隱含狄利克雷分配)算法、層次聚類算法、基於EM(Expectation-Maximization,最大期望)的聚類算法等。以下將對上述聚類算法從算法的簡介、算法優缺點等幾個方面進行簡單介紹,通過綜合對比選擇合適的算法進行設計和應用。

k-means聚類算法

K-means 算法是一種最基本的基於距離的劃分的聚類算法,爲十大數據挖掘算法之一。K-means 算法在對所給數據集進行聚類時,採用的是“非此即彼”的硬聚類方式。
K-means 算法使用時必須知道K 值的大小,即聚類的數目。
k-means 算法的優點

  1. K-means 算法簡單快捷,容易理解
  2. K-means 算法可伸縮性好且效率高
  3. k-means算法對所有的數據樣本都進行聚類;
  4. k-means算法對滿足高斯分佈、均勻分佈的數據類型聚類效果表較好;

k-means算法的缺點

  1. k-means對初始聚類中心敏感;
  2. k-means需要事先確定聚類個數;
  3. k-means對孤立點和噪聲點相對敏感;

針對K-means 算法中的K 值及初始中心點的事先確定,已經有很多相關的成熟的理論研究和工程應用。特別地,對K-means 算法在使用時需要事先確定K 值的難點問題,團隊在先前的項目中已經做過大量的研究,並提出有效的確定K 值的方法。
K-means 算法應用實例:K-means 算法在期刊《現代防禦技術》2015 年12 月第43卷第6 期的論文題目爲“一種新的Kmeans 聚類雷達信號分選算法”中被採用。該算法自動獲取初始聚類中心和聚類數目後,對頻率捷變雷達信號進行分選。仿真結果驗證了論文采用該算法對信號分選進行仿真實驗,仿真結果證明分選方法的正確性和可行性。

FCM算法

FCM 算法是Bezdek 在1973 年提出的一種基於劃分的模糊聚類算法。該算法是採用隸屬度來確定每個數據點屬於某個聚類程度的一種方法。相比於K-means 算法,FCM則是一種柔性的模糊劃分法。
FCM算法的優點

  1. FCM 算法具有深厚的數學基礎
  2. FCM算法不易陷入局部最優解;
  3. FCM 算法對滿足正態分佈的數據聚類效果很好。

FCM算法的缺點

  1. FCM 算法對孤立點敏感;
  2. 算法需事先確定隸屬度參數m 和聚類數目K;

Canopy 算法

Canopy 算法是不需要事先指定聚類數目的粗聚類方法。在對聚類的精度要求相對較低,速度要求相對較高的情況下,可直接採用Canopy 聚類算法直接對數據樣本進行處理。或者有精度要求的情況下,可以用它來作爲K-means 或FCM 聚類算法的預處理步驟,先得到K 值,再進行精確的聚類。所以Canopy 算法具有很高的實際應用價值。
Canopy 算法的優點:
1. Canopy 算法計算收斂快;
2. K-means 和FCM 對噪聲抗干擾較弱,可通過Canopy 預處理從而去幹擾;
3. Canopy 算法選擇出來的中心點/聚類數作爲K-means 算法的初始條件比較科學;
4. 進一步用K-means/FCM 精確聚類時,只需針對每個Canopy 中的數據進行處理;
5. 極大地減小相似計算的數量。

Canopy 算法的缺點:
1. 算法的精度不是很高;
2. 算法需要事先確認兩個距離閾值。

層次聚類算法

層次聚類算法是將所有的數據集自底向上合併成一棵樹或自頂向下分裂成一棵樹的過程,這兩種方式分別稱爲凝聚和分裂。對凝聚層次聚類算法,在初始階段,將每個樣本點分別當作其類簇,然後合併這些原子類簇直到達到預期的類簇數或者其他終止條件;而對於分裂層次的聚類算法,在初始階段,將所有的樣本點當作同一類簇,然後分裂這個大類簇直至達到預期的類簇數或者其他終止條件。
層次聚類算法的優點:

  1. 層次聚類算法不需要預先制定聚類數;
  2. 層次聚類算法可以發現類的層次關係;
  3. 當改變聚類的數目時,不需要再次計算數據點的歸屬。

層次聚類算法的缺點

  1. 計算複雜度太高;
  2. 算法很可能聚類成鏈狀;
  3. 奇異值會對聚類效果有很大的影響。

LDA算法

LDA 文本聚類算法基於LDA 主題模型,最早由Blei 等人提出。LDA 主題模型是近年來在文本處理領域發展起來的一種概率生成模型,也是主題模型中具有代表性的概率生成模型之一。LDA 主題模型是一個生成性的三層貝葉斯網絡,將詞和文章通過潛在主題相關聯。與許多其他的概率模型類似,LDA 中也做了詞袋假設,即在模型中不考慮特徵詞的順序,只考慮它們的出現次數。
LDA算法的優點

  1. LDA 算法具有完備的數據理論;
  2. LDA 算法具有清晰的邏輯結構;
  3. LDA 算法是天生的適合大數據環境下的文本聚類。

LDA算法的缺點

  1. LDA 算法收斂速度比較慢;
  2. LDA 算法的主題數目是人工估計的。

DBSCAN 算法

DBSCAN 算法是一種基於密度的空間聚類算法。該算法要求聚類空間中的一定區域內所包含對象(點或其他空間對象)的數目不小於某一給定領域密當改變聚類的數目時,不需要再次計算數據點的歸屬。度閾值,即將具有足夠密度的區域劃分爲簇,並在具有噪聲的空間數據庫中發現任意形狀的簇,它將簇定義爲密度相連點的最大集合。

DBSCAN 算法的優點:

  1. DBSCAN 能夠識別出噪聲點;
  2. DBSCAN 可以發現任意形狀的簇類;
  3. DBSCAN 不需要事先知道要形成的簇類數量。

DBSCAN 算法的缺點:

  1. DBSCAN 算法的計算複雜度較高;
  2. 對不滿足給定條件的樣本點會作爲噪聲點剔除;
  3. 算法對稀疏的高維數據性能差,因對高維數據,歐幾里得密度定義不能很好理解;
  4. 因算法直接對數據庫進行操作,當數據量增大時,要求較大的內存支持且I/O消耗也很大;
  5. 算法聚類時採用全局性的表徵密度參數,當空間聚類的密度不均勻、聚類間距差相差很大時,聚類質量較差;
  6. 算法雖然對於數據庫中樣本的順序不敏感,但對於處於簇類之間邊界的樣本,可能會根據哪個簇類優先被探測到而將其歸屬有所擺動;
  7. 算法須指定兩個參數:半徑和最小密度閾值。所以對用戶定義的參數敏感,細微的不同都可能導致差別很大的結果,而參數的選擇無規律可循,只能靠經驗確定。

EM算法

在統計計算中,EM 算法是在EM 算法容易陷入局部最優解;概率模型中尋找參數最大似然估計的方法,爲十大數據挖掘算法之一。其中概率模型依賴於無法觀測的隱藏變量。最大期望經常用在機器學習和計算機視覺的數據集聚類領域。
EM算法的優點:

  1. 當改變聚類的數目時,不需要再次計算數據點的歸屬。
  2. 算法簡單
  3. 算法穩定

EM算法的缺點

  1. EM 算法容易陷入局部最優解;
  2. EM 算法迭代慢、次數多,用做聚類,性能比K-means 差很多;
  3. 在實際應用中,EM 算法的主要用途是進行參數估計,故更適合作爲算法的優化。

總結

上面介紹的各種算法的優缺點可簡化如下表所示。

算法名稱 時間複雜度 聚類數目是否指定 對噪聲點敏感 聚類效果
K-means 敏感
Canopy 較快 不敏感 一般
FCM 敏感
LDA 較慢 不敏感
層次聚類 敏感 一般
DBSCAN 不敏感 一般
EM 不敏感 一般

通過以上表的綜合比較可以看出,K-means 算法、Canopy 算法、FCM 算法和LDA 算法具有明顯的優勢,所以本方案將實現這四種算法。特別地,其中K-means 算法和FCM算法在雷達信號處理中已經被應用。

創建了一個技術交流羣,有興趣可加我微信,一起討論雜七雜八的技術,共同進步
加好友備註:你的博客名&&隨便給我的任意文章點個贊或留言
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章