无监督学习之聚类方法(K-Means、层次聚类)
一、導(dǎo)入
無(wú)監(jiān)督學(xué)習(xí)中需要對(duì)無(wú)標(biāo)記樣本進(jìn)行訓(xùn)練學(xué)習(xí)進(jìn)而找到數(shù)據(jù)的內(nèi)在性質(zhì)和邏輯結(jié)構(gòu),聚類方法是為了為無(wú)監(jiān)督學(xué)習(xí)的數(shù)據(jù)分析提供的基礎(chǔ)學(xué)習(xí)方法。
聚類將數(shù)據(jù)集劃分為若干個(gè)子集(每個(gè)子集稱為類或者簇),如果一個(gè)樣本只屬于一個(gè)類(簇)則是硬聚類,如果某一個(gè)樣本屬于多個(gè)類那么就是軟聚類。
二、評(píng)價(jià)指標(biāo)
1、性能度量
確定了性能度量以后,可以直接將其作為聚類過(guò)程的優(yōu)化目標(biāo),可以分為以下兩類
外部指標(biāo)
說(shuō)明:需要有參考模型作為比較對(duì)象
對(duì)數(shù)據(jù)集D={X1, X2,…Xm}通過(guò)聚類得到的簇分類是C={c1, c2 …ck} ,參考模型的簇分類是C’={c1’, c2’, …ck’}
a:包含在c中屬于相同簇且在c’中也屬于相同簇的樣本對(duì)
b:包含在c中屬于相同簇且在c’中不屬于相同簇的樣本對(duì)
c:包含在c中不屬于相同簇且在c’中屬于相同簇的樣本對(duì)
d:包含在c中不屬于相同簇且在c’中不屬于相同簇的樣本對(duì)
注:由于每個(gè)樣本對(duì)(Xi,Xj)(i<j)僅能出現(xiàn)在一個(gè)集合中,所以有a+b+c+d=m(m-1)/2
Jaccard系數(shù)\JC
JC=a(a+b+c)
FM指數(shù)
FMI=[(a(a+b))(a(a+c))]^1\2
Rand指數(shù)
RI=2(a+d)/m(m-1)
說(shuō)明:以上指標(biāo)取值均在0-1之間,值越大越好
內(nèi)部指標(biāo)
avg?:簇內(nèi)樣本點(diǎn)的平均距離,簇內(nèi)所有樣本點(diǎn)兩兩之間的距離求和再求均值
diam?:簇內(nèi)距離最遠(yuǎn)的兩個(gè)樣本點(diǎn)間的距離
dmin屬于不同簇的兩個(gè)樣本點(diǎn),且兩個(gè)樣本點(diǎn)相比于簇內(nèi)其他樣本點(diǎn)相隔最近,該符號(hào)表示的就是滿足這樣的兩點(diǎn)之間的距離
dcen:;兩個(gè)簇的中心點(diǎn)的距離
DB指數(shù)
Dunn指數(shù)
說(shuō)明:DBI越小越好;DI越大越好
2、距離計(jì)算\相似度
基本性質(zhì):非負(fù)性、同一性(當(dāng)i=j時(shí),dist(xi,xj)=0)、對(duì)稱性、直遞性\三角不等性。
當(dāng)屬性劃分可以計(jì)算距離的時(shí)候是”連續(xù)屬性“,例如{1,2,3};不可以直接計(jì)算距離的時(shí)候是“離散屬性”,例如{飛機(jī),汽車,火車}
對(duì)于連續(xù)屬性可以用閔可夫斯基計(jì)算兩個(gè)樣本點(diǎn)的距離
對(duì)于離散屬性需要DVM計(jì)算兩個(gè)樣本點(diǎn)的距離
閔可夫斯基距離
當(dāng)p=2時(shí)為歐氏距離
當(dāng)p=1時(shí)為曼哈頓距離
DVM
mu,a表示在屬性u(píng)上取值為a的樣本個(gè)數(shù)
mu,a,i表示在第i個(gè)樣本簇中屬性u(píng)上取值為a的樣本數(shù)
閔可夫斯基可以與VDM結(jié)合處理混合屬性,將兩部分求和,具體可以閱讀西瓜書;重要性不同時(shí)可以用加權(quán)距離計(jì)算距離
3、原型聚類
k-means
先看幾張圖片對(duì)該算法有一個(gè)直觀的認(rèn)識(shí)
這是一個(gè)沒(méi)有標(biāo)記的樣本集,要對(duì)它進(jìn)行聚合,K=2
隨機(jī)生成兩個(gè)中心點(diǎn),也可以用樣本點(diǎn)作為初始中心點(diǎn)
根據(jù)歐式距離公式,將樣本點(diǎn)集合劃分給兩個(gè)不同的中心點(diǎn)。
將中心點(diǎn)移動(dòng)到同色樣本點(diǎn)(同一個(gè)顏色屬于同一個(gè)簇)的均值處;此時(shí)完成一輪聚合操作。
和最開始相比,此刻初始中心點(diǎn)已經(jīng)更新,開始第二次迭代,將數(shù)據(jù)點(diǎn)全部都清楚類標(biāo)記,在按照前面三步的操作,進(jìn)行樣本點(diǎn)劃分
上圖滿足了樣本中心點(diǎn)不會(huì)再更新,即迭代完畢。
通過(guò)上面幾個(gè)圖的說(shuō)明,不難看出K-Means是一個(gè)迭代的過(guò)程,
優(yōu)化目標(biāo):就是最小化某類的中心點(diǎn)和屬于該類的樣本點(diǎn)的距離
至于選擇K(中心點(diǎn))的多少,可以按照肘部法則也可以根據(jù)實(shí)際需要進(jìn)行設(shè)定
肘部法則:橫軸是K取值,縱軸為lost function
局部最優(yōu)(由于算法是迭代的,而且初始樣本點(diǎn)的選取不同也會(huì)造成最終結(jié)果的不同)
學(xué)習(xí)向量量化LVQ
與K-Means不同的是,LVQ的樣本是帶有類別標(biāo)記的
高斯混合聚類
4、密度聚類
####DBSCAN
5、層次聚類
層次聚類在不同層次對(duì)數(shù)據(jù)進(jìn)行劃分,形成樹形結(jié)構(gòu),分為自底向上(聚合)自頂向下(分裂),都需要按照一定的規(guī)則進(jìn)行操作,下面主要以聚合為例進(jìn)行說(shuō)明
AGNES采用自底向上的操作進(jìn)行層次聚類
一開始所有的樣本點(diǎn)都是一個(gè)類,接下來(lái)進(jìn)行距離相近的類融合成一個(gè)新類知道滿足K的要求為止。
其中兩個(gè)類合并需要考慮兩個(gè)類之間的距離,共有如下三種計(jì)算方式
最小距離:屬于兩個(gè)不同類的兩個(gè)樣本點(diǎn),滿足兩點(diǎn)距離最近
最大距離:屬于兩個(gè)不同類的兩個(gè)樣本點(diǎn),滿足兩點(diǎn)距離最遠(yuǎn)
均鏈接:屬于兩個(gè)不同類的任意兩個(gè)樣本點(diǎn),兩兩的距離之和除以兩個(gè)類的樣本點(diǎn)個(gè)數(shù)的乘積。
說(shuō)明:最小距離由兩個(gè)簇的最近樣本決定,最大距離由兩個(gè)簇的最遠(yuǎn)樣本決定,平均距離則由兩個(gè)簇的所有樣本決定。
滿足最小距離的AGNES算法稱為“單鏈接”算法
滿足最大距離的AGNES算法稱為“全鏈接”算法
滿足均鏈接的AGNES算法稱為”均鏈接“算法
例題:
D表示五個(gè)樣本點(diǎn)的歐氏距離的矩陣
說(shuō)明:該矩陣是對(duì)稱陣
首先構(gòu)建五各類Gi={Xi} i=12345
其中X3和X5距離為1,其他點(diǎn)之間的距離大于1,所以將G3和G5合并成G6={X3,X5}
目前有四個(gè)類。接下來(lái)繼續(xù)合并
最小距離是X3X1之間,距離為2
將X1 合并到G6中變成G7={X1,X3,X5}
繼續(xù)判斷距離,X2和X4距離為4小于其特點(diǎn)之間的距離,G8={X2,X4}
所以,如果K為2的話,就是G7,G8兩類
最后形成一個(gè)樹形結(jié)構(gòu)如下圖
下面是西瓜書的例子
需要自己計(jì)算各個(gè)樣本之間的距離,書上說(shuō)采用dmax沒(méi)有太明白,具體運(yùn)用在哪個(gè)步驟中,后續(xù)學(xué)習(xí)中在更新吧
生成了如上圖所示的樹形結(jié)構(gòu),從葉子節(jié)點(diǎn)開(k=30)始,不斷合并距離最近的聚類簇,最終到達(dá)根節(jié)點(diǎn)(k=1)
最后:聚類不存在固定的標(biāo)準(zhǔn),距離計(jì)算是很多學(xué)習(xí)任務(wù)的核心技術(shù)。
總結(jié)
以上是生活随笔為你收集整理的无监督学习之聚类方法(K-Means、层次聚类)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 符江职高计算机教什么,高县符江职高具体地
- 下一篇: 用html编写一幅简单的画,使用html