機器學習演算法筆記之8:聚類演算法

marsjhao發表於2020-04-06

一、聚類任務

在“無監督學習”(unsupervisedlearning)中,訓練樣本的標記資訊是未知的,目標是通過對無標記訓練樣本的學習來揭示資料的內在性質和規律,最常用的就是“聚類”(clustering)。

聚類試圖將資料集中的樣本劃分為若干個通常是不相交的子集,每個子集稱為一個“簇”(cluster)。聚類過程只能自動形成簇結構,簇對應的概念語義需由使用者來把握和命名。

聚類既能作為一個單獨過程,用於找尋資料內在的分佈結構,也可作為分類等其他學習任務的前驅過程。

二、效能度量

聚類效能度量亦稱聚類“有效性指標”(validityindex)。對聚類結果,我們需要通過某種效能度量來評估其好壞;另一方面,若明確了效能度量,則可直接將其作為聚類過程的優化目標,從而更好地得到符合要求的聚類結果。聚類的結果應該是“簇內相似度”(intra-cluster similarity)高且“簇間相似度”(inter-clustersimilarity)低。

聚類效能度量大致有兩類:一類是將聚類結果與某個“參考模型”進行比較,稱為“外部指標”;另一類是直接考察聚類結果而不利用任何參考模型,稱為“內部指標”。

三、距離計算

對函式dist(·,·),若它是一個“距離度量”(distancemeasure),則需要滿足以下性質:非負性、同一性、對稱性、直遞性。

直遞性:

給定樣本,最常用的是“閔可夫斯基距離”(Minkowski distance)

上式顯然滿足距離度量的基本性質。

p=2時,即為歐式距離;p=1時,即為曼哈頓距離。

我們常將屬性劃分為“連續屬性”和“離散屬性”,前者在定義域上有無窮多個可能的取值,後者在定義域上是有限個取值。再進行距離計算時,屬性上是否定義了“序”關係更為重要。例如{1,2,3}能直接在屬性值上計算距離,這樣的屬性稱為“有序屬性”;而{飛機,火車,輪船}這樣的離散屬性不能直接在屬性值上計算距離,稱為“無序屬性”。閔可夫斯基距離可用於有序屬性,對於無序屬性可採用VDM(Value Difference Metric)。當樣本空間中不同屬性的重要性不同時,可使用“加權距離”(weigted distance),通常各權重之和為1。

基於某種形式的距離來定義的“相似度度量”(similaritymeasure),距離越大,相似度越小。用於相似度度量的距離未必一定要滿足距離度量的所有基本性質,尤其是直遞性,這樣的距離稱為“非度量距離”(non-metric distance)。

四、原型聚類

原型聚類亦稱“基於原型的聚類”(prototype-basedclustering),此類演算法假設聚類結果能夠通過一組原型刻畫,在現實聚類任務中極為常用。通常情形下,演算法先對原型進行初始化,然後對原型進行迭代更新求解。

1. k均值演算法

給定樣本集,“k均值”(k-means)演算法要針對聚類所得簇劃分最小化平方誤差,μ是簇Ci的均值向量。上式在一定程度上刻畫了簇內樣本圍繞簇均值向量的緊密程度,E值越小則簇內樣本相似度越高。

為避免執行時間過長,通常設定一個最大執行輪數或最小調整幅度閾值,若達到最大輪數或調整幅度小於閾值,則停止執行。

2. 學習向量量化

與k均值演算法類似,“學習向量量化”(Learning Vector Quantization,LVQ)也是試圖找到一組原型向量來刻畫聚類結構,不同的是LVQ假設資料樣本帶有類別標記,學習過程中利用樣本的這些監督資訊來輔助聚類。

五、密度聚類

密度聚類亦稱“基於密度的聚類”(density-basedclustering),此類演算法假設聚類結構能通過樣本分佈的緊密程度確定。通常情形下,密度聚類演算法從樣本密度的角度來考察樣本之間的可連線性,並基於可連線樣本不斷擴充套件聚類簇以獲得最終的聚類結果。

DBSCAN是一種著名的密度聚類演算法,它基於一組“鄰域”引數來刻畫樣本分佈的緊密程度。給定資料集,定義下面幾個概念:

-鄰域:對,其-鄰域包含樣本D中與xj的距離不大於的樣本,即;(dist(·,·)預設情況下設為歐式距離)

核心物件:若xj的-鄰域至少包含MinPts個樣本,即,則xj是一個核心物件;

密度直達:若xj位於xi的-鄰域中,且xi是核心物件,則稱xj有xi密度直達;

密度可達:對xi與xj,若存在樣本序列p1,p2,…,pn,其中p1=xi,pn=xj且pi+1由pi密度直達,則稱xj由xi密度可達;

密度相連:對xi與xj,若存在xk使得xi與xj均有xk密度可達,則稱xi與xj密度相連。

基於這些概念,DBSCAN將“簇”定義為:由密度可達關係匯出的最大的密度相連樣本集合。形式化的說,給定鄰域引數,簇是滿足以下性質的非空樣本子集:連線性,xi與xj密度相連;最大性,xi屬於C,xj由xi密度可達推出xj屬於C。

六、層次聚類

層次聚類試圖在不同層次上對資料集進行劃分,從而形成樹形的聚類結構。資料集的劃分可採用“自底向上”的聚合策略,也可採用“自頂向下”的分拆策略。

AGNES是一種採用自底向上聚合策略的層次聚類演算法。它先將資料集中的每個樣本看作一個初始聚類簇,然後在演算法進行的每一步中找出距離最近的兩個聚類簇進行合併,該過程不斷重複,直至達到預設的聚類簇個數。應用過程中只需要給定一個計算聚類簇之間距離的計算方法即可。

相關文章