本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及一種基于密度和擴(kuò)展網(wǎng)格的數(shù)據(jù)流聚類方法。
背景技術(shù):
隨著硬件技術(shù)、網(wǎng)絡(luò)通信技術(shù)、各種傳感設(shè)備以及各種信息技術(shù)的飛速發(fā)展,在社會網(wǎng)絡(luò)、傳感器網(wǎng)絡(luò)、電子商務(wù)、網(wǎng)絡(luò)監(jiān)控、氣象環(huán)境監(jiān)測以及金融零售企業(yè)等多個應(yīng)用領(lǐng)域,產(chǎn)生了大量實時的動態(tài)數(shù)據(jù),稱之為流式數(shù)據(jù)。
與傳統(tǒng)的數(shù)據(jù)類型不同,流式數(shù)據(jù)具有數(shù)據(jù)量大,無限長或未知長度,動態(tài)變化快,速率不穩(wěn)定,訪問歷史數(shù)據(jù)成本高等特點。使用傳統(tǒng)的數(shù)據(jù)挖掘算法來處理流式數(shù)據(jù)是非常困難的,所以基于數(shù)據(jù)流的聚類算法應(yīng)運而生。
現(xiàn)有技術(shù)中的數(shù)據(jù)流聚類算法是基于距離的測量方法;對于具有連續(xù)屬性的數(shù)據(jù),集群的中心通常是質(zhì)心,聚類的結(jié)果也偏球形,非凸數(shù)據(jù)的聚類質(zhì)量較差。此為現(xiàn)有技術(shù)的不足之處。
因此,針對現(xiàn)有技術(shù)中的上述缺陷,提供設(shè)計一種基于密度和擴(kuò)展網(wǎng)格的數(shù)據(jù)流聚類方法;以提升聚類的精度和效率,并有效地應(yīng)用于大數(shù)據(jù)聚類。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,解決傳統(tǒng)的數(shù)據(jù)流聚類算法人工設(shè)置聚類參數(shù)、初始質(zhì)心選取不當(dāng)、內(nèi)存消耗大、聚類效率低等缺陷,通過對基于數(shù)據(jù)流的密度網(wǎng)格聚類算法進(jìn)行改進(jìn),確保聚類結(jié)果的準(zhǔn)確性,具有聚類效果好、挖掘效率高等優(yōu)點。
為實現(xiàn)上述目的,本發(fā)明給出以下技術(shù)方案:
首先在線層處理已經(jīng)積累了一段時間的數(shù)據(jù)流,得到初始聚類結(jié)果,根據(jù)數(shù)據(jù)流的更新信息,重新計算網(wǎng)格密度,不斷更新聚類結(jié)果。首先假設(shè)數(shù)據(jù)集(s1,s2,…,sd)具有d維屬性,并且數(shù)據(jù)空間s=s1×s2×…×sd是d維數(shù)據(jù)空間。x=(x1,x2,…,xd)表示在t時刻、數(shù)據(jù)空間s上的數(shù)據(jù)點集合。把數(shù)據(jù)空間的每個維度si(1≤i≤d)劃分成p份,相等長度且互不相交,在每個維度的正方向上延長區(qū)間的長度,從而形成有限的超矩形區(qū)域。每一個超矩形區(qū)域就是一個網(wǎng)格單元,任何一個數(shù)據(jù)集合x都可以映射到相應(yīng)的網(wǎng)格單元,記為g(x)=(j1,j2,…,jd),其中ji=1,2…p,共有
一般說來,網(wǎng)格內(nèi)部的聚類密度值高于聚類以外密度值和邊界點的密度值。聚類孤立點的密度值與聚類中心點的密度值之間存在明顯的差距。由于相同的聚類集包含了相對較高密度點集合的連接區(qū)域,不同的聚類集合通過相對較低的密度點集合區(qū)域來區(qū)分,因此不同聚類之間的區(qū)域密度差異很大。在網(wǎng)格單元格中,找到網(wǎng)格的中心,就可以確定網(wǎng)格中的聚類個數(shù)。
由于集群中心點的密度不小于它鄰近點的密度值,所以兩個聚類中心之間的距離會非常遠(yuǎn)。定義樣本點x的密度值為ρx:
ρx=∑yχ(dxy-dc)(1)
其中dxy是從點y到點x的距離,dc是距離的臨界值。而ρx是距離樣本點x的距離小于dc的點的個數(shù)。
δ用于測量樣本點x和其他局部密度大于其自身密度的樣本點的距離。δx表示樣本點x的排斥點。
δx=min(dxy)y:ρy>ρx(3)
排斥點越小,表示點x和點y越接近,點x對點y的依賴越大,點x越有可能是點y的聚類;排斥點越大,說明點x和點y之間的距離越遠(yuǎn),點x對點y的依賴越小,點x越可能是異常值或者是其它聚類的點。數(shù)據(jù)點ρ和δ的分布情況如圖1所示。
根據(jù)數(shù)據(jù)點ρ和δ分布的決策圖,并行計算每個數(shù)據(jù)點的ρx值和δx值。當(dāng)ρ值和δ值都較大時,該數(shù)據(jù)點就是聚類中心,有幾個這樣的點,就有多少個聚類中心。當(dāng)δ值很大但ρ值很小時,該數(shù)據(jù)點很可能是孤立點,因為它們距離聚類的中心點都很遠(yuǎn)。這就基本確定了網(wǎng)格內(nèi)的聚類個數(shù)。確定聚類中心之后,網(wǎng)格內(nèi)的其它數(shù)據(jù)點劃分到距離最近、最高密度的聚類中心,從而形成網(wǎng)格內(nèi)的聚類。
通過擴(kuò)展網(wǎng)格對網(wǎng)格以外的數(shù)據(jù)點聚類。確定每個網(wǎng)格單元內(nèi)部的聚類中心之后,以中心點o為圓心,從o到網(wǎng)格中距離o最遠(yuǎn)的點a為半徑r做圓。擴(kuò)展區(qū)域如圖2所示。
用影響度inf(0<inf<1)表示在擴(kuò)展區(qū)域中的數(shù)據(jù)點對網(wǎng)格內(nèi)聚類的影響。
其中j表示擴(kuò)展區(qū)域中第j個數(shù)據(jù)點對網(wǎng)格的影響,xj表示擴(kuò)展區(qū)域內(nèi)的數(shù)據(jù)點,cenj表示網(wǎng)格單元的質(zhì)心,δj表示第j個網(wǎng)格單元的長度。影響程度越大,擴(kuò)展區(qū)域的簇的聚集程度越高,相似度越高;影響程度越小,擴(kuò)展區(qū)域的簇的聚集程度越小,相似度越低。
隨著數(shù)據(jù)的不斷流動,網(wǎng)格單元的情況不斷發(fā)生變化,新的網(wǎng)格會越來越多。在存儲空間有限的條件下,必須按照一定的規(guī)則對網(wǎng)格單元進(jìn)行合并,以節(jié)省內(nèi)存消耗。網(wǎng)格之間是否可以合并,由網(wǎng)格之間的連接程度和相鄰網(wǎng)格元素的邊界決定。如果兩個相鄰的網(wǎng)格是密集網(wǎng)格單元,則將它們合并成一個簇。如果兩個相鄰網(wǎng)格之間存在非密集網(wǎng)格單元,那么網(wǎng)格能否合并由相鄰網(wǎng)格單元的邊界確定。相鄰網(wǎng)格單元如圖3所示。
設(shè)網(wǎng)格密度是網(wǎng)格中數(shù)據(jù)點的數(shù)量。當(dāng)新的數(shù)據(jù)流到達(dá)網(wǎng)格單元時,更新網(wǎng)格單元的密度。假設(shè)在t時刻數(shù)據(jù)點x的密度值為:d(x,t);那么在t+1時刻的網(wǎng)格密度為:
d(x,t+1)=λd(x,t)(5)
其中,數(shù)據(jù)權(quán)重λ(0≤λ≤1)表示密度衰減系數(shù)。
設(shè)網(wǎng)格單元g在tn時刻接收到新的數(shù)據(jù)流數(shù)據(jù),更新的最后時間是ti(tn>ti),則更新后的網(wǎng)格單元的密度如下所示:
基于人為設(shè)置的網(wǎng)格密度閾值有著很大的局限性。當(dāng)網(wǎng)格中的數(shù)據(jù)點累積到一定程度時,可以預(yù)先設(shè)置網(wǎng)格密度閾值,以區(qū)分不同類型的網(wǎng)格單元。設(shè)網(wǎng)格單元的最大密度為den_max,非空的最小網(wǎng)格單元的密度為den_min,所有網(wǎng)格單元的平均密度由den_ave表示,則
對于不滿足密集條件的網(wǎng)格單元,根據(jù)網(wǎng)格的相鄰邊界進(jìn)行合并。減少初始網(wǎng)格單元的邊長,重復(fù)測試后,將網(wǎng)格邊界設(shè)置為網(wǎng)格邊長的1/4。合并兩個相鄰的非密集網(wǎng)格單元,只需要找到兩個網(wǎng)格單元的相鄰邊界。若網(wǎng)格的邊界區(qū)域為同一聚類,則合并其對應(yīng)的相鄰網(wǎng)格。
離線調(diào)整的過程相對獨立,其工作依賴于中間知識庫的積累。隨著時間的推移,連續(xù)數(shù)據(jù)流不斷到來,聚類結(jié)果不斷更新。數(shù)據(jù)時間越長,重要性就越小。因此,引入數(shù)據(jù)權(quán)重λ(0≤λ≤1)作為密度衰減系數(shù),降低了歷史數(shù)據(jù)的權(quán)重。λ基于數(shù)據(jù)的權(quán)值和生命周期。假設(shè)ω為權(quán)值,生命周期為τ,則密度衰減系數(shù)滿足λτ≤ω。也就是說,數(shù)據(jù)經(jīng)過τ周期之后,其權(quán)重不大于ω。通過設(shè)定不同的ω值和τ值確定λ的取值。當(dāng)新的數(shù)據(jù)流到達(dá)時,數(shù)據(jù)空間由初始聚類結(jié)果和有新數(shù)據(jù)更新的網(wǎng)格組成,得到的挖掘結(jié)果由pyramidtimeframe結(jié)構(gòu)來存儲數(shù)據(jù)。采用增量更新的方式,使得原始聚類結(jié)果不斷更新,該方法有著良好的收縮性和高效率。
本發(fā)明的有益效果在于,解決傳統(tǒng)的數(shù)據(jù)流聚類算法人工設(shè)置聚類參數(shù)、初始質(zhì)心選取不當(dāng)、內(nèi)存消耗大、聚類效率低等缺陷,通過對基于數(shù)據(jù)流的密度網(wǎng)格聚類算法進(jìn)行改進(jìn),確保聚類結(jié)果的準(zhǔn)確性,具有聚類效果好、挖掘效率高等優(yōu)點。此外,本發(fā)明設(shè)計原理可靠,具有非常廣泛的應(yīng)用前景。
由此可見,本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實質(zhì)性特點和顯著地進(jìn)步,其實施的有益效果也是顯而易見的。
附圖說明
圖1是數(shù)據(jù)點ρ和δ的分布。
圖2是擴(kuò)展區(qū)域示意圖。
圖3相鄰網(wǎng)格單元。
具體實施方式
下面結(jié)合附圖并通過具體實施例對本發(fā)明進(jìn)行詳細(xì)闡述,以下實施例是對本發(fā)明的解釋,而本發(fā)明并不局限于以下實施方式。
本實施例給出基于密度和擴(kuò)展網(wǎng)格的數(shù)據(jù)流聚類方法,首先在線層處理已經(jīng)積累了一段時間的數(shù)據(jù)流,得到初始聚類結(jié)果,根據(jù)數(shù)據(jù)流的更新信息,重新計算網(wǎng)格密度,不斷更新聚類結(jié)果。首先假設(shè)數(shù)據(jù)集(s1,s2,...,sd)具有d維屬性,并且數(shù)據(jù)空間s=s1×s2×...×sd是d維數(shù)據(jù)空間。x=(x1,x2,...,xd)表示在t時刻、數(shù)據(jù)空間s上的數(shù)據(jù)點集合。把數(shù)據(jù)空間的每個維度si(1≤i≤d)劃分成p份,相等長度且互不相交,在每個維度的正方向上延長區(qū)間的長度,從而形成有限的超矩形區(qū)域。每一個超矩形區(qū)域就是一個網(wǎng)格單元,任何一個數(shù)據(jù)集合x都可以映射到相應(yīng)的網(wǎng)格單元,記為g(x)=(j1,j2,...,jd),其中ji=1,2...p,共有
一般說來,網(wǎng)格內(nèi)部的聚類密度值高于聚類以外密度值和邊界點的密度值。聚類孤立點的密度值與聚類中心點的密度值之間存在明顯的差距。由于相同的聚類集包含了相對較高密度點集合的連接區(qū)域,不同的聚類集合通過相對較低的密度點集合區(qū)域來區(qū)分,因此不同聚類之間的區(qū)域密度差異很大。在網(wǎng)格單元格中,找到網(wǎng)格的中心,就可以確定網(wǎng)格中的聚類個數(shù)。
由于集群中心點的密度不小于它鄰近點的密度值,所以兩個聚類中心之間的距離會非常遠(yuǎn)。定義樣本點x的密度值為ρx:
ρx=∑yx(dxy-dc)(1)
其中dxy是從點y到點x的距離,dc是距離的臨界值。而ρx是距離樣本點x的距離小于dc的點的個數(shù)。
δ用于測量樣本點x和其他局部密度大于其自身密度的樣本點的距離。δx表示樣本點x的排斥點。
δx=min(dxy)y:ρy>ρx(3)
排斥點越小,表示點x和點y越接近,點x對點y的依賴越大,點x越有可能是點y的聚類;排斥點越大,說明點x和點y之間的距離越遠(yuǎn),點x對點y的依賴越小,點x越可能是異常值或者是其它聚類的點。數(shù)據(jù)點ρ和δ的分布情況如圖1所示。
根據(jù)數(shù)據(jù)點ρ和δ分布的決策圖,并行計算每個數(shù)據(jù)點的ρx值和δx值。當(dāng)ρ值和δ值都較大時,該數(shù)據(jù)點就是聚類中心,有幾個這樣的點,就有多少個聚類中心。當(dāng)δ值很大但ρ值很小時,該數(shù)據(jù)點很可能是孤立點,因為它們距離聚類的中心點都很遠(yuǎn)。這就基本確定了網(wǎng)格內(nèi)的聚類個數(shù)。確定聚類中心之后,網(wǎng)格內(nèi)的其它數(shù)據(jù)點劃分到距離最近、最高密度的聚類中心,從而形成網(wǎng)格內(nèi)的聚類。
通過擴(kuò)展網(wǎng)格對網(wǎng)格以外的數(shù)據(jù)點聚類。確定每個網(wǎng)格單元內(nèi)部的聚類中心之后,以中心點o為圓心,從o到網(wǎng)格中距離o最遠(yuǎn)的點a為半徑r做圓。擴(kuò)展區(qū)域如圖2所示。
用影響度inf(0<inf<1)表示在擴(kuò)展區(qū)域中的數(shù)據(jù)點對網(wǎng)格內(nèi)聚類的影響。
其中j表示擴(kuò)展區(qū)域中第j個數(shù)據(jù)點對網(wǎng)格的影響,xj表示擴(kuò)展區(qū)域內(nèi)的數(shù)據(jù)點,cenj表示網(wǎng)格單元的質(zhì)心,δj表示第j個網(wǎng)格單元的長度。影響程度越大,擴(kuò)展區(qū)域的簇的聚集程度越高,相似度越高;影響程度越小,擴(kuò)展區(qū)域的簇的聚集程度越小,相似度越低。
隨著數(shù)據(jù)的不斷流動,網(wǎng)格單元的情況不斷發(fā)生變化,新的網(wǎng)格會越來越多。在存儲空間有限的條件下,必須按照一定的規(guī)則對網(wǎng)格單元進(jìn)行合并,以節(jié)省內(nèi)存消耗。網(wǎng)格之間是否可以合并,由網(wǎng)格之間的連接程度和相鄰網(wǎng)格元素的邊界決定。如果兩個相鄰的網(wǎng)格是密集網(wǎng)格單元,則將它們合并成一個簇。如果兩個相鄰網(wǎng)格之間存在非密集網(wǎng)格單元,那么網(wǎng)格能否合并由相鄰網(wǎng)格單元的邊界確定。相鄰網(wǎng)格單元如圖3所示。
設(shè)網(wǎng)格密度是網(wǎng)格中數(shù)據(jù)點的數(shù)量。當(dāng)新的數(shù)據(jù)流到達(dá)網(wǎng)格單元時,更新網(wǎng)格單元的密度。假設(shè)在t時刻數(shù)據(jù)點x的密度值為:d(x,t);那么在t+1時刻的網(wǎng)格密度為:
d(x,t+1)=λd(x,t)(5)
其中,數(shù)據(jù)權(quán)重λ(0≤λ≤1)表示密度衰減系數(shù)。
設(shè)網(wǎng)格單元g在tn時刻接收到新的數(shù)據(jù)流數(shù)據(jù),更新的最后時間是ti(tn>ti),則更新后的網(wǎng)格單元的密度如下所示:
基于人為設(shè)置的網(wǎng)格密度閾值有著很大的局限性。當(dāng)網(wǎng)格中的數(shù)據(jù)點累積到一定程度時,可以預(yù)先設(shè)置網(wǎng)格密度閾值,以區(qū)分不同類型的網(wǎng)格單元。設(shè)網(wǎng)格單元的最大密度為den_max,非空的最小網(wǎng)格單元的密度為den_min,所有網(wǎng)格單元的平均密度由den_ave表示,則
對于不滿足密集條件的網(wǎng)格單元,根據(jù)網(wǎng)格的相鄰邊界進(jìn)行合并。減少初始網(wǎng)格單元的邊長,重復(fù)測試后,將網(wǎng)格邊界設(shè)置為網(wǎng)格邊長的1/4。合并兩個相鄰的非密集網(wǎng)格單元,只需要找到兩個網(wǎng)格單元的相鄰邊界。若網(wǎng)格的邊界區(qū)域為同一聚類,則合并其對應(yīng)的相鄰網(wǎng)格。
離線調(diào)整的過程相對獨立,其工作依賴于中間知識庫的積累。隨著時間的推移,連續(xù)數(shù)據(jù)流不斷到來,聚類結(jié)果不斷更新。數(shù)據(jù)時間越長,重要性就越小。因此,引入數(shù)據(jù)權(quán)重λ(0≤λ≤1)作為密度衰減系數(shù),降低了歷史數(shù)據(jù)的權(quán)重。λ基于數(shù)據(jù)的權(quán)值和生命周期。假設(shè)ω為權(quán)值,生命周期為τ,則密度衰減系數(shù)滿足λτ≤ω。也就是說,數(shù)據(jù)經(jīng)過τ周期之后,其權(quán)重不大于ω。通過設(shè)定不同的ω值和τ值確定λ的取值。當(dāng)新的數(shù)據(jù)流到達(dá)時,數(shù)據(jù)空間由初始聚類結(jié)果和有新數(shù)據(jù)更新的網(wǎng)格組成,得到的挖掘結(jié)果由pyramidtimeframe結(jié)構(gòu)來存儲數(shù)據(jù)。采用增量更新的方式,使得原始聚類結(jié)果不斷更新,該方法有著良好的收縮性和高效率。
以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進(jìn)和潤飾,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。