机器学习-常见聚类算法K-means,模糊c-均值,谱聚类 DBSCAN算法等
聚類算法:
聚類分析又稱群分析,它是研究(樣品或指標(biāo))分類問題的一種統(tǒng)計(jì)分析方法,同時(shí)也是數(shù)據(jù)挖掘的一個(gè)重要算法。
聚類(Cluster)分析是由若干模式(Pattern)組成的,通常,模式是一個(gè)度量(Measurement)的向量,或者是多維空間中的一個(gè)點(diǎn)。
聚類分析以相似性為基礎(chǔ),在一個(gè)聚類中的模式之間比不在同一聚類中的模式之間具有更多的相似性。
俗話說:“物以類聚,人以群分”,在自然科學(xué)和社會(huì)科學(xué)中,存在著大量的分類問題。所謂類,通俗地說,就是指相似元素的集合。
聚類分析起源于分類學(xué),在古老的分類學(xué)中,人們主要依靠經(jīng)驗(yàn)和專業(yè)知識(shí)來實(shí)現(xiàn)分類,很少利用數(shù)學(xué)工具進(jìn)行定量的分類。隨著人類科學(xué)技術(shù)的發(fā)展,對(duì)分類的要求越來越高,以致有時(shí)僅憑經(jīng)驗(yàn)和專業(yè)知識(shí)難以確切地進(jìn)行分類,于是人們逐漸地把數(shù)學(xué)工具引用到了分類學(xué)中,形成了數(shù)值分類學(xué),之后又將多元分析的技術(shù)引入到數(shù)值分類學(xué)形成了聚類分析。聚類分析內(nèi)容非常豐富,有系統(tǒng)聚類法、有序樣品聚類法、動(dòng)態(tài)聚類法、模糊聚類法、圖論聚類法、聚類預(yù)報(bào)法等。
常見聚類算法:
????????? 1.原型聚類:K-means , KNN , LVQ
?????????? 2.密度聚類:DBSCAN
?????????? 3.層次聚類: AGNES
?????????? 4.模糊聚類:高斯混合模型
?????????? 5.譜聚類
1 K-means聚類算法(K均值算法)
定義: 通過把樣本分離成 n 個(gè)具有相同方差的類的方式來聚集數(shù)據(jù),最小化稱為 慣量(inertia) 或 簇內(nèi)平方和(within-cluster sum-of-squares)的標(biāo)準(zhǔn)(criterion)。該算法需要指定簇的數(shù)量K。
算法:采用貪心策略通過迭代優(yōu)化來近似求解?
? ? ? ? ? ?
優(yōu)點(diǎn):速度快,簡(jiǎn)單
缺點(diǎn):1.適合聚類球狀類簇,不能發(fā)現(xiàn)一些混合度較高,非球狀類簇
2.需指定簇個(gè)數(shù)
3.算法結(jié)果不穩(wěn)定,最終結(jié)果跟初始點(diǎn)選擇相關(guān),容易陷入局部最優(yōu)
4.對(duì)噪聲或離群點(diǎn)比較敏感:無法區(qū)分出哪些是噪聲或者離群點(diǎn),只能給每個(gè)數(shù)據(jù)點(diǎn)都判斷出一個(gè)類別來,這樣會(huì)導(dǎo)致樣本質(zhì)心偏移,導(dǎo)致誤判或者聚類緊密程度降低。
kmeans算法結(jié)果易受初始點(diǎn)影響
由于kmeans算法結(jié)果易受初始點(diǎn)影響,得到的結(jié)果是局部最優(yōu),為次,我們可以運(yùn)行n次kmeans算法,每次運(yùn)行的初始點(diǎn)均為隨機(jī)生成。然后在n次運(yùn)行結(jié)果中,選取目標(biāo)函數(shù)(代價(jià)函數(shù))最小的聚類結(jié)果。
聚類數(shù)量k如何確定?
? ? ? ?通常在數(shù)據(jù)集有多少個(gè)聚類是不清楚的。對(duì)于低維的數(shù)據(jù),對(duì)其可視化,我們可以通過肉眼觀察到有多少個(gè)聚類,但這樣并不準(zhǔn)確,而且大部分?jǐn)?shù)據(jù)也無法可視化顯示。方法1:我們可以通過構(gòu)建一個(gè)代價(jià)函數(shù)與聚類數(shù)量k的關(guān)系圖,如下圖所示,橫坐標(biāo)是聚類數(shù)量,每個(gè)聚類數(shù)量對(duì)應(yīng)的代價(jià)函數(shù)J均是n次運(yùn)行的最優(yōu)結(jié)果。觀察下圖,代價(jià)函數(shù)隨聚類數(shù)量增大而減小,但并不是說聚類數(shù)量越多越好,比如:對(duì)于m個(gè)樣本,m個(gè)聚類的代價(jià)函數(shù)自然是0,但這樣根本不合理。觀察下圖,代價(jià)函數(shù)在沒有到拐點(diǎn)之前下降很快,拐點(diǎn)之后下降變緩,我們就可以考慮選擇這個(gè)拐點(diǎn)對(duì)應(yīng)的數(shù)量作為聚類數(shù)量,這是一種較為合理的方法,但受限于能否得到一個(gè)清晰的拐點(diǎn),如右下圖所示,
?
2 KNN聚類算法
算距離:給定待分類樣本,計(jì)算它與已分類樣本中的每個(gè)樣本的距離;
找鄰居:圈定與待分類樣本距離最近的K個(gè)已分類樣本,作為待分類樣本的近鄰;
做分類:根據(jù)這K個(gè)近鄰中的大部分樣本所屬的類別來決定待分類樣本該屬于哪個(gè)分類;
? ? ? ? ? ? ??
?
3 DBSCAN
?聚類原則:聚類距離簇邊界最近的點(diǎn)
算法流程:
核心點(diǎn):核心點(diǎn)的半徑范圍內(nèi)的樣本個(gè)數(shù)≥最少點(diǎn)數(shù)
邊界點(diǎn):邊界點(diǎn)的半徑范圍內(nèi)的樣本個(gè)數(shù)小于最少點(diǎn)數(shù)大于0
噪聲點(diǎn):噪聲 點(diǎn)的半徑范圍的樣本個(gè)數(shù)為0
DBSCAN 算法有兩個(gè)參數(shù):半徑 eps 和密度閾值 MinPts,具體步驟為:
?3、核心點(diǎn) xi 的 eps 鄰域內(nèi)的所有的點(diǎn),都是 xi 的直接密度直達(dá)。如果 xj 由 xi 密度直達(dá),xk 由 xj 密度直達(dá)。。。xn 由 xk 密度直達(dá),那么,xn 由 xi 密度可達(dá)。這個(gè)性質(zhì)說明了由密度直達(dá)的傳遞性,可以推導(dǎo)出密度可達(dá)。
4、如果對(duì)于 xk,使 xi 和 xj 都可以由 xk 密度可達(dá),那么,就稱 xi 和 xj 密度相連。將密度相連的點(diǎn)連接在一起,就形成了我們的聚類簇。
?
?4 AGNES
算法流程:
(1) 將每個(gè)對(duì)象看作一類,計(jì)算兩兩之間的最小距離;
(2) 將距離最小的兩個(gè)類合并成一個(gè)新類;
(3) 重新計(jì)算新類與所有類之間的距離;
(4) 重復(fù)(2)、(3),直到所有類最后合并成一類
?
5 譜聚類算法
譜聚類是基于譜圖理論基礎(chǔ)上的一種聚類方法,與傳統(tǒng)的聚類方法相比:
1. 具有在任意形狀的樣本空間上聚類并且收斂于全局最優(yōu)解的優(yōu)點(diǎn)。
2. 通過對(duì)樣本數(shù)據(jù)的拉普拉斯矩陣的特征向量進(jìn)行聚類,從而達(dá)到對(duì)樣本數(shù)據(jù)進(jìn)行聚類的目的;
其本質(zhì)是將聚類問題轉(zhuǎn)換為圖的最優(yōu)劃分問題,是一種點(diǎn)對(duì)聚類算法。
譜聚類算法將數(shù)據(jù)集中的每個(gè)對(duì)象看做圖的頂點(diǎn)V,將頂點(diǎn)間的相似度量化為相應(yīng)頂點(diǎn)連接邊E的權(quán)值w,這樣就構(gòu)成了一-個(gè)基于相似度的無向加權(quán)圖G(V,E),于是聚類問題就轉(zhuǎn)換為圖的劃分問題。
基于圖的最優(yōu)劃分規(guī)則就是子圖內(nèi)的相似度最大,子圖間的相似度最小。其中,V代表所有樣本的集
?
?
?
?
?
?
6 模糊聚類算法
模糊c均值聚類原理
模糊c-均值聚類算法 fuzzy c-means algorithm ( FCM)在眾多模糊聚類算法中,模糊C-均值( FCM) 算法應(yīng)用最廣泛且較成功,它通過優(yōu)化目標(biāo)函數(shù)得到每個(gè)樣本點(diǎn)對(duì)所有類中心的隸屬度,從而決定樣本點(diǎn)的類屬以達(dá)到自動(dòng)對(duì)樣本數(shù)據(jù)進(jìn)行分類的目的。給每個(gè)樣本賦予屬于每個(gè)簇的隸屬度函數(shù),通過隸屬度值大小來將樣本歸類。
模糊c均值聚類主要有三個(gè)關(guān)鍵參數(shù),固定數(shù)量的集群、每個(gè)群集一個(gè)質(zhì)心、每個(gè)數(shù)據(jù)點(diǎn)屬于最接近質(zhì)心對(duì)應(yīng)的簇。
(1)目標(biāo)函數(shù)
模糊c均值聚類通過最小化目標(biāo)函數(shù)來得到聚類中心。目標(biāo)函數(shù)本質(zhì)上是各個(gè)點(diǎn)到各個(gè)類的歐式距離的和(誤差的平方和)。聚類的過程就是最小化目標(biāo)函數(shù)的過程,通過反復(fù)的迭代運(yùn)算,逐步降低目標(biāo)函數(shù)的誤差值,當(dāng)目標(biāo)函數(shù)收斂時(shí),可得到最終的聚類結(jié)果。
下面是目標(biāo)函數(shù):
? ? ? ? ? ? ? ?
其中,m為聚類的簇?cái)?shù)(類數(shù)),N 為樣本數(shù),C 為聚類中心數(shù)。cj 表示第 j 個(gè)聚類中心,和樣本特征維數(shù)相同,xi 表示第 i 個(gè)樣本,uij 表示樣本 xi 對(duì)聚類中心 cj 的隸屬度(即 xi 屬于 cj 的概率)。||?|| 可以是任意表示數(shù)據(jù)相似性(距離)的度量,最常見的就是歐幾里得范數(shù)(又稱歐氏范數(shù),L2范數(shù),歐氏距離):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(2)隸屬度矩陣Uij和簇中心Cij
隸屬度矩陣應(yīng)當(dāng)是 N?C 的矩陣,隸屬度矩陣表示的是每個(gè)樣本點(diǎn)屬于每個(gè)類的程度。對(duì)于單個(gè)樣本xi,它對(duì)于每個(gè)簇的隸屬度之和為1。對(duì)于每個(gè)樣本點(diǎn)在哪個(gè)類的隸屬度最大歸為哪個(gè)類。越接近于1表示隸屬度越高,反之越低。
求每組的聚類中心ci,使得目標(biāo)函數(shù)最小(因?yàn)槟繕?biāo)函數(shù)與歐幾里德距離有關(guān),目標(biāo)函數(shù)達(dá)到最小時(shí),歐式距離最短,相似度最高),這保證了組內(nèi)相似度最高,組間相似度最低的聚類原則。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(3)終止條件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
上圖為終止條件,其中 t 是迭代步數(shù),ε 是一個(gè)很小的常數(shù)表示誤差閾值。也就是說迭代地更新 uij 和 cj 直到前后兩次隸屬度最大變化值不超過誤差閾值。即繼續(xù)迭代下去,隸屬程度也不會(huì)發(fā)生較大的變化,認(rèn)為隸屬度不變了,已經(jīng)達(dá)到比較優(yōu)(局部最優(yōu)或全局最優(yōu))狀態(tài)了。這個(gè)過程最終收斂于 Jm 的局部極小值點(diǎn)或鞍點(diǎn)。
模糊c均值聚類算法步驟
(1)選擇聚類中心數(shù)C,選擇合適的聚類簇?cái)?shù)m,初始化由隸屬度函數(shù)確定的矩陣U0(隨機(jī)值[0,1]之間初始化);
(2)計(jì)算聚類的中心值Cj;
(3)計(jì)算新的隸屬度矩陣Uj
(4)比較Uj和U(j+1),如果兩者的變化小于某個(gè)閾值,則停止算法,否則轉(zhuǎn)向(2)。
總結(jié)
以上是生活随笔為你收集整理的机器学习-常见聚类算法K-means,模糊c-均值,谱聚类 DBSCAN算法等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [DSP学习笔记]基于TMS320F28
- 下一篇: ✔G【OPA847】【单运放 】高速 宽