聚类算法的分类整理
1、基于劃分的聚類算法
基于劃分的聚類算法 主要通過聚類中心的迭代重置,直到達到“簇內點足夠近,簇間點足夠遠”的目標效果,完成樣本集的最優化分。其算法優點是時間、空間復雜度低,可以處理大規模數據集。缺點包括容易陷入局部最優,對初始聚類中心的選取十分敏感,無法處理噪聲和離群點,不能解決非凸數據等。其代表算法包括K-means、CLARANS和 CLARA。以 K-means 為例,算法流程為:
- 步驟 1:初始的類簇中心采用隨機選擇的方式選取,一般人為設定為 K 個;
- 步驟 2:對剩余對象,計算其與選取的各類簇中心的距離,將其分配給距離最近的簇;
- 步驟 3:重新計算每個簇的平均值,將其作為新的聚類中心;
- 步驟 4:重復步驟 2 和 3,直到聚類結果不再變化;
2、基于密度的聚類算法
基于密度的聚類算法其算法原理是通過計算數據樣本分布的疏密情況,將高密度區域的點劃分為同一個類簇。這種方式可以處理具有復雜形狀的類簇和噪聲數據。DBSCAN 算法是典型的基于密度的聚類算法,能夠有效識別任意形狀的類簇。缺點是聚類的結果與參數有很大的關系,對于稀疏度差異很大的數據集無法取得很好的聚類效果。其算法步驟為:
- 步驟 1:從數據集中任選一個對象 p;
- 步驟 2:尋找對象 p 的直接密度可達的數據點;
- 步驟 3:若對象 p 存在直接密度可達數據點,則合并生成一個類簇,若不存在,將 p 作為一個邊界點選取下一個對象;
- 步驟 4:重復步驟 2 和 3,直到所有點都被處理。
3、基于層次的聚類算法
基于層次的聚類算法無需預先設置類簇個數,而是通過對數據集在不同層次上進行劃分來獲得樹狀聚類結構。一般分為兩種類型:合并的層次聚類和分裂的層次聚類。前者是一種自底向上的層次聚類算法,從最底層開始,每一次通過合并最相似的類簇來形成上一層次的類簇,直到滿足終止條件。后者則是采用自頂向下的方法,從一個包含全部數據點的聚類開始,然后把根節點分裂為一些子類簇,每個子類簇再遞歸地分裂下去,直到出現只包含一個數據點的類簇出現。這種算法的優點是處理速度很快,僅與類簇個數有關,與數據個數無關,可以解決非球形簇的聚類。其缺點是算法具有明顯的貪心特征,一個數據點分配錯誤,將會出現連帶性錯誤。代表算法包括 BIRCH算法、CURE 算法和 CHAMELEON 算法等。以自底向上的層次聚類算法為例,其算法步驟如下:
- 步驟 1:將每個對象看作一個類簇,計算兩兩之間的相似性;
- 步驟 2:將相似性最高的兩個類簇進行合并成為一個新的類簇;
- 步驟 3:重新計算新的類簇與所有類簇的相似性;
- 步驟 4:重復步驟 2 和 3,直到不再有可合并類簇或者類簇數滿足預先設定值。
在第二步中使用到的相似性度量方法,有很多算法,常見的有如下 5 種方法,其中 Ward 法與 Average Linkage 法比較常見:
3.1 單連接算法(SingleLinkage)
對于類 和 ,選擇這兩個類之間的任意兩個對象的最小距離作為他們合并的相似性度量方式,如公式所示:
?
3.2 全連接算法(CompleteLinkage)
該算法是單連接算法的反面,對于對于類 和 選取兩個類中距離最遠的任意兩個負荷曲線對象作為兩個類之間的距離度量方式,如公式所示。然后選取類間距最小的類進行合并。
?
3.3 平均連接算法(Average-linkage)
該算法的計算量較大,對于類和 ?,求兩個類之間所有對象兩兩之間的距離,然后再計算平均值作為兩個類的距離。然后選取所有類之間距離最小的兩個進行合并,具體如公式:
?
3.4? Ward法
選擇合并之后的類導致的類內離差平方和增加量最小的兩個類進行合并。
3.5? 質心連接(CentroidLinkage)
對于類類和 ? ,類之間的距離為聚類中心距離的平方作為距離度量:
?
4、基于網格的聚類算法
基于網格的聚類算法利用多分辨率形式的網格結構將數據空間劃分為一個個的網格單元,并在網格單元上進行類簇劃分。優點是處理速度快,與數據對象個數無關。缺點是參數敏感,無法處理不規則分布的數據,處理精度也不高。這類算法通常與基于密度的聚類算法結合從而提高聚類準確度,代表算法有 STING 算法、CLIQUE算]和 WAVE-CLUSTER 算法等。這些算法采用了不同的網格劃分方法,但其核心步驟差異不大,如下所示。
- 步驟 1:將數據空間劃分為多個互不重疊的網格;
- 步驟 2:對網格內數據進行統計;
- 步驟 3:通過統計信息找到高密度網格單元;
- 步驟 4:將相連的高密度網格單元合并為一個類簇;
- 步驟 5:將低密度網格單元劃分給距離最近的高密度網格單元所在類簇中。
5、基于模型的聚類算法
基于模型的聚類算法為每個類簇假設了一個模型,然后利用一個判斷機制尋找數據與給定模型的最佳擬合,最后完成聚類。這一類算法主要包括基于概率的模型聚類和基于神經網絡的模型聚類。基于概率的模型聚類主要采用了概率生成方法,假定同一類簇中的數據按照同一種概率分布,最常用的即為高斯混合模型(Gaussian Mixture Models, GMM)。基于神經網絡的模型聚類最常見的是 SOM 模型,其可以保持原始數據的拓撲特征,把相似的數據分配到同一類。這類算法的優點是其對數據點所屬類簇的劃分以概率的形式表現,每一類的特征也可用參數表達。缺點是處理效率不高,特別是數據量很少時,聚類效果很差。以 SOM 模型為例,其算法流程如下:
- 步驟 1:先將網絡初始化,給輸出層的每個節點權重賦值;
- 步驟 2:從輸入樣本中隨機選擇一個輸入向量,找到與該輸入向量距離最小的權重向量;
- 步驟 3:定義獲勝單元,在獲勝單元的領域內調整權重使其向輸入向量靠近;
- 步驟 4:提供新樣本,再次進行訓練;
- 步驟 5:使鄰域半徑收縮,降低學習率,重復步驟 2-4,直到滿足輸出條件,得到聚類結果。
總結
- 上一篇: 诸暨婚俗
- 下一篇: centos7安装DHCP服务器