本發(fā)明涉及一種聚類(lèi)方法,具體地,涉及一種結(jié)合類(lèi)內(nèi)緊致性和類(lèi)間分離性的增量模糊聚類(lèi)方法,屬于數(shù)據(jù)挖掘領(lǐng)域。
背景技術(shù):
聚類(lèi)算法將相似度高的數(shù)據(jù)對(duì)象劃分為一個(gè)簇,將相異度高的數(shù)據(jù)對(duì)象劃分為不同的簇。迄今為止,針對(duì)聚類(lèi)算法的研究成果豐碩,根據(jù)數(shù)據(jù)對(duì)象在聚類(lèi)中的積聚規(guī)則不同,這些算法可劃分為硬聚類(lèi)和模糊聚類(lèi)。在硬聚類(lèi)中,每個(gè)數(shù)據(jù)對(duì)象只能完全隸屬于某一個(gè)簇;而模糊聚類(lèi)則要求每個(gè)數(shù)據(jù)對(duì)象以不同的概率隸屬于多個(gè)簇。相比較而言,兩類(lèi)算法各有所長(zhǎng),硬聚類(lèi)算法簡(jiǎn)單高效,而模糊聚類(lèi)算法更符合人們對(duì)客觀世界的認(rèn)知。
無(wú)論是硬聚類(lèi)還是模糊聚類(lèi),大部分聚類(lèi)算法只考慮類(lèi)內(nèi)緊致性,而忽略類(lèi)間分離性,因此fcs(fuzzycompactnessandseparation)算法被提出。fcs算法保證了類(lèi)內(nèi)緊致性最小的同時(shí),類(lèi)間分離性最大,且具有硬聚類(lèi)和模糊聚類(lèi)的特性,能夠有效提升聚類(lèi)精度與聚類(lèi)效率。
然而fcs算法無(wú)法有效處理大規(guī)模數(shù)據(jù)與流數(shù)據(jù),因此,本發(fā)明提出一種結(jié)合類(lèi)內(nèi)緊致性和類(lèi)間分離性的增量模糊聚類(lèi)方法。該方法通過(guò)將數(shù)據(jù)分為連續(xù)的數(shù)據(jù)塊,并按順序進(jìn)行處理,使本發(fā)明可以處理大規(guī)模數(shù)據(jù)和數(shù)據(jù)流。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提出一種結(jié)合類(lèi)內(nèi)緊致性和類(lèi)間分離性的增量模糊聚類(lèi)方法。
1.一種結(jié)合類(lèi)內(nèi)緊致性和類(lèi)間分離性的增量模糊聚類(lèi)方法,其特征在于:該方法步驟如下:
(1)將整個(gè)數(shù)據(jù)集分成d塊,并為每塊數(shù)據(jù)中的每個(gè)數(shù)據(jù)點(diǎn)分配權(quán)重1;
(2)對(duì)分配好權(quán)重的每個(gè)數(shù)據(jù)塊進(jìn)行聚類(lèi)處理;
(3)對(duì)第1個(gè)數(shù)據(jù)塊進(jìn)行聚類(lèi),得到聚類(lèi)結(jié)果[u11,u12,...,u1t,...,u1c]和聚類(lèi)質(zhì)心[a11,a12,...,a1t,...,a1c],其中0<t≤c,u1c表示第1個(gè)數(shù)據(jù)塊的第c類(lèi),a1c表示第1個(gè)數(shù)據(jù)塊的第c個(gè)質(zhì)心;
(4)當(dāng)處理完第i-1個(gè)數(shù)據(jù)塊后,其中1<i≤d,為i-1個(gè)數(shù)據(jù)塊的質(zhì)心[a(i-1)1,a(i-1)2,...,a(i-1)t,...,a(i-1)c]中的每一個(gè)質(zhì)心賦予權(quán)重值wt,wt為數(shù)據(jù)塊中的數(shù)據(jù)點(diǎn)隸屬于聚類(lèi)u(i-1)t的隸屬度之和;將新得到的第i個(gè)數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)點(diǎn)賦予權(quán)重1,將賦過(guò)權(quán)重的第i-1個(gè)數(shù)據(jù)塊的質(zhì)心和第i個(gè)數(shù)據(jù)塊中的數(shù)據(jù)點(diǎn)組成新的數(shù)據(jù)塊,對(duì)新數(shù)據(jù)塊重新進(jìn)行聚類(lèi)操作,得到聚類(lèi)結(jié)果[ui1,ui2,...,uit,...,uic]和聚類(lèi)質(zhì)心[ai1,ai2,...,ait,...,aic],依次找到第i-1次聚類(lèi)得到的質(zhì)心所在的聚類(lèi)uit,則類(lèi)u(i-1)t中所有數(shù)據(jù)點(diǎn)都屬于類(lèi)uit;
(5)循環(huán)執(zhí)行步驟(4),處理完最后一個(gè)數(shù)據(jù)塊,得到最終質(zhì)心和聚類(lèi)結(jié)果。2.如權(quán)利要求1中所述的一種結(jié)合類(lèi)內(nèi)緊致性和類(lèi)間分離性的增量模糊聚類(lèi)方法,其特征在于:步驟(2)中聚類(lèi)的具體步驟如下:
1)初始化β,最大誤差值ε,最大迭代次數(shù)τmax和隸屬度矩陣ucj,將η賦值為0到1的隨機(jī)數(shù),定義τ=1;
2)根據(jù)ηc,ucj和
3)根據(jù)ηc,ac和
4)根據(jù)β,ac和
5)更新τ=τ+1;
6)如果max(|ucj(τ)-ucj(τ-1)|)≤ε或τ=τmax,結(jié)束迭代,否則返回步驟2)。
其中c是類(lèi)的個(gè)數(shù),n是數(shù)據(jù)個(gè)數(shù),ηc為控制第c個(gè)質(zhì)心與其它質(zhì)心所在類(lèi)不重合的參數(shù),ucj是第j個(gè)數(shù)據(jù)點(diǎn)對(duì)第c個(gè)類(lèi)的隸屬度,約束條件為
為了能夠處理大規(guī)模數(shù)據(jù)和數(shù)據(jù)流,提出了本發(fā)明,該方法不但可以明顯提高處理速度,而且不會(huì)影響聚類(lèi)的精確度。與現(xiàn)有方法相比,本發(fā)明新提出的方法可以更快更精確地處理大規(guī)模數(shù)據(jù)和數(shù)據(jù)流。
具體實(shí)施方式
為了使用單通道增量方法,需要對(duì)fcs算法進(jìn)行加權(quán)。首先,定義加權(quán)的類(lèi)內(nèi)矩陣sifw和類(lèi)間矩陣sifb
其中c是類(lèi)的個(gè)數(shù),n是數(shù)據(jù)的個(gè)數(shù),wj為權(quán)重,ucj是第j個(gè)數(shù)據(jù)點(diǎn)對(duì)第c個(gè)類(lèi)的隸屬度,約束條件為
根據(jù)上述兩式,得到增量fcs算法的目標(biāo)函數(shù)
受下面條件約束
其中
0≤β≤1.0,k=1,...,c。
根據(jù)約束條件,對(duì)目標(biāo)函數(shù)運(yùn)用拉格朗日乘子法,構(gòu)造如下新的目標(biāo)函數(shù),可求得使目標(biāo)函數(shù)達(dá)到最小值的必要條件
對(duì)上式中u求偏導(dǎo)并讓其等于0得
根據(jù)上式與約束條件可得出
同樣的,對(duì)新的目標(biāo)函數(shù)中a求偏導(dǎo)并讓其等于0得
根據(jù)上式可得
該方法包括以下步驟:
(1)將整個(gè)數(shù)據(jù)集分成d塊,并為每塊數(shù)據(jù)中的每個(gè)數(shù)據(jù)點(diǎn)分配權(quán)重1;
(2)對(duì)分配好權(quán)重的每個(gè)數(shù)據(jù)塊進(jìn)行聚類(lèi)處理;
(3)對(duì)第1個(gè)數(shù)據(jù)塊進(jìn)行聚類(lèi),得到聚類(lèi)結(jié)果[u11,u12,...,u1t,...,u1c]和聚類(lèi)質(zhì)心[a11,a12,...,a1t,...,a1c],其中0<t≤c,u1c表示第1個(gè)數(shù)據(jù)塊的第c類(lèi),a1c表示第1個(gè)數(shù)據(jù)塊的第c個(gè)質(zhì)心;
(4)當(dāng)處理完第i-1個(gè)數(shù)據(jù)塊后,其中1<i≤d,為i-1個(gè)數(shù)據(jù)塊的質(zhì)心[a(i-1)1,a(i-1)2,...,a(i-1)t,...,a(i-1)c]中的每一個(gè)質(zhì)心賦予權(quán)重值wt,wt為數(shù)據(jù)塊中的數(shù)據(jù)點(diǎn)隸屬于聚類(lèi)u(i-1)t的隸屬度之和;將新得到的第i個(gè)數(shù)據(jù)塊中的每個(gè)數(shù)據(jù)點(diǎn)賦予權(quán)重1,將賦過(guò)權(quán)重的第i-1個(gè)數(shù)據(jù)塊的質(zhì)心和第i個(gè)數(shù)據(jù)塊中的數(shù)據(jù)點(diǎn)組成新的數(shù)據(jù)塊,對(duì)新數(shù)據(jù)塊重新進(jìn)行聚類(lèi)操作,得到聚類(lèi)結(jié)果[ui1,ui2,...,uit,...,uic]和聚類(lèi)質(zhì)心[ai1,ai2,...,ait,...,aic],依次找到第i-1次聚類(lèi)得到的質(zhì)心所在的聚類(lèi)uit,則類(lèi)u(i-1)t中所有數(shù)據(jù)點(diǎn)都屬于類(lèi)uit;
(5)循環(huán)執(zhí)行步驟(4),處理完最后一個(gè)數(shù)據(jù)塊,得到最終質(zhì)心和聚類(lèi)結(jié)果。步驟(2)中聚類(lèi)的具體步驟如下:
1)初始化β,最大誤差值ε,最大迭代次數(shù)τmax和隸屬度矩陣ucj,將η賦值為0到1的隨機(jī)數(shù),定義τ=1;
2)根據(jù)ηc,ucj和公式(10)更新ac;
3)根據(jù)ηc,ac和公式(8)更新ucj;
4)根據(jù)β,ac和公式(5)更新ηc;
5)更新τ=τ+1;
6)如果max(|ucj(τ)-ucj(τ-1)|)≤ε或τ=τmax,結(jié)束迭代,否則返回步驟2)。
以statlogsegmentation數(shù)據(jù)集為例,該數(shù)據(jù)集具有2310個(gè)數(shù)據(jù)點(diǎn),19個(gè)屬性,劃分成7個(gè)類(lèi)。對(duì)該數(shù)據(jù)集進(jìn)行聚類(lèi)方法如下:
將該數(shù)據(jù)集分成10塊,每塊具有231個(gè)數(shù)據(jù)點(diǎn),對(duì)每個(gè)數(shù)據(jù)點(diǎn)分配權(quán)重1;
對(duì)第1個(gè)數(shù)據(jù)塊進(jìn)行聚類(lèi),得到7個(gè)類(lèi)和其對(duì)應(yīng)的7個(gè)質(zhì)心,每個(gè)質(zhì)心分配的權(quán)重為該類(lèi)數(shù)據(jù)點(diǎn)隸屬度之和;將這7個(gè)質(zhì)心作為7個(gè)類(lèi)的代表添加到第2個(gè)數(shù)據(jù)塊中,組成新的數(shù)據(jù)塊再一次進(jìn)行聚類(lèi);以此類(lèi)推,一直將這10塊數(shù)據(jù)塊聚類(lèi)完成即可得到最終結(jié)果。
該方法將數(shù)據(jù)集進(jìn)行分塊處理,減少了數(shù)據(jù)量即聚類(lèi)迭代次數(shù),因此提升了聚類(lèi)效率,且經(jīng)實(shí)驗(yàn)可得,spfcs算法的f-measure值比傳統(tǒng)的spfcm算法和sphfcm算法分別提升了3.9%和21.4%。