聚類算法
1.概念
聚類 -> 無監督學習(無分類、分組信息)
實現 -> 距離、相似性系數
目的 -> 數據預處理 -> 復雜數據結構(多維) -> 標準化
發現數據之間的依賴關系,刪除或合并有密切依賴關系的數據
2.分類
1.基于劃分的聚類方法
自頂向下
概念:n個元素組成的數據集D, 將數據分成k(k <= n)個簇
典型算法:k-means(k-平均), k-medoids(k-中心)
特點:
優 -> 收斂速度快
缺 -> 根據數據k可以合理的估計,初始中心的選擇和噪聲對聚類結果產生很大影響
2.基于層次的聚類方法
對數據進行層次分解,直到滿足某種條件
自底向上
典型算法:凝聚式層次聚類 (AGNES(AGglomerativeNESing))
每個對象為一個簇,根據簇之間的距離,將距離最近的點合并到同一個簇,重復操作,直到達到某個終止條件為止
簇與簇之間距離計算:
1.最短距離法 -> 將簇與簇的距離定義為簇與簇之間數據對象的最短距離
2.中間距離法
3.類平均法
自頂向下
典型算法:分裂式層次聚類(DIANA(DivisiveANAlysis))
所有個體為一個簇,逐漸細分為更小的簇,直到每個數據對象都在不同的簇中,或達到某個中止條件
3.基于密度的聚類方法
尋找被低密度區域分離的高密度區域
特點:
1.基于距離的聚類算法的聚類結果是球狀的簇,基于密度的聚類算法可以發現任意形狀的簇
2.從數據對象分布的的密度著手,如果給定類的數據對象在給定的范圍中,則數據對象的密度超過某一閾值就繼續聚類
3.通過連接密度較大的區域,形成不同的簇,可以消除孤立點和噪聲對聚類質量的影響,形成任意形狀的簇
典型算法:DBSAN、OPTICS、DENCLUE
4.基于網格的聚類方法
將空間量化為有限數目的單元,形成一個網格結構,所有聚類都在網格上進行,建立網格單元的集合
特點:
優 -> 處理速度快,處理時間獨立于數據對象數,僅依賴量化空間中每一維的單元數
缺 -> 只能發現邊界是水平或垂直的簇,而不能檢測到斜邊界,而且在處理高維數據時,網格單元數目會隨著屬性維度的增長而成指數級增長
5.基于模型的聚類方法
優化給定數據和某些數學模型之間的適應性,給每一個簇假定了一個模型,尋找數據對給定模型的最佳組合
假定的模型可能是代表數據對象在空間分布情況的密度函數或者其他函數
原理:假定目標數據集是由一系列潛在的概率分布決定的
優化給定數據和某些數據模型之間的適應性
Question
1.基于模型的聚類方法,如何尋找數據對給定模型的最佳組合
基于模型的聚類方法中有很多算法,不同的算法在如何尋找數據對給定模型的最佳組合方面可能略有不同。不過一般來說,這些算法都需要先定義出一個合適的模型,并將數據按照這個模型進行分組,得到初始的聚類結果后,再通過優化算法不斷調整分組的方式,以期得到更加合理的聚類結果。其中常用的優化算法包括k-means算法、層次聚類算法等。
具體而言,尋找數據對給定模型的最佳組合通常包括以下步驟:
1.選擇合適的模型。不同的數據集適合不同的模型,因此首先需要選擇適合當前數據集的合適的模型。
2.初始化。根據選擇的模型,需要確定聚類的數量,并隨機初始化一組聚類中心點。
3.計算每個數據點到各個聚類中心的距離。根據選定的相似度度量規則,計算每個樣本點到每個聚類點的距離或者相似度。
4.將數據點分配到距離最近的聚類中心。每個數據點都屬于距離他最近的聚類中心所在的簇。
5.調整聚類中心。將簇內所有數據點的坐標平均值作為新的聚類中心。
6.重復迭代,直到聚類中心不再發生變化或達到最大迭代次數時停止迭代。
7.評估聚類結果。通過一些指標(如輪廓系數、DB指數等)來評估當前的聚類結果是否合理,是否需要進一步優化。
以上是一般基于模型的聚類方法尋找數據對給定模型的最佳組合的大致流程。當然,具體實現還需要根據所使用的算法進行具體調整和優化。
2.k-means算法不是基于劃分的聚類方法嗎,為什么基于模型的聚類方法也會用到
k-means算法是一種基于劃分的聚類算法,而基于模型的聚類方法則不一定是基于劃分的,有些可能使用層次聚類等其他算法。在基于模型的聚類方法中,可能會選擇合適的模型,如高斯混合模型、概率分布模型等,然后將數據按照這個模型進行聚類。以高斯混合模型為例,可以通過最大期望算法來估計模型參數,得到每個數據點屬于每個混合成分的概率,并將概率最大的混合成分作為數據點所屬的簇。因此,在基于模型的聚類方法中,可能會使用k-means算法等基于劃分的聚類算法作為子任務來實現更復雜的聚類操作。

浙公網安備 33010602011771號