溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理

發(fā)布時間:2020-07-21 08:34:42 來源:網(wǎng)絡(luò) 閱讀:70117 作者:hffzkl 欄目:開發(fā)技術(shù)

摘要

這篇博客是從一個網(wǎng)上下載的資料關(guān)于模糊c均值聚類和k-means均值聚類的數(shù)學(xué)方法衍生而來。我下載的那個文章討論的不是很清楚,還有一些錯誤的地方,有些直接給了結(jié)果,但是中間的數(shù)學(xué)推導(dǎo)沒有給出,我感覺中間的數(shù)學(xué)推導(dǎo)應(yīng)該是最精華的地方,上網(wǎng)搜發(fā)現(xiàn)網(wǎng)上對于這兩個算法的數(shù)學(xué)推導(dǎo)還是很少的甚至是沒有,百度文庫有一篇,但是推導(dǎo)的是用窮舉找規(guī)律,數(shù)學(xué)的味道不是很濃厚。在這篇文章的基礎(chǔ)上,我增加了一些數(shù)學(xué)方面的理論推導(dǎo),講的更加的詳細(xì)了一些,特別是在模糊c均值聚類的遞推公式的推導(dǎo)上,需要具有一定的數(shù)學(xué)功底。這是我一天的成果,就把這個記錄下來了啊,希望對大家有幫助,同時也可以為以后自己的復(fù)習(xí)做備份。算法其實很簡單,但是知其然并知其所以然卻很難。k-means的算法數(shù)學(xué)推導(dǎo)原理:http://9269309.blog.51cto.com/9259309/1864214


FCM聚類算法介紹

FCM算法是一種基于劃分的聚類算法,它的思想就是使得被劃分到同一簇的對象之間相似度最大,而不同簇之間的相似度最小。模糊C均值算法是普通C均值算法的改進(jìn),普通C均值算法對于數(shù)據(jù)的劃分是硬性的,而FCM則是一種柔性的模糊劃分。在介紹FCM具體算法之前我們先介紹一些模糊集合的基本知識。

  1. 模糊集基本知識[21]

首先說明隸屬度函數(shù)的概念。隸屬度函數(shù)是表示一個對象x隸屬于集合A的程度的函數(shù),通常記做μA(x),其自變量范圍是所有可能屬于集合A的對象(即集合A所在空間中的所有點),取值范圍是[0,1],即0<=

μA(x)<=1。μA(x)=1表示x完全隸屬于集合A,相當(dāng)于傳統(tǒng)集合概念上的xA。一個定義在空間X={x}上的隸屬度函數(shù)就定義了一個模糊集合A,或者叫定義在論域X={x}上的模糊子集 。對于有限個對象x1x2,……xn模糊集合 可以表示為:

          模糊c均值聚類和k-means聚類的數(shù)學(xué)原理      .............. (6.1)


有了模糊集合的概念,一個元素隸屬于模糊集合就不是硬性的了,在聚類的問題中,可以把聚類生成的簇看成模糊集合,因此,每個樣本點隸屬于簇的隸屬度就是[01]區(qū)間里面的值。

  1. K均值聚類算法(HCM)介紹

K均值聚類,即眾所周知的C均值聚類,已經(jīng)應(yīng)用到各種領(lǐng)域。它的核心思想如下:算法把n個向量xj(1,2…,n)分為c個組Gi(i=1,2,…,c),并求每組的聚類中心,使得非相似性(或距離)指標(biāo)的價值函數(shù)(或目標(biāo)函數(shù))達(dá)到最小。當(dāng)選擇歐幾里德距離為組j中向量xk與相應(yīng)聚類中心ci間的非相似性指標(biāo)時,價值函數(shù)可定義為:

       模糊c均值聚類和k-means聚類的數(shù)學(xué)原理   ..............    (6.2)

其中模糊c均值聚類和k-means聚類的數(shù)學(xué)原理是組i內(nèi)的價值函數(shù)。這樣Ji的值依賴于Gi的幾何特性和ci的位置。

一般來說,可用一個通用距離函數(shù)d(xk,ci)代替組I中的向量xk,則相應(yīng)的總價值函數(shù)可表示為:

             模糊c均值聚類和k-means聚類的數(shù)學(xué)原理 ........  (6.3)

為簡單起見,這里用歐幾里德距離作為向量的非相似性指標(biāo),且總的價值函數(shù)表示為(6.2)式。

劃分過的組一般用一個c×n的二維隸屬矩陣U來定義。如果第j個數(shù)據(jù)點xj屬于組i,則U中的元素uij1;否則,該元素取0。一旦確定聚類中心ci,可導(dǎo)出如下使式(6.2)最小uij

  模糊c均值聚類和k-means聚類的數(shù)學(xué)原理  (6.4)

重申一點,如果cixj的最近的聚類中心,那么xj屬于組i。由于一個給定數(shù)據(jù)只能屬于一個組,所以隸屬矩陣U具有如下性質(zhì):

              模糊c均值聚類和k-means聚類的數(shù)學(xué)原理 (6.5)

                          模糊c均值聚類和k-means聚類的數(shù)學(xué)原理 (6.6)

另一方面,如果固定uij則使(6.2)式最小的最佳聚類中心就是組I中所有向量的均值:

 ,                    模糊c均值聚類和k-means聚類的數(shù)學(xué)原理   (6.7)

這里|Gi|是第i個簇中元素對象的個數(shù)

為便于批模式運(yùn)行,這里給出數(shù)據(jù)集xi12…,n)的K均值算法;該算法重復(fù)使用下列步驟,確定聚類中心ci和隸屬矩陣U

步驟1:初始化聚類中心ci,i=1,…,c。典型的做法是從所有數(shù)據(jù)點中任取c個點。

步驟2:用式(6.4)確定隸屬矩陣U

步驟3:根據(jù)式(6.2)計算價值函數(shù)。如果它小于某個確定的閥值,或它相對上次價值函數(shù)質(zhì)的改變量小于某個閥值,則算法停止。

步驟4:根據(jù)式(6.5)修正聚類中心。返回步驟2

該算法本身是迭代的,且不能確保它收斂于最優(yōu)解。K均值算法的性能依賴于聚類中心的初始位置。所以,為了使它可取,要么用一些前端方法求好的初始聚類中心;要么每次用不同的初始聚類中心,將該算法運(yùn)行多次。此外,上述算法僅僅是一種具有代表性的方法;我們還可以先初始化一個任意的隸屬矩陣,然后再執(zhí)行迭代過程。

K均值算法也可以在線方式運(yùn)行。這時,通過時間平均,導(dǎo)出相應(yīng)的聚類中心和相應(yīng)的組。即對于給定的數(shù)據(jù)點x,該算法求最近的聚類中心ci,并用下面公式進(jìn)行修正:

                    模糊c均值聚類和k-means聚類的數(shù)學(xué)原理   (6.8)

這種在線公式本質(zhì)上嵌入了許多非監(jiān)督學(xué)習(xí)神經(jīng)元網(wǎng)絡(luò)的學(xué)習(xí)法則。

6.2.3   模糊C均值聚類

模糊C均值聚類(FCM),即眾所周知的模糊ISODATA,是用隸屬度確定每個數(shù)據(jù)點屬于某個聚類的程度的一種聚類算法。1973年,Bezdek提出了該算法,作為早期硬C均值聚類(HCM)方法的一種改進(jìn)。

FCMn個向量xii=1,2,…,n)分為c個模糊組,并求每組的聚類中心,使得非相似性指標(biāo)的價值函數(shù)達(dá)到最小。FCMHCM的主要區(qū)別在于FCM用模糊劃分,使得每個給定數(shù)據(jù)點用值在01間的隸屬度來確定其屬于各個組的程度。與引入模糊劃分相適應(yīng),隸屬矩陣U允許有取值在0,1間的元素。不過,加上歸一化規(guī)定,一個數(shù)據(jù)集的隸屬度的和總等于1

                  模糊c均值聚類和k-means聚類的數(shù)學(xué)原理     (6.9)

那么,FCM的價值函數(shù)(或目標(biāo)函數(shù))就是式(6.2)的一般化形式:

 ,         模糊c均值聚類和k-means聚類的數(shù)學(xué)原理      (6.10)

這里uij介于01間;ci為模糊組I的聚類中心,dij=||ci-xj||為第I個聚類中心與第j個數(shù)據(jù)點間的歐幾里德距離;且 是一個加權(quán)指數(shù)。

構(gòu)造如下新的目標(biāo)函數(shù),可求得使(6.10)式達(dá)到最小值的必要條件:

       模糊c均值聚類和k-means聚類的數(shù)學(xué)原理  (6.11)

這里λjj=1n,是(6.9)式的n個約束式的拉格朗日乘子。對所有輸入?yún)⒘壳髮?dǎo),使式(6.10)達(dá)到最小的必要條件為:

                        模糊c均值聚類和k-means聚類的數(shù)學(xué)原理......... 6.12

由上述兩個必要條件,模糊C均值聚類算法是一個簡單的迭代過程。在批處理方式運(yùn)行時,FCM用下列步驟確定聚類中心ci和隸屬矩陣U[1]

步驟1:用值在0,1間的隨機(jī)數(shù)初始化隸屬矩陣U,使其滿足式(6.9)中的約束條件

步驟2:用式(6.12)計算c個聚類中心ci,i=1,…,c

步驟3:根據(jù)式(6.10)計算價值函數(shù)。如果它小于某個確定的閥值,或它相對上次價值函數(shù)值的改變量小于某個閥值,則算法停止。

步驟4:用(6.13)計算新的U矩陣。返回步驟2

上述算法也可以先初始化聚類中心,然后再執(zhí)行迭代過程。由于不能確保FCM收斂于一個最優(yōu)解。算法的性能依賴于初始聚類中心。因此,我們要么用另外的快速算法確定初始聚類中心,要么每次用不同的初始聚類中心啟動該算法,多次運(yùn)行FCM。


對于式(6.12)結(jié)果的推導(dǎo)的數(shù)學(xué)原理:


FCM算法的數(shù)學(xué)模型其實是一個條件極值問題:

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理

我們需要把上面的條件極值問題轉(zhuǎn)化為無條件的極值問題,這個在數(shù)學(xué)分析上經(jīng)常用到的一種方法就是拉格朗日乘數(shù)法把條件極值轉(zhuǎn)化為無條件極值問題,需要引入n個拉格朗日因子,如下所示:

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理

然后對各個變量進(jìn)行求導(dǎo),從而得到各個變量的極值點:

對C中心點進(jìn)行求導(dǎo):

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理


拉格朗日函數(shù)分為兩部分,我們需要分別對其進(jìn)行求導(dǎo),先算簡單的,對后一部分進(jìn)行求導(dǎo):


模糊c均值聚類和k-means聚類的數(shù)學(xué)原理


對前一部分進(jìn)行求導(dǎo)就比較復(fù)雜和困難了:

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理


把兩部分放到一起則是:

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理

上面的一些公式用到了英文,不是我裝,我的英語很差的,我用的google公式編輯器不能打漢字,沒辦法,湊活著看吧。

上式推導(dǎo)中的一些點的解釋:

模糊c均值聚類和k-means聚類的數(shù)學(xué)原理

  1. FCM算法的應(yīng)用

通過上面的討論,我們不難看出FCM算法需要兩個參數(shù)一個是聚類數(shù)目C,另一個是參數(shù)m。一般來講C要遠(yuǎn)遠(yuǎn)小于聚類樣本的總個數(shù),同時要保證C>1。對于m,它是一個控制算法的柔性的參數(shù),如果m過大,則聚類效果會很次,而如果m過小則算法會接近HCM聚類算法。

算法的輸出是C個聚類中心點向量和C*N的一個模糊劃分矩陣,這個矩陣表示的是每個樣本點屬于每個類的隸屬度。根據(jù)這個劃分矩陣按照模糊集合中的最大隸屬原則就能夠確定每個樣本點歸為哪個類。聚類中心表示的是每個類的平均特征,可以認(rèn)為是這個類的代表點。

從算法的推導(dǎo)過程中我們不難看出,算法對于滿足正態(tài)分布的數(shù)據(jù)聚類效果會很好,另外,算法對孤立點是敏感的。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI