什麼是聚類任務
「無監督學習」中研究最多,應用最廣的學習任務,除此以外,還有密度估計(density estimation)和異常檢測(anomaly detection)。在無監督學習中,訓練樣本的標記信息是未知的,目標是經過對無標記訓練樣本的學習揭示數據的內在性質及規律,爲進一步的數據分析提供基礎。算法
聚類(clustering)將數據集中的樣本劃分爲若干個一般不相交的子集,每一個子集稱爲一個「簇」(cluster),每一個簇可能對應一個潛在的概念(類別)。這些概念對聚類算法而言,事先是未知的,聚類過程僅能自動造成簇結構,簇所對應的概念語義需由使用者把握和命名。機器學習
聚類能作什麼,如何用?
聚類既能做爲一個單獨過程,找尋數據內在的分佈結構;也可做爲分類等其餘學習任務的前驅過程:根據聚類結果,將每一個簇定義爲一個類,而後再基於這些類訓練分類模型。性能
如何判別聚類的好壞?
即採用什麼樣的性能度量指標?學習
比較好的距離結果知足同一簇的樣本近可能彼此類似,不一樣簇樣本儘量不一樣。即聚類結果的「簇內類似度」(intra-cluster similarity)高且「簇間類似度」(inter-cluster similarity)低。spa
聚類性能度量也稱聚類「有效性指標」(validity index)。大體有兩類:一類將聚類結果與某個「參考模型」(reference model)進行比較,稱爲「外部指標」(external index);另外一類是直接考察聚類結果而不利用任何參考模型,稱爲「內部指標」(internal index)。prototype
經常使用的外部指標:ci
Jaccard 係數(Jaccard Coefficient,簡稱JC)原型
FM指數(Fowlkes and Mallows Index,簡稱 FMI)數據分析
Rand指數(Rand Index,簡稱 RI)it
經常使用的內部指標:
DB指數(Davies-Bouldin Index,簡稱DBI)
Dunn指數(Dunn Index,簡稱DI)
在使用內部指標度量聚類結果時,須要使用樣本間的距離度量。
經常使用距離度量:
閔可夫斯基距離(Minkowski distance):針對連續屬性(continuous attribute)和有序屬性(ordinal attribute)
VDM 距離(Value Difference Metric):針對無序屬性(non-ordinal)
注:屬性分爲連續屬性和離散屬性,離散屬性又分爲有序屬性和無序屬性。
聚類算法的分類
聚類算法大致可分爲三類:原型聚類、密度距離和層次聚類。其基本思想具體以下:
原型聚類
亦稱「基於原型的聚類」(prototype-based clustering),此類算法假設聚類結構能經過一組原型刻畫,在現實聚類任務中極爲經常使用。一般狀況下,算法先對原型進行初始化,而後對原型進行迭代更新求解。採用不一樣的原型表示、不一樣的求解方法,將產生不一樣的算法。常見的原型聚類算法有K均值算法、學習向量量化(Learning Vector Quantization, LVQ)和高斯混合聚類(Mixture of Gaussian)。
密度聚類
亦稱「基於密度的聚類」(density-based clustering),此類算法假設聚類結構能經過樣本分佈的緊密程度肯定。一般情形下,密度聚類算法從樣本密度的角度來考察樣本之間的可連續性,並基於可連續樣本不斷擴展聚類簇,以得到最終的聚類結果。常見的密度聚類算法有DBSCAN(Density-Based Spatial Clustering of Application with Noise)
層次聚類
層次聚類(hierarchical clustering)試圖在不一樣層次對數據集進行劃分,從而造成樹形的聚類結構。數據集的劃分可採用「自底向上」的聚合策略,也可採用「自頂向下」的分拆策略。
AGNES(Agglomerative NESting)是一種採用自底向上聚合策略的層次聚類算法。它將數據集中的每一個樣本看做是一個初始聚類簇,而後在算法運行的每一步中找出距離最近的兩個聚類簇進行合併,該過程不斷重複,直至達到預設的聚類簇個數。
參考資料
[1] 周志華. 機器學習. 北京:清華大學出版社. 2016.197~217