日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习-常见聚类算法K-means,模糊c-均值,谱聚类 DBSCAN算法等

發(fā)布時(shí)間:2023/12/29 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习-常见聚类算法K-means,模糊c-均值,谱聚类 DBSCAN算法等 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

聚類算法:

聚類分析又稱群分析,它是研究(樣品或指標(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,具體步驟為:

  • 1以每一個(gè)數(shù)據(jù)點(diǎn) xi 為圓心,以 eps 為半徑畫一個(gè)圓圈。這個(gè)圓圈被稱為 xi 的 eps 鄰域
  • 2對(duì)這個(gè)圓圈內(nèi)包含的點(diǎn)進(jìn)行計(jì)數(shù)。如果一個(gè)圓圈里面的點(diǎn)的數(shù)目超過了密度閾值 MinPts,那么將該圓圈的圓心記為核心點(diǎn),又稱核心對(duì)象。如果某個(gè)點(diǎn)的 eps 鄰域內(nèi)點(diǎn)的個(gè)數(shù)小于密度閾值但是落在核心點(diǎn)的鄰域內(nèi),則稱該點(diǎn)為邊界點(diǎn)。既不是核心點(diǎn)也不是邊界點(diǎn)的點(diǎn),就是噪聲點(diǎn)。
  • ?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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。