孫利雷,秦 進(jìn)
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州貴陽550025)
基于隨機(jī)擾動(dòng)的K-M eans聚類中心優(yōu)化方法?
孫利雷,秦 進(jìn)?
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州貴陽550025)
針對(duì)K-Means算法對(duì)初值敏感和容易陷入局部最優(yōu)的缺點(diǎn),本文提出一種基于概率的隨機(jī)擾動(dòng)聚類中心優(yōu)化算法。首先,每次迭代后重新計(jì)算聚類中心,以聚類中心為圓心向外搜索一定鄰域內(nèi)的點(diǎn),將聚類中心以概率隨機(jī)定位到鄰域內(nèi)的某個(gè)點(diǎn)上,稱該點(diǎn)為物理中心點(diǎn);之后,選定的物理中心點(diǎn)以一定速率向聚類中心方向移動(dòng)一定距離,計(jì)算出的位置即為新的聚類中心;最后,根據(jù)歐氏距離重新劃分?jǐn)?shù)據(jù)集。該算法通過概率擾動(dòng)方式使聚類中心不再固定為某一點(diǎn),而將其中心擴(kuò)大到一定區(qū)域,搜索該區(qū)域內(nèi)的最優(yōu)解,從而極大地避免了K-Means算法陷入局部最優(yōu)的可能;并且,即使計(jì)算進(jìn)程已經(jīng)陷入局部最優(yōu),優(yōu)化后的算法也可以通過最優(yōu)區(qū)域搜索,以一定概率的機(jī)會(huì)跳出局部最優(yōu)。
概率;隨機(jī)擾動(dòng);聚類中心;K-Means
近十幾年來,隨著信息技術(shù)的迅猛發(fā)展,大型數(shù)據(jù)庫、數(shù)據(jù)倉庫被用于商業(yè)、政府、科學(xué)研究和工程開發(fā)等領(lǐng)域,每個(gè)領(lǐng)域都積累了海量的、各種類型的數(shù)據(jù)資料和基礎(chǔ)數(shù)據(jù)信息。擁有海量基礎(chǔ)數(shù)據(jù)之后,我們又面臨新的問題:如何從海量的基礎(chǔ)數(shù)據(jù)信息中發(fā)現(xiàn)有用的知識(shí),最大化的發(fā)現(xiàn)基礎(chǔ)數(shù)據(jù)中的隱藏知識(shí),提高知識(shí)信息的利用率,使其能發(fā)揮更大的作用。
聚類分析是數(shù)據(jù)挖掘中應(yīng)用最為廣泛的算法之一。聚類分析又稱群分析,它是研究分類問題的一種統(tǒng)計(jì)分析方法,已被廣泛應(yīng)用到許多領(lǐng)域,包括模式識(shí)別、圖像分析、自然語言處理、數(shù)據(jù)分析等。如,在植物學(xué)分類中,通過植物的不同葉片尺寸、顏色、花瓣半徑等特征,使用聚類方法能夠推導(dǎo)出不同物種的分類,根據(jù)相似特性對(duì)其進(jìn)行分類,獲得對(duì)物種中固有結(jié)構(gòu)的認(rèn)識(shí)。
聚類是數(shù)據(jù)挖掘中應(yīng)用極為廣泛的重要技術(shù)之一,至今已提出很多聚類算法。聚類是根據(jù)數(shù)據(jù)集的一個(gè)或多個(gè)特征信息來動(dòng)態(tài)將數(shù)據(jù)集劃分為多個(gè)聚類簇,使各個(gè)聚類簇內(nèi)部數(shù)據(jù)點(diǎn)的相似性高,聚類簇間各個(gè)數(shù)據(jù)點(diǎn)之間的相似性低。目前,數(shù)據(jù)挖掘領(lǐng)域常用的聚類算法主要有K-Means、層次聚類算法、模糊聚類算法等。K-Means算法因其簡單、高效的特性被廣泛應(yīng)用在各個(gè)聚類領(lǐng)域[1]。
本文首先介紹K-Means聚類算法及其特征,并由此引出K-Means算法存在的不足之處;之后,分析闡述改進(jìn)的思想,并引出新的算法;最后是實(shí)驗(yàn)部分,通過實(shí)驗(yàn)驗(yàn)證新算法的有效性和正確性。
K-Means算法是一個(gè)典型的基于距離的聚類算法,采用距離作為其相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大,兩個(gè)對(duì)象的距離越遠(yuǎn),其相似度就越小。
K-Means算法輸入?yún)?shù)為K(聚類個(gè)數(shù))和待聚類的數(shù)據(jù)集,輸出為把數(shù)據(jù)集分成的K個(gè)簇,使得簇內(nèi)的數(shù)據(jù)點(diǎn)的相似度高,而各個(gè)簇間的相似性低[2]。
通常,使用誤差平方函數(shù)來評(píng)估聚類結(jié)果的優(yōu)劣,誤差平方函數(shù)定義如下:
E:在數(shù)據(jù)集中,所有數(shù)據(jù)點(diǎn)到所屬聚類的聚類中心的誤差平方和;
n:待聚類的數(shù)據(jù)集中數(shù)據(jù)點(diǎn)的個(gè)數(shù);
K:聚類中心個(gè)數(shù);
ck:第k個(gè)聚類中心位置;
Ck:第k個(gè)聚類簇;
xi:待聚類數(shù)據(jù)集中第i個(gè)數(shù)據(jù)點(diǎn)。
1.1 聚類中心計(jì)算方法
對(duì)于K-Means算法,聚類中心計(jì)算可以說是整個(gè)算法中最為重要的一環(huán),聚類中心的位置的好壞直接影響到聚類算法的收斂速度和聚類結(jié)果的好壞。一個(gè)好的聚類中心計(jì)算方法可以使算法快速有效的收斂到全局最優(yōu)解,而不好的聚類中心算法很可能會(huì)使聚類算法經(jīng)過多次迭代后,收斂到次優(yōu)解或局部最優(yōu)解。
聚類中心為該簇內(nèi)所有數(shù)據(jù)點(diǎn)的均值,計(jì)算方式如下:
ck:第k個(gè)聚類中心位置;
Ck:第k個(gè)聚類簇;
xi:本簇內(nèi)第i個(gè)數(shù)據(jù)點(diǎn);
nk:聚類簇Ck中元素的個(gè)數(shù)。
1.2 聚類劃分計(jì)算方法
聚類劃分計(jì)算方法將每個(gè)數(shù)據(jù)點(diǎn)劃歸到離它最近的聚類中心所屬的聚類簇中。
首先,計(jì)算出離待聚類數(shù)據(jù)點(diǎn)x最近的聚類中心,計(jì)算方式如下:
x:待聚類的數(shù)據(jù)點(diǎn);
ck:離數(shù)據(jù)點(diǎn)x最近的聚類中心;
ci:第i個(gè)聚類簇的聚類中心;
K:聚類簇個(gè)數(shù)。
得到離數(shù)據(jù)點(diǎn)x最近的聚類中心后,將數(shù)據(jù)點(diǎn)x劃分到滿足聚類中心為ck的聚類簇中。
1.3 K-M eans算法
K-Means算法處理流程:首先,隨機(jī)選擇K個(gè)不同的數(shù)據(jù)點(diǎn)作為每個(gè)聚類簇的初始聚類中心;第二步,將數(shù)據(jù)集中所有數(shù)據(jù)點(diǎn),按其到每個(gè)聚類中心的距離的遠(yuǎn)近,劃分到距離最近的一個(gè)聚類簇中;第三步,計(jì)算每個(gè)聚類簇內(nèi)所有數(shù)據(jù)點(diǎn)的均值,作為該聚類簇新的聚類中心,重新評(píng)估聚類中心的優(yōu)劣。重復(fù)第二步和第三步,直至聚類中心不再變化或者達(dá)到預(yù)先設(shè)定的最大迭代次數(shù)時(shí)停止,輸出聚類結(jié)果[3]。
K-Means算法描述如下:
輸入:聚類中心個(gè)數(shù),K;
待聚類的數(shù)據(jù)集:
n:待聚類數(shù)據(jù)的個(gè)數(shù),
m:待聚類數(shù)據(jù)的維數(shù);
輸出:聚類結(jié)果
其中:
初始化:隨機(jī)選擇K個(gè)數(shù)據(jù)點(diǎn)作為K個(gè)初始聚類簇中心:{c1,c2,…,cK}。
Repeat Begin
Step1:計(jì)算每個(gè)待聚類的數(shù)據(jù)點(diǎn)到每個(gè)聚類中心的歐氏距離;
Step2:根據(jù)數(shù)據(jù)點(diǎn)到聚類中心的歐氏距離,將數(shù)據(jù)點(diǎn)劃分到離它最近的一個(gè)聚類中心所在的聚類簇中;
Step3:重新計(jì)算聚類中心
Step4:計(jì)算誤差平方和
Step5:誤差平方和E小于設(shè)定的閾值或聚類分布不再變化,或者達(dá)到預(yù)先設(shè)定的迭代次數(shù)時(shí)退出,否則跳轉(zhuǎn)到Step1。
Repeat End
1.4 K-M eans算法的缺點(diǎn)
K-Means聚類算法在誤差函數(shù)為單峰函數(shù)情況下能夠取得非常好的聚類效果,但在誤差函數(shù)為多峰函數(shù)的情況下就難于取得好的結(jié)果。因?yàn)镵Means算法初始聚類中心為隨機(jī)生成,如果隨機(jī)生成的聚類中心所在的區(qū)域?yàn)榫植孔顑?yōu),K-Means算法又是在局部最優(yōu)區(qū)域內(nèi)向著局部最優(yōu)解移動(dòng),那么K-Means算法就無法從該局部最優(yōu)區(qū)域跳出,從而無法找出全局最優(yōu)解。
傳統(tǒng)K-Means中心計(jì)算方法,因其為直接通過本聚類簇內(nèi)所有數(shù)據(jù)點(diǎn)的均值計(jì)算的中心位置,所以不具有向外搜索能力,容易陷入局部最優(yōu)解,并且當(dāng)計(jì)算進(jìn)程陷入局部最優(yōu)解的情況下,沒有自行跳出局部最優(yōu)解的能力。
針對(duì)K-Means算法對(duì)聚類中心初值敏感,容易陷入局部最優(yōu)的缺點(diǎn),引入基于概率的隨機(jī)擾動(dòng)的思想到K-Means算法中?;诟怕实碾S機(jī)擾動(dòng)的思想使得算法并不是一直朝著最優(yōu)(或局部最優(yōu))的方向行進(jìn),而在行進(jìn)過程中,以一定的隨機(jī)條件向鄰近區(qū)域內(nèi)的最優(yōu)解或次優(yōu)解靠攏,這樣就擴(kuò)大了搜索半徑,更容易跳出局部最優(yōu)的限制而找到全局最優(yōu)解。
2.1 概念定義
定義一 理論聚類中心
理論聚類中心計(jì)算方法是對(duì)本聚類簇內(nèi)所有數(shù)據(jù)點(diǎn)求均值,得到的均值即為理論聚類中心。理論聚類中心是K-Means算法的聚類中心,用cT表示。
定義二 物理聚類中心
在本聚類簇內(nèi),由理論中心位置cT為圓心,按算法開始時(shí)設(shè)定的搜索半徑長度向外搜索,得到搜索半徑內(nèi)的一個(gè)數(shù)據(jù)點(diǎn)的集合,用S表示;在數(shù)據(jù)集S內(nèi),按概率隨機(jī)指定一個(gè)數(shù)據(jù)點(diǎn),該數(shù)據(jù)點(diǎn)的坐標(biāo)定義為物理聚類中心,用cP表示。
定義三 實(shí)際聚類中心
實(shí)際聚類中心,是數(shù)據(jù)點(diǎn)劃分的直接依據(jù),是由物理聚類中心cP和理論聚類中心cT相計(jì)算得出。其計(jì)算方式為物理聚類中心cP向理論聚類中心cT方向按一定距離移動(dòng)后的坐標(biāo)位置,用cR表示。
2.2 概率隨機(jī)定位聚類中心計(jì)算方法
2.2.1 理論聚類中心計(jì)算方法
理論聚類中心為該聚類簇內(nèi)所有數(shù)據(jù)點(diǎn)的均值,其計(jì)算方式如下:k
ck:理論聚類中心位置;
Ck:第k個(gè)聚類簇;
xi:本簇內(nèi)第i個(gè)數(shù)據(jù)點(diǎn);
nk:聚類Ck中元素個(gè)數(shù)。
2.2.2 本簇內(nèi)每個(gè)數(shù)據(jù)點(diǎn)的權(quán)重計(jì)算
數(shù)據(jù)點(diǎn)的權(quán)重,表示本聚類簇內(nèi)數(shù)據(jù)點(diǎn)與理論聚類中心的關(guān)聯(lián)度,數(shù)據(jù)點(diǎn)離理論聚類中心越近,表示該點(diǎn)與理論聚類中心的關(guān)聯(lián)度越高,權(quán)重越大;反之該點(diǎn)與理論聚類中心的關(guān)聯(lián)度就低,權(quán)重就小。權(quán)重計(jì)算公式如下:
wi:本簇內(nèi)第i個(gè)點(diǎn)的權(quán)重;
xi:本簇中第i個(gè)數(shù)據(jù)點(diǎn);
nk:本簇中數(shù)據(jù)點(diǎn)的個(gè)數(shù);
Ck:第k個(gè)聚類簇。
2.2.3 物理聚類中心計(jì)算
依數(shù)據(jù)點(diǎn)的權(quán)重信息,使用輪盤賭算法[4-5],隨機(jī)定位到聚類半徑內(nèi)的一個(gè)點(diǎn)上[6-7],則該點(diǎn)的位置即為該簇的物理中心cP。
計(jì)算方法如下:
領(lǐng)域集:
s:聚類半徑;
使用輪盤賭算法,隨機(jī)得到領(lǐng)域集Neighbor(ck)中一個(gè)數(shù)據(jù)的索引I;
將領(lǐng)域集Neighbor(ck)中第I個(gè)數(shù)據(jù)作為物理聚類中心:cP=Neighbor[I]。
2.2.4 實(shí)際聚類中心計(jì)算
實(shí)際聚類中心以物理聚類中心為基準(zhǔn),向理論聚類中心移動(dòng)一定距離得到。實(shí)際聚類中心結(jié)合了理論聚類中心和物理聚類中心兩個(gè)數(shù)據(jù)的信息,該聚類中心即以物理聚類中心為基點(diǎn),具有隨機(jī)性,又參考了理論聚類中心信息,具有穩(wěn)定性并保證了正確的收斂方向。
計(jì)算公式為:
cR:實(shí)際聚類中心;
cT:物理聚類中心;
cT:理論聚類中心;
ρ:為步長因子,控制由物理聚類中心cP向理論聚類中心cT移動(dòng)的速率,取值為0~1之間的實(shí)數(shù)。當(dāng)ρ越大時(shí),cP與cT的差值對(duì)cT的影響越大。
2.3 基于隨機(jī)擾動(dòng)的K-M eans聚類中心優(yōu)化算法
通過以上分析,整理出可以避免算法落入局部最優(yōu),或者當(dāng)算法已經(jīng)落到局部最優(yōu)區(qū)域時(shí),通過隨機(jī)擾動(dòng)處理使K-Means算法到達(dá)全局最優(yōu)的新算法,基于隨機(jī)擾動(dòng)的K-Means聚類中心優(yōu)化算法,其具體步驟為:
輸入:聚類中心個(gè)數(shù),K;
聚類數(shù)據(jù)集:
n:待聚類數(shù)據(jù)的個(gè)數(shù),
m:待聚類數(shù)據(jù)的維數(shù);
輸出:聚類結(jié)果
其中:
初始化K個(gè)數(shù)據(jù)點(diǎn)作為K個(gè)理論聚類簇中心:{c1,c2,…,cK}
Repeat Begin
Step1:計(jì)算理論聚類中心cT、物理聚類中心cP、實(shí)際聚類中心cR;
Step2:根據(jù)實(shí)際聚類中心信息,將數(shù)據(jù)點(diǎn)按照歐氏距離劃分到最近的一個(gè)聚類中;
Step3:計(jì)算誤差平方和
Step4:誤差平方和E小于預(yù)先設(shè)定的閾值或聚類中心和各個(gè)簇內(nèi)數(shù)據(jù)點(diǎn)不再變化,或者達(dá)到預(yù)先設(shè)定的最大迭代次數(shù)時(shí)算法結(jié)束,否則跳轉(zhuǎn)到Step1。
Repeat End
本實(shí)驗(yàn)共使用了兩個(gè)數(shù)據(jù)集,分別是Iris數(shù)據(jù)集和Yeast數(shù)據(jù)集。Iris數(shù)據(jù)集以鳶尾花的特征作為數(shù)據(jù)來源,數(shù)據(jù)集包含150個(gè)數(shù)據(jù);Yeast數(shù)據(jù)集包含1484個(gè)數(shù)據(jù)。
3.1 實(shí)驗(yàn)1.鄰域半徑大小對(duì)基于隨機(jī)擾動(dòng)的KM eans聚類中心優(yōu)化算法收斂速度的影響
聚類個(gè)數(shù)為K=2,初始聚類中心隨機(jī)生成,迭代次數(shù):最大100次。圖1是優(yōu)化算法在Iris和Yeast兩個(gè)數(shù)據(jù)集上的表現(xiàn):
圖1 聚類半徑大小對(duì)聚類速度影響走勢圖
由測試結(jié)果可以看出,鄰域半徑的大小對(duì)算法的收斂速度有較大的影響,該值的選取直接影響到算法的收斂速度。兩個(gè)數(shù)據(jù)集在聚類半徑在4到12左右時(shí),經(jīng)過較少的迭代次數(shù)就可以收斂到最優(yōu)。通過對(duì)Iris數(shù)據(jù)集(包含150個(gè)數(shù)據(jù))和Yeast數(shù)據(jù)集(包含1484個(gè)數(shù)據(jù))聚類半徑影響趨勢圖可以看出,當(dāng)聚類數(shù)據(jù)量較大時(shí),其聚類半徑變化對(duì)收斂速度影響越不明顯,即數(shù)據(jù)量越小,算法對(duì)聚類半徑越敏感。
3.2 實(shí)驗(yàn)2.K-M eans算法和基于隨機(jī)擾動(dòng)的KM eans聚類中心優(yōu)化算法在兩個(gè)數(shù)據(jù)集上的表現(xiàn)比較
聚類個(gè)數(shù)K=2,初始聚類中心隨機(jī)生成,迭代次數(shù):最大100次。
在Yeast數(shù)據(jù)集測試結(jié)果:K-Means算法和改進(jìn)后的K-Means算法在Yeast數(shù)據(jù)集上聚類誤差一樣,經(jīng)過多次計(jì)算都得到同樣的誤差值264413,說明該數(shù)據(jù)集的誤差函數(shù)很可能是一個(gè)單峰值函數(shù),所以兩個(gè)算法都達(dá)到了全局最優(yōu)解。
在Isir數(shù)據(jù)集測試結(jié)果:由表1可以看出,改進(jìn)后的K-Means算法在Iris數(shù)據(jù)集上獲得了比KMeans誤差更小的聚類結(jié)果,說明Iris數(shù)據(jù)集的誤差函數(shù)是一個(gè)多峰值函數(shù),并且,由于K-Means算法對(duì)初始值敏感和易于陷入局部最優(yōu),從表1中可以看出,在Iris數(shù)據(jù)集上,K-Means算法已經(jīng)陷入了局部最優(yōu),沒有得到全局最優(yōu)解。而改進(jìn)后的KMeans算法避開了K-Means算法所陷入的局部最優(yōu),得到了更好的聚類結(jié)果。
表1 在Isir數(shù)據(jù)集上聚類效果的比較
從算法在兩個(gè)數(shù)據(jù)集上的測試結(jié)果可以看出,在Yeast數(shù)據(jù)集上,K-Means和基于隨機(jī)擾動(dòng)的K-Means聚類中心優(yōu)化算法誤差結(jié)果一樣;在Iris數(shù)據(jù)集上,基于隨機(jī)擾動(dòng)的K-Means聚類中心優(yōu)化算法誤差小于K-Means算法得到的誤差,得到比K-Means更好的結(jié)果。
基于隨機(jī)擾動(dòng)的K-Means聚類中心優(yōu)化算法在公用數(shù)據(jù)集Yeast上的測試結(jié)果與K-Means算法效果一樣,在 Iris數(shù)據(jù)集上聚類結(jié)果優(yōu)于K-Means算法。由實(shí)驗(yàn)結(jié)果可以看出,改進(jìn)后的算法在聚類誤差函數(shù)為單峰值或較少局部最優(yōu)的場景下的測試效果與K-Means算法一樣;而在誤差函數(shù)為多峰值函數(shù)的數(shù)據(jù)集場景下,優(yōu)化后的K-Means算法的測試結(jié)果優(yōu)于標(biāo)準(zhǔn)K-Means算法,更容易得到較K-Means算法更好的聚類結(jié)果。所以,基于隨機(jī)擾動(dòng)的K-Means聚類中心優(yōu)化算法相比K-Means算法具有避免和跳出局部最優(yōu)的能力。
[1]李正兵,羅斌,翟素蘭,等.基于關(guān)聯(lián)圖劃分的 Kmeans算法[J].Computer Engineering and Applications,2013,49(21):1-3.
[2]車麗美,肖洋,王甦易,等.Kmeans聚類分析在形音字表音度中的應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(2):223-225.
[3]孫吉貴,劉杰,趙連宇.聚類算法研究[J].軟件學(xué)報(bào),2008,19(1):48-61.
[4]淦艷,魏延,楊有,等.基于改進(jìn)隨機(jī)移動(dòng)算子的人工魚群算法[J].Computer Engineering and Applications,2014,50(13):1 -3.
[5]劉坤,葛俊鋒,羅予頻,等.概率引導(dǎo)的隨機(jī)采樣一致性算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009(5):657-662.
[6]Geman S,Geman D.Stochastic relaxation,Gibbs distributions,and the Bayesian restoration of images[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,1984(6):721-741.
[7]Geman S,Geman D.Stochastic relaxation,Gibbs distributions,and the Bayesian restoration of images[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,1984(6):721-741.
[8]Fahim A M,Salem AM,Torkey F A,etal.An efficientenhanced k-means clustering algorithm[J].Journal of Zhejiang University SCIENCE A,2006,7(10):1626-1633.
(責(zé)任編輯:周曉南)
K-M eans Clustering Center Optim ization M ethod Based on Random Perturbation
SUN Lilei,QIN Jin?
(College of Computer Science&Technology,Guizhou University,Guiyang 550025,China)
For the shortcomings of K-Means algorithm that it is sensitive to initial value and easily plunge into local optimum,a randomized clustering center optimization algorithm was proposed.First of all,recalculating the clustering center after each iteration,searching pointswithin a certain neighborhood area outward of the center,choosing the clustering centerwith probability from the points found in neighborhood area,this point is called the physical center.Then,the selected physical centermoving to the cluster center with a certain distance at a certain speed,the calculating location is the new clustering center;Finally,dividing the data set according to the Euclidean distance.The improved algorithm changes the clustering center by probability perturbation method,and enlarges its center to a certain area to search the optimal solution,so the improved algorithm can greatly avoids the K-Means algorithm falling into local optimum;and even if the calculation process is trapped in local optimum,the optimized algorithm can also jump outwith a certain probability through searching the optimal region.
probability;stochastic perturbation;clustering center;K-Means
TP301
A
1000-5269(2016)04-0090-05
10.15958/j.cnki.gdxbzrb.2016.04.18
2015-09-16
貴州大學(xué)引進(jìn)人才科研項(xiàng)目資助(2012028)
孫利雷(1983-),男,在讀碩士,研究方向:模式識(shí)別,Email:sunlileisun@163.com.
?通訊作者:秦進(jìn),Email:56505138@qq.com.