機器學習演算法筆記之8:聚類演算法
一、聚類任務
在“無監督學習”(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是一種採用自底向上聚合策略的層次聚類演算法。它先將資料集中的每個樣本看作一個初始聚類簇,然後在演算法進行的每一步中找出距離最近的兩個聚類簇進行合併,該過程不斷重複,直至達到預設的聚類簇個數。應用過程中只需要給定一個計算聚類簇之間距離的計算方法即可。
相關文章
- 機器學習中的聚類演算法演變及學習筆記機器學習聚類演算法筆記
- 機器學習Sklearn系列:(五)聚類演算法機器學習聚類演算法
- 聚類之dbscan演算法聚類演算法
- 機器學習(8)——其他聚類機器學習聚類
- 聚類之K均值聚類和EM演算法聚類演算法
- 機器學習筆記之Kmeans演算法機器學習筆記演算法
- 機器學習演算法筆記之4:貝葉斯分類器機器學習演算法筆記
- 機器學習筆記之樸素貝葉斯分類演算法機器學習筆記演算法
- 《機器學習實戰》kMeans演算法(K均值聚類演算法)機器學習演算法聚類
- 機器學習之k-means聚類演算法(python實現)機器學習聚類演算法Python
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- 聚類演算法聚類演算法
- 《Spark機器學習》筆記——Spark構建聚類模型Spark機器學習筆記聚類模型
- 【Python機器學習實戰】聚類演算法(2)——層次聚類(HAC)和DBSCANPython機器學習聚類演算法
- 機器學習演算法筆記之3:線性模型機器學習演算法筆記模型
- 機器學習筆記之Logistic迴歸演算法機器學習筆記演算法
- 機器學習筆記(KNN演算法)機器學習筆記KNN演算法
- mahout之聚類演算法——KMeans分析聚類演算法
- 機器學習 之 層次聚類機器學習聚類
- 機器學習-聚類分析之DBSCAN機器學習聚類
- 機器學習演算法筆記之5:支援向量機SVM機器學習演算法筆記
- 機器學習學習筆記之——演算法鏈與管道機器學習筆記演算法
- 機器學習演算法學習筆記機器學習演算法筆記
- 聚類(part3)--高階聚類演算法聚類演算法
- Mahout學習之聚類演算法Kmeans聚類演算法
- 9.1.6 DBSCAN聚類演算法————機器學習實戰第二版聚類演算法機器學習
- OPTICS聚類演算法原理聚類演算法
- 初探DBSCAN聚類演算法聚類演算法
- 聚類演算法綜述聚類演算法
- DBSCAN密度聚類演算法聚類演算法
- BIRCH聚類演算法原理聚類演算法
- Meanshift,聚類演算法聚類演算法
- 機器學習演算法筆記之6:資料預處理機器學習演算法筆記
- 14聚類演算法-程式碼案例六-譜聚類(SC)演算法案例聚類演算法
- python機器學習筆記:EM演算法Python機器學習筆記演算法
- 機器學習筆記(1): 梯度下降演算法機器學習筆記梯度演算法
- 機器學習—聚類5-1(K-Means演算法+瑞士捲)機器學習聚類演算法
- 可伸縮聚類演算法綜述(可伸縮聚類演算法開篇)聚類演算法