關於聚類(Clustering)

2021-10-08 17:28:02 字數 3764 閱讀 8050

聚類即物以類聚,他是為了實現將資料按照某一標準(相似度)將整個資料集分為若干子集(簇),最終的分類結果要盡量保證組內相似度盡可能大,組間相似度盡可能小。

聚類是典型的無監督學習(unsupervised learning),它與分類問題最明顯的區別就是分類問題有事先的標註,而聚類的分組是完全靠自己學習得來的。

聚類可以作為乙個單獨的學習過程,為了尋找資料的內部分布結構,也可以作為其他任務的前驅過程。

上面提到聚類的分類需要按照某一標準進行分類,這一標準常常是計算兩資料之間的相似度進行判斷。下圖是對相似度計算方式的總結:

其中minkowski距離是所有正規化距離的統稱,p=1時為曼哈頓距離,p=2時為歐式距離

聚類的方法大致可分為以下幾類:

基於劃分的聚類,如k-means

層次聚類,如agglomerative clustering

密度聚類,dbscan

基於模型的聚類:高斯混合模型(gmm)

譜聚類(spectral clustering)、ap聚類演算法(affinity propagation)等。

1、演算法思想

基於劃分的演算法,想要的效果就是在需要聚類的散點資料集中劃分出類內點足夠近,類間點足夠遠。

2、演算法流程:

·隨機選擇k個物件,每個物件表示乙個簇的初始中心

·對剩餘的資料點,根據他到不同中心距離選擇最短距離的中心點將其分類

·分完後重新計算每個簇的均值,更新中心點

·不斷重複第二步和第三步,直到中心點位置變化不大為止。

3、演算法優缺點:

優點:·簡單高效

·時空複雜度都較低

缺點:·需要預先設定k值且對一開始的隨機點位置很敏感

·容易形成區域性最優解

·對雜訊和離群值很敏感

·不能解決非凸(non-convex)資料

1、演算法思想:

dbscan這類基於密度的演算法更像是人眼觀察的分類結果,他對於處理不規則形狀的分布和噪點都有較好的效果。這個演算法將資料集中的點分為核心點、邊緣點和噪點(如下圖),然後根據自己定義的鄰域進行劃分。

這裡面,ε鄰域表示所有到某xi點距離小於ε的集合,核心物件指其鄰域中資料點多於閾值的點,其中,相同鄰域的點為密度直達(下圖左p,q),通過相同鄰域的點能與其他鄰域的點相聯絡的點稱為密度可達(下圖右p,q)。

2、演算法流程:

整個演算法就是將所有密度可達的點分為乙個簇,不斷尋找密度可達的點,沒有則更改物件點,再開始下乙個簇。

3、演算法優缺點:

優點:·對噪點不敏感

·能劃分任意不同形狀

缺點:·聚類的結果會受到初始設定的引數影響。對於稀疏程度不同的資料集,相同的判定標準會破壞聚類的結構。

1、高斯分布

高斯分布有時也被稱作正態分佈,是滿足自然規律的一種常見的資料分布情況。

高斯分布的概率密度函式公式計算如下:

其中μ為均值,σ表示標準差。

2、gmm

對於高斯混合模型,計算公式可寫成:

其中n()表示某乙個分量,這個分量個數k是根據資料可以分成幾個簇設定的。其中πk可以看成加權平均的權重,且所有πk之和為1,並且πk大於零。

從計算公式中可以看出,會出現k個π、μ、σ未知數。因為在計算時是隨機從圖中選擇分量取點,那麼如何確定所取點來自哪乙個簇也就是確定π值則成為乙個問題。這裡用到了em(expectation-maximization)演算法來計算引數。

3、計算過程

說明em計算引數之前,先利用貝葉斯思想對原式進行處理。

通過定理中增加的引數可以看出,引入了乙個隱含引數z用來描述之前提到的歸屬哪乙個分量的問題,同時引入後驗概率用於計算π、μ、σ。

em演算法大致分兩步,第一步先計算需求引數的粗略值,第二步使用第一步的值最大化似然函式。

em演算法:

1、根據資料定義分量數k,然後計算p(x

∣π,μ

,σ)=

∑k=1

kπkn

(x∣μ

k,σk

)p\left( x| \pi ,\mu ,\sigma \right) =\sum ^_\pi _n\left( x| \mu _,\sigma _\right)

p(x∣π,

μ,σ)

=∑k=

1k​π

k​n(

x∣μk

​,σk

​)的對數似然函式。

2、根據當前的πk、μk、σk計算後驗概率。

3、根據第2步計算得到的後驗概率計算新的πk、μk、σk

其中:nk=

∑n=1

nγ(z

nk)n_=_γ(z_)}

nk​=∑n

=1n​

γ(zn

k​)4、檢查引數是否收斂或對數似然函式是否收斂,若不收斂,則返回第2步。

4、gmm相較於k-means的優勢

1、靈活。根據標準差引數,gmm可以採用任意橢圓形狀而不是單一的圓形。k-means實際是gmm的乙個特例。

2、由於gmm提供的不是乙個硬性的聚類,而是乙個概率,每個資料點可以有多個聚類。所以對於處於兩個簇交叉區域的點可以給兩個概率分別表示它屬於某乙個類的概率。

層次聚類可以分成自上而下或自下而上兩種,自下而上是先將每個樣本視為自己一類,然後進行依次向上聚合,又稱為凝聚,自上而下則是先視為一類,在進行細分。

下圖展示了自下而上的聚類動態過程,便於理解。

層次聚類不需要指定聚類的數量,並且對距離度量的選擇不敏感。但效率很低,時間複雜度為o(n3)。

【聚類】五種主要聚類演算法

聚類(clustering)

高斯混合模型(gmm)及其em演算法的理解

聚類演算法 Clustering

此系列筆記 於 coursera上吳恩達老師的機器學習課程 步驟 1 隨機生成兩點 這兩點叫做聚類中心,選擇兩點是因為這裡想把資料分成兩類 2 迭代 在內迴圈中的第一步是 簇分配 這裡將每個綠點根據距離誰最近分成紅藍兩部分 即計算 c min k x mu k 2 k表示第k個聚類中心 第二步是 移...

第九章 聚類 Clustering

unsupervised learning 無監督學習 訓練樣本的標記資訊是未知的,通過對無標記資料的訓練來找出資料內部所存在的規律以及性質 為進一步的資料分析打下基礎 知識點 聚類過程中會自動的形成簇結構,但是演算法對簇 cluster 沒有概念,這是在運算過程中自己出現的聚類現象,這個簇的名字需...

聚類 clustering) 一種無指導的學習演算法

聚類是一種無監督的學習的結果,聚類的結果就是產生一組集合,集合中的物件與同集合中的物件彼此相似,與其他集合的物件相異。聚類演算法是推薦給初學者的演算法,因為該演算法不僅十分簡單,而且還足夠靈活以面對大多數問題都能給出合理的結果。常用的聚類演算法 k均值聚類演算法 k均值聚類是一種通用目的的演算法,聚...