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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【零基础系列】K-Means聚类算法

發(fā)布時(shí)間:2024/1/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【零基础系列】K-Means聚类算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文意圖

  • 結(jié)合目標(biāo)函數(shù),了解 k-means步驟和每一步的目的
  • 如何避免陷入局部最優(yōu)
  • 如何使聚類出的簇更加平衡

  • 目錄

    本文意圖

    第一部分? K-Means步驟

    1.1 什么是聚類?

    1.2 K-Means詳細(xì)步驟

    1.2.1 目標(biāo)函數(shù)

    1.2.2 隨機(jī)初始化簇心

    1.2.3 數(shù)據(jù)點(diǎn)分簇

    1.2.4 重新計(jì)算簇心

    1.2.5 迭代過程

    第二部分 避免局部最優(yōu)

    2.1 隨機(jī)初始化會(huì)導(dǎo)致什么問題?

    2.2 用實(shí)驗(yàn)說明

    2.3 如何解決隨機(jī)結(jié)果不好的問題?

    2.4 實(shí)驗(yàn)中的一些其他細(xì)節(jié)

    2.4.1 “距離”度量方式

    2.4.2 簇心數(shù)量K的選取

    第三部分 平衡聚類

    3.1?-balance聚類

    3.2 平衡聚類應(yīng)用場(chǎng)景

    3.3?-balance方法一——在K-Means上改進(jìn)

    3.3.1 方法說明

    3.3.2 例子

    3.4 -balance方法二——陰陽(yáng)K-Means加速重新分簇

    3.4.1 陰陽(yáng)K-Means

    3.4.2?對(duì)于方法一的改進(jìn)


    第一部分? K-Means步驟

    1.1 什么是聚類?

    給定一組未加標(biāo)簽的數(shù)據(jù)集,希望通過算法自動(dòng)將數(shù)據(jù)分成有緊密關(guān)聯(lián)的子集或是簇。

    假設(shè)我們采集到了一些牡丹花數(shù)據(jù),但我們并不知道這些牡丹花具體是哪個(gè)品種的。植物學(xué)家想要按照特征的相似性,先大致對(duì)牡丹花進(jìn)行粗分類,再對(duì)每個(gè)類別做具體細(xì)致的研究。此時(shí),我們首先想到的就是無監(jiān)督學(xué)習(xí)聚類算法。

    ?

    1.2 K-Means詳細(xì)步驟

    1.2.1 目標(biāo)函數(shù)

    下面用一個(gè)簡(jiǎn)單的例子,對(duì)K-Means的步驟做說明。假設(shè)我們有一些二維樣本點(diǎn),最終聚類的結(jié)果如下圖所示。K-Means算法是怎樣將這些點(diǎn)聚成兩個(gè)簇的呢?

    1.2.2 隨機(jī)初始化簇心

    所有樣本點(diǎn)一開始是沒有被聚類的。將K取為2,即我們希望最終聚成2個(gè)簇。完成初始化簇心之后,我們隨機(jī)選中了兩個(gè)樣本作為簇心。

    1.2.3 數(shù)據(jù)點(diǎn)分簇

    第一次分簇之后,我們將得到下圖所示的2個(gè)簇

    1.2.4 重新計(jì)算簇心

    由于簇心是到簇內(nèi)所有點(diǎn)距離相等的位置,因此在第一次分簇結(jié)束之后,簇心的位置會(huì)相應(yīng)的發(fā)生改變。我們重新計(jì)算簇心位置,如下圖所示:

    1.2.5 迭代過程

    重復(fù)1.2.3和1.2.4兩個(gè)步驟,直到在重新計(jì)算簇心時(shí),所有簇的簇心都不再變化為止。下面給出例子的后續(xù)操作,直到聚類完成。

    ?


    第二部分 避免局部最優(yōu)

    2.1 隨機(jī)初始化會(huì)導(dǎo)致什么問題?

    • 理想情況下,k-means算法會(huì)收斂到一個(gè)全局最優(yōu)解上。下圖就是一個(gè)我們希望看到的聚類結(jié)果。

    • 但如果隨機(jī)初始化的結(jié)果不好,k-means算法最終可能會(huì)收斂到局部最優(yōu)解上。下圖就是當(dāng)初始化結(jié)果不好時(shí),算法最終迭代出的結(jié)果,這顯然不是我們希望看到的。

    2.2 用實(shí)驗(yàn)說明

    • 具體參數(shù):

    樣本數(shù):350

    特征維度:4

    簇?cái)?shù)量:3

    距離度量:歐式距離

    • 我們希望看到,當(dāng)K-Means迭代收斂時(shí),應(yīng)該為全局最優(yōu)。其效果應(yīng)該如下圖所示。

    • 但在實(shí)驗(yàn)中,第一次測(cè)試的結(jié)果就收斂到了一個(gè)效果不怎么好的局部最優(yōu),如下圖所示。

    2.3 如何解決隨機(jī)結(jié)果不好的問題?

    多隨機(jī)幾次,取最好的結(jié)果!

    • 多次隨機(jī)初始化

    ?

    2.4 實(shí)驗(yàn)中的一些其他細(xì)節(jié)

    2.4.1 “距離”度量方式

    距離實(shí)際上反映了不同樣本之間的相似度

    滿足非負(fù)性、對(duì)稱性、同一性、三角不等式性的度量,如歐氏距離、曼哈頓距離、切比雪夫距離等,都可以作為距離度量。

    2.4.2 簇心數(shù)量K的選取

    • 肘部原則

    嘗試不同的k值,繪制均方誤差曲線圖,找到圖像的肘部為宜

    ?


    第三部分 平衡聚類

    3.1?-balance聚類

    下圖中一共有12個(gè)樣本點(diǎn)。我們希望將它們分成3個(gè)簇,并且保證分成的簇相對(duì)平衡。在這個(gè)例子中,這是一個(gè)絕對(duì)平衡的分簇,即每個(gè)簇內(nèi)含有的樣本點(diǎn)完全相同。

    3.2 平衡聚類應(yīng)用場(chǎng)景

    • 數(shù)據(jù)預(yù)處理

    ??圖像分類領(lǐng)域,使用詞袋模型對(duì)圖像進(jìn)行分割,分割后需要使用K-Means對(duì)分割除的特征聚類。更平衡的聚類會(huì)得到更準(zhǔn)確的圖像分類結(jié)果

    ②??當(dāng)未標(biāo)記的樣本直覺上服從均勻分布時(shí),平衡聚類可以更好的反應(yīng)實(shí)際樣本類別。

    ?

    3.3?-balance方法一——在K-Means上改進(jìn)

    3.3.1 方法說明

    • 設(shè)定2個(gè)規(guī)則:
  • 規(guī)定簇?cái)?shù)量K(同K-Means)
  • 規(guī)定簇最多包含多少個(gè)點(diǎn)
    • 對(duì)K-Means改進(jìn):
  • 設(shè)定2個(gè)規(guī)則
  • 在最終收斂前,每個(gè)簇心維持1個(gè)邊界值,該邊界值為簇心到簇中每個(gè)點(diǎn)距離的最大值
  • 當(dāng)一個(gè)簇已滿,又有1個(gè)新樣本想加入,進(jìn)行一個(gè)判斷。若簇心到該樣本距離小于邊界值,則踢出已在簇中的最遠(yuǎn)樣本,接納該樣本
  • 每次接納新樣本,都更新簇心位置
  • 3.3.2 例子

    下圖為使用K-Means聚類過程中的中間狀態(tài)。假設(shè)在樣本點(diǎn)重新分簇的過程中,紅色星星代表的樣本需要被重新分配到綠色簇中,如下圖所示:

    假設(shè)我們允許每個(gè)簇最大包含5個(gè)樣本。此時(shí),綠色簇已經(jīng)包含了5個(gè)樣本,達(dá)到了上限。我們計(jì)算綠色簇心到紅色星星的距離,拿去和綠色簇的邊界值比較。在這個(gè)例子當(dāng)中,綠色簇心到紅色星星的距離,小于綠色簇的邊界值。因此,我們將綠色簇中距離簇心最遠(yuǎn)的樣本踢出簇,并將紅色星星樣本包含進(jìn)來,如下圖所示:

    ?

    3.4 -balance方法二——陰陽(yáng)K-Means加速重新分簇

    3.4.1 陰陽(yáng)K-Means

    • 全局過濾
  • 對(duì)于每個(gè)樣本點(diǎn),維持上下兩個(gè)邊界。上邊界大于等于樣本到最優(yōu)簇簇心的距離,下邊界小于等于樣本到次優(yōu)簇簇心的距離
  • 利用這兩個(gè)邊界,可以使樣本在重新分配簇的步驟中,不需要和每個(gè)簇心計(jì)算距離
    • 組過濾/局部過濾
  • 將K個(gè)簇按照簇心之間的距離遠(yuǎn)近分組
  • 對(duì)于每個(gè)樣本點(diǎn),先判斷屬于哪個(gè)分組,再在這個(gè)組內(nèi)計(jì)算上下兩個(gè)邊界
  • 3.4.2?對(duì)于方法一的改進(jìn)

    在方法一中,-balance平衡聚類會(huì)在重新分簇步驟時(shí),將樣本點(diǎn)踢出簇,因此會(huì)比普通的K-Means有更多的重新分簇步驟。因此,在方法二中,平衡聚類的步驟思路和方法一相同,但使用陰陽(yáng)K-Means的思想,加速了重新分簇的步驟,使得算法整體的效率提高。

    陰陽(yáng)K-Means具體使用方法,如下圖所示:

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的【零基础系列】K-Means聚类算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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