1. 程式人生 > >聚類模型-層次聚類

聚類模型-層次聚類

聚類模型

1、層次聚類
2、原型聚類-K-means
3、模型聚類-GMM
4、EM演算法-LDA主題模型
5、密度聚類-DBSCAN
6、圖聚類-譜聚類

一、層次聚類

一、聚類理論

​ 一般來說,聚類是在訓練樣本的標籤資訊不知的情況下,學習樣本內在的性質和規律,將有限的集合劃分成c類。根據“方以類聚,物以群分”的思想,類內物件儘可能的相似,類間物件儘可能不相似。因此,吾師言:聚類中兩個關鍵的問題是:何為類?何為類內相似,類間不相似?以下所有的聚類模型皆從這兩點出發。

由於缺少樣本標籤,我們很難定義類和相似性,比如下面的問題:

這裡寫圖片描述

按照顏色聚類可以分類三類,按照形狀聚類可以分類兩類,關鍵問題在於如何定義類,定義相似性。所以吾師還言:聚類一般不是一個任務的最終目標,而是一個預處理的過程。

聚類的評價指標有兩種:

​ 1)內部指標,指導思想是類內緊緻性和類間分離性,比如Xie-Beni指標,DB指標

​ 2)外部指標,假設資料集有標註,按有監督學習的評價指標進行評價

可以看出,外部指標有很大的問題,那就是聚類學到的資料規律不一定是標籤,這對聚類演算法的評價是不可靠的,但是對於只看結果,不評價模型的好壞是可以的,當然拿聚類的結果與有監督學習的結果對比是“無賴”的。

二、層次聚類

​ 層次聚類的類表示可以看作是基於樣本的,Xi表示屬於第i的樣本集合,即Xi作為第i類的類表示。類相似性度量可以用“歐式距離”。層次聚類分為兩種,一種是自底向上的凝聚層次聚類,一種是自頂向下的分裂層次聚類。兩者的區別在於前者一開始將每一個樣本看作一類,通過不斷的合併最相似的兩個簇,直到

c類;後者一開始將所有樣本看作一類,通過最小化損失(類緊緻)分裂為c類。

凝聚層次聚類:

輸入:樣本資料D=x1,x2,...,xm,相似性度量函式s,聚類簇數k

輸出:k類樣本

1)初始化每個樣本為一個簇,ci=xi,i=1,2,...,m

2)計算樣本兩兩之間的距離d(i,j),i=1,2...,m,j=1,2,...,m

3)通過相似性度量函式s,找出最相似的兩個簇進行合併

​ 最小距離:

s=dmin(ci,cj)=minxci,zcjdist(x,z)

​ 最大距離:s=dmax(ci,cj)=maxxci,zcjdist(x,z)

​ 平均距離:s=davg(ci,cj)=1|ci||cj|xcizcjdist(x,z)

4)直到簇數為k,否則迴圈2)

分裂層次聚類:

輸入:樣本資料D=x1,x2,...,xm,損失函式s,聚類簇數k

輸出:k類樣本

1)初始化所有樣本為一個簇,