本發(fā)明涉及機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域,尤其涉及一種基于最小生成樹的聚類算法。
背景技術(shù):
聚類是按照相似性原則,將數(shù)據(jù)點(diǎn)集合劃分成由類似對象組成的多個(gè)簇,使得屬于同一個(gè)簇中的數(shù)據(jù)彼此相似,不同簇中的數(shù)據(jù)彼此相異。聚類在商業(yè)、生物、地理、因特網(wǎng)等許多領(lǐng)域的應(yīng)用非常成功。在當(dāng)前大數(shù)據(jù)時(shí)代,快速準(zhǔn)確聚類算法的研究顯得尤為重要。到目前為止,典型的聚類算法包括:基于層次的聚類算法,基于劃分的聚類算法,基于密度的聚類算法和基于網(wǎng)格的聚類算法等。
由forgy提出的k-means聚類算法屬于基于劃分的聚類算法,但由于k-means特別依賴初始聚類中心的選取,并且對噪聲數(shù)據(jù)和類之間的重疊性較為敏感,使得利用k-means算法的聚類結(jié)果容易產(chǎn)生局部最優(yōu)以及聚類結(jié)果不穩(wěn)定等問題。為克服這些缺點(diǎn),許多學(xué)者做了相應(yīng)的研究。例如,為解決k-means算法隨機(jī)選擇初始聚類中心的缺點(diǎn),davidarthur等提出k-means++算法,該算法的基本思想是:初始聚類中心之間的距離應(yīng)該盡可能的大。該算法第一個(gè)初始聚類中心是隨機(jī)選取的,這就仍然導(dǎo)致了最終聚類結(jié)果不穩(wěn)定,并且容易導(dǎo)致結(jié)果受離群點(diǎn)影響。khan等提出了基于數(shù)據(jù)壓縮原理的聚類算法ccia,該方法對各種數(shù)據(jù)集總體效果較好,但其時(shí)間復(fù)雜度會隨著數(shù)據(jù)維數(shù)的增大而增加,所以不適合高維數(shù)據(jù)。由redmond提出的kd-tree初始聚類中心選取方法能夠有效地選取具有代表性的初始聚類中心,且適用于高維數(shù)據(jù)。
基于層次的聚類算法,該算法是通過對數(shù)據(jù)集進(jìn)行分解從而完成聚類的。分解過程分為若干層,分解方式分為自底向上法和自頂向下法。在層次聚類算法中,用戶可以選擇一個(gè)約束條件作為聚類的結(jié)束條件,不同的約束條件可能導(dǎo)致不同的聚類結(jié)果。該聚類算法的層次化過程使得聚類過程清晰明了,但算法的時(shí)間代價(jià)非常昂貴。為解決時(shí)間復(fù)雜度問題,zhang等人提出了brich匯聚式聚類算法,該算法通過聚類特征和聚類特征數(shù)對數(shù)據(jù)進(jìn)行壓縮,這種方法不但減少了需要處理的數(shù)據(jù)量,并且壓縮后的數(shù)據(jù)仍然攜帶brich算法所需要的全部信息,但是該算法僅適用于球形數(shù)據(jù)集。guha等提出的cure算法可以識別許多復(fù)雜形狀的數(shù)據(jù),并且較好處理了離群點(diǎn),但是,該算法對參數(shù)的輸入特別敏感。
因此,本領(lǐng)域的技術(shù)人員致力于開發(fā)一種基于最小生成樹的聚類算法,利用最小生成樹構(gòu)建數(shù)據(jù)點(diǎn)的骨架,并依據(jù)節(jié)點(diǎn)的優(yōu)先權(quán)值多次遍歷與合并節(jié)點(diǎn),直到總的節(jié)點(diǎn)數(shù)目等于類別數(shù)k,則結(jié)束聚類,本發(fā)明的一種基于最小生成樹的聚類算法兼顧距離與密度兩個(gè)因素,很好地解決了簇間有交疊的情況,進(jìn)一步提高了聚類精度,能夠獲得較好的聚類效果,并且聚類結(jié)果穩(wěn)定。
技術(shù)實(shí)現(xiàn)要素:
有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是開發(fā)一種基于最小生成樹的聚類算法,利用最小生成樹構(gòu)建數(shù)據(jù)點(diǎn)的骨架,并依據(jù)節(jié)點(diǎn)的優(yōu)先權(quán)值多次遍歷與合并節(jié)點(diǎn),直到總的節(jié)點(diǎn)數(shù)目等于類別數(shù)k,則結(jié)束聚類。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于最小生成樹的聚類算法,包括以下幾個(gè)步驟:
步驟s1、輸入待聚類的數(shù)據(jù)集及類別數(shù)k;
步驟s2、構(gòu)造數(shù)據(jù)集的最小生成樹;
步驟s3、按各節(jié)點(diǎn)優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹;
步驟s4、進(jìn)行節(jié)點(diǎn)間的合并;
步驟s5、計(jì)算合并后新節(jié)點(diǎn)的屬性;
步驟s6、判斷是否結(jié)束本次遍歷;
步驟s7:判斷是否結(jié)束聚類。
進(jìn)一步地,步驟s1具體包括:輸入待聚類為k個(gè)類別的數(shù)據(jù)集d,數(shù)據(jù)集包括n個(gè)數(shù)據(jù)點(diǎn)di,d={di|i=1,2,…,n}。
進(jìn)一步地,步驟s2具體包括:利用prim算法對數(shù)據(jù)集d構(gòu)造最小生成樹t,其中,最小生成樹t中的頂點(diǎn)集合v={vi|i=1,2,…,n},數(shù)據(jù)點(diǎn)di與vi被設(shè)置為一一對應(yīng)關(guān)系,由節(jié)點(diǎn)vi與vj構(gòu)成的邊的權(quán)重等于對應(yīng)數(shù)據(jù)點(diǎn)di與dj之間的歐幾里德距離。
進(jìn)一步地,步驟s3利用以下公式計(jì)算最小生成樹中各節(jié)點(diǎn)的優(yōu)先權(quán)值,然后按節(jié)點(diǎn)優(yōu)先權(quán)值降序遍歷各節(jié)點(diǎn):
其中α∈(0,1),dei為最小生成樹中節(jié)點(diǎn)vi的度,demax為最小生成樹的最大度數(shù),ε是一個(gè)趨向于0的常數(shù),
進(jìn)一步地,步驟s4具體包括:首先,判斷遍歷到的節(jié)點(diǎn)vi是否參與過合并,如果已參與過合并,則不再進(jìn)行節(jié)點(diǎn)vi與其它節(jié)點(diǎn)間的合并,如果未參與過合并,則在最小生成樹中找到與節(jié)點(diǎn)vi存在邊相連的所有節(jié)點(diǎn),在所有節(jié)點(diǎn)中,將符合要求的節(jié)點(diǎn)挑選出來并與節(jié)點(diǎn)vi合并。
進(jìn)一步地,符合要求的節(jié)點(diǎn)包括:節(jié)點(diǎn)未參與過合并,在所有與節(jié)點(diǎn)vi存在邊相連的節(jié)點(diǎn)中,節(jié)點(diǎn)與節(jié)點(diǎn)vi的距離最小;其中,如果有多個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)vi的距離相等且最小,則與節(jié)點(diǎn)vi合并的節(jié)點(diǎn)的數(shù)目大于1。
進(jìn)一步地,步驟s5具體包括:假設(shè)有e個(gè)節(jié)點(diǎn)進(jìn)行合并,e個(gè)節(jié)點(diǎn)的屬性值分別為a1,a2,…,ae,則合并后新節(jié)點(diǎn)的屬性為
進(jìn)一步地,步驟s6具體包括:假如遍歷完所有n個(gè)節(jié)點(diǎn)或n等于類別數(shù)k,則結(jié)束本次遍歷;如果未遍歷完所有n個(gè)節(jié)點(diǎn)并且n大于類別數(shù)k,則繼續(xù)本次遍歷。
進(jìn)一步地,步驟s7包括:當(dāng)前總的節(jié)點(diǎn)數(shù)目大于類別數(shù)k,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹,繼續(xù)進(jìn)行遍歷與合并;若當(dāng)前總的節(jié)點(diǎn)數(shù)目等于類別數(shù)k,則聚類結(jié)束,并輸出聚類結(jié)果。
技術(shù)效果
1.傳統(tǒng)的k-means方法隨機(jī)選取初始聚類中心,且在聚類過程中僅考慮距離因素,往往導(dǎo)致聚類結(jié)果陷入局部最優(yōu)。本發(fā)明對數(shù)據(jù)集生成最小生成樹,并根據(jù)節(jié)點(diǎn)的度以及該節(jié)點(diǎn)與鄰接點(diǎn)間的最短距離,計(jì)算節(jié)點(diǎn)的優(yōu)先權(quán)值,其實(shí)質(zhì)是兼顧了距離與密度兩個(gè)因素;本發(fā)明再按優(yōu)先權(quán)值降序遍歷各節(jié)點(diǎn),從而避免了隨機(jī)法選取初始聚類中心帶來的聚類結(jié)果不穩(wěn)定的問題,因此,本發(fā)明的一種基于最小生成樹的聚類算法具有很好的穩(wěn)定性。
2.在層次聚類法的每次迭代中,以距離作為合并準(zhǔn)則,將距離最近的兩個(gè)簇合并為新的簇,在合并過程中,同樣忽略了密度因素。在遇到兩個(gè)簇發(fā)生交疊的情況時(shí),則會將交疊部分錯(cuò)誤地歸為某一簇,又由于層次聚類法的聚類過程是不可逆的,因此,導(dǎo)致最終的聚類結(jié)果發(fā)生錯(cuò)誤。本發(fā)明方法是按優(yōu)先權(quán)值降序遍歷節(jié)點(diǎn),位于兩個(gè)簇交疊處的節(jié)點(diǎn),又可以認(rèn)為是位于簇邊界的節(jié)點(diǎn),其度數(shù)一般小于位于簇中心的節(jié)點(diǎn),故優(yōu)先權(quán)值也較小,往往在較后面才會被遍歷到,而該節(jié)點(diǎn)與本簇相鄰節(jié)點(diǎn)的距離一般小于與異簇節(jié)點(diǎn)的距離,因此,在該節(jié)點(diǎn)被遍歷前,大多已被本簇優(yōu)先權(quán)值較高的節(jié)點(diǎn)合并。因此,本發(fā)明的一種基于最小生成樹的聚類算法很好地解決了簇間有交疊的情況。
3.總之,本發(fā)明的一種基于最小生成樹的聚類算法很好地解決了簇間有交疊的情況,進(jìn)一步提高了聚類精度,能夠獲得較好的聚類效果,并且聚類結(jié)果穩(wěn)定。
以下將結(jié)合附圖對本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說明,以充分地了解本發(fā)明的目的、特征和效果。
附圖說明
圖1是本發(fā)明的一個(gè)較佳實(shí)施例的人工生成的數(shù)據(jù)集及最小生成樹的示意圖;
圖2是本發(fā)明的一個(gè)較佳實(shí)施例的第1次遍歷與合并的示意圖;
圖3是本發(fā)明的一個(gè)較佳實(shí)施例的第1次遍歷與合并后生成最小生成樹的示意圖;
圖4是本發(fā)明的一個(gè)較佳實(shí)施例的第2次遍歷與合并的示意圖;
圖5是本發(fā)明的一個(gè)較佳實(shí)施例的第2次遍歷與合并后生成最小生成樹的示意圖;
圖6是本發(fā)明的一個(gè)較佳實(shí)施例的第3次遍歷與合并的示意圖;
圖7是本發(fā)明的一個(gè)較佳實(shí)施例的第3次遍歷與合并后生成最小生成樹的示意圖;
圖8是本發(fā)明的一個(gè)較佳實(shí)施例的第4次遍歷與合并的示意圖;
圖9是本發(fā)明的一個(gè)較佳實(shí)施例的第4次遍歷與合并后生成最小生成樹的示意圖;
圖10是本發(fā)明的一個(gè)較佳實(shí)施例的第5次遍歷與合并的示意圖;
圖11是本發(fā)明的一個(gè)較佳實(shí)施例的第5次遍歷與合并后生成最小生成樹的示意圖;
圖12是本發(fā)明的一個(gè)較佳實(shí)施例的第6次遍歷與合并的示意圖;
圖13是本發(fā)明的一個(gè)較佳實(shí)施例的第6次遍歷與合并后生成最小生成樹的示意圖;
圖14是本發(fā)明的一個(gè)較佳實(shí)施例的第7次遍歷與合并的示意圖;
圖15是本發(fā)明的一個(gè)較佳實(shí)施例的第7次遍歷與合并后生成最小生成樹的示意圖;
圖16是本發(fā)明的一個(gè)較佳實(shí)施例的本發(fā)明算法流程圖;
圖17是本發(fā)明的一個(gè)較佳實(shí)施例的算法中合并策略的流程圖;
圖18是本發(fā)明的一個(gè)較佳實(shí)施例的人工合成數(shù)據(jù)集syn1的示意圖;
圖19是本發(fā)明的一個(gè)較佳實(shí)施例的利用k-means方法對syn1的聚類結(jié)果圖;
圖20是本發(fā)明的一個(gè)較佳實(shí)施例的利用本發(fā)明方法對syn1的聚類結(jié)果圖;
圖21是本發(fā)明的一個(gè)較佳實(shí)施例的人工合成數(shù)據(jù)集syn2的示意圖;
圖22是本發(fā)明的一個(gè)較佳實(shí)施例的層次聚類方法對syn2的聚類結(jié)果圖;
圖23是本發(fā)明的一個(gè)較佳實(shí)施例的本發(fā)明方法對syn2的聚類結(jié)果圖。
具體實(shí)施方式
由于k-means算法對初始聚類中心選取非常敏感且容易陷入局部最優(yōu),層次聚類算法在類間有交疊時(shí)也會產(chǎn)生錯(cuò)誤,為解決上述問題,本發(fā)明提出一種基于最小生成樹的聚類算法。
如圖16所示,本發(fā)明的一較佳實(shí)施例提供了一種基于最小生成樹的聚類算法,具體的實(shí)施可以遵從如下處理過程:
首先,對于輸入的待聚類數(shù)據(jù)集d,利用prim算法對其構(gòu)造最小生成樹t,其次,對于最小生成樹t中每個(gè)節(jié)點(diǎn)vi賦予優(yōu)先權(quán)值,規(guī)定:與節(jié)點(diǎn)相連的邊越短且與其相連的邊數(shù)越多,則該節(jié)點(diǎn)的權(quán)值越大。根據(jù)權(quán)值從大到小的順序依次遍歷最小生成樹中的各個(gè)節(jié)點(diǎn)vi,將符合如下要求的節(jié)點(diǎn)挑選出來與vi合并:該節(jié)點(diǎn)未參與過合并,在所有與vi存在邊相連的節(jié)點(diǎn)中,該節(jié)點(diǎn)與vi的距離最小;這里,如果有多個(gè)節(jié)點(diǎn)與vi的距離相等且最小,則與vi合并的節(jié)點(diǎn)的數(shù)目大于1。合并后用生成的新節(jié)點(diǎn)來代替原來參與合并的節(jié)點(diǎn)。新節(jié)點(diǎn)的各個(gè)屬性是所有參與合并點(diǎn)對應(yīng)屬性的均值。若遍歷完所有n個(gè)節(jié)點(diǎn)或n等于類別數(shù)k,則結(jié)束本次遍歷,在下次遍歷中用新生成的節(jié)點(diǎn)來代替之前的節(jié)點(diǎn)來執(zhí)行前述方法;如果未遍歷完所有n個(gè)節(jié)點(diǎn)并且n大于類別數(shù)k,則繼續(xù)本次遍歷。若總的節(jié)點(diǎn)數(shù)目等于類別數(shù)k,則聚類結(jié)束,輸出聚類結(jié)果。
如圖1所示,本發(fā)明一較佳實(shí)施例的一種基于最小生成樹的聚類算法具體包括以下步驟:
s1:輸入待聚類的數(shù)據(jù)集及其類別數(shù)k;
s2:構(gòu)造數(shù)據(jù)集的最小生成樹;
s3:按各節(jié)點(diǎn)優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹;
s4:進(jìn)行節(jié)點(diǎn)間的合并;
s5:計(jì)算合并后新節(jié)點(diǎn)的屬性;
s6:判斷是否結(jié)束本次遍歷;
s7:判斷是否結(jié)束聚類。
其中,步驟s1輸入待聚類的數(shù)據(jù)集及其類別數(shù)k,其具體步驟為:輸入待聚類為k個(gè)類別的數(shù)據(jù)集d,該數(shù)據(jù)集共有n個(gè)數(shù)據(jù)點(diǎn)di,d={di|i=1,2,…,n}。
其中,步驟s2構(gòu)造數(shù)據(jù)集的最小生成樹,其具體步驟為:首先,利用prim算法對數(shù)據(jù)集d構(gòu)造最小生成樹t,其中,最小生成樹t中頂點(diǎn)集合v={vi|i=1,2,…,n},數(shù)據(jù)點(diǎn)di與vi是一一對應(yīng)關(guān)系,由節(jié)點(diǎn)vi與vj構(gòu)成的邊的權(quán)重等于對應(yīng)數(shù)據(jù)點(diǎn)di與dj之間的歐幾里德距離。
其中,步驟s3按各節(jié)點(diǎn)優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹,其具體步驟為:首先計(jì)算最小生成樹中各節(jié)點(diǎn)的優(yōu)先權(quán)值:
式中,pi為節(jié)點(diǎn)vi的優(yōu)先權(quán)值,α∈(0,1),這里取α為0.4,dei為最小生成樹中節(jié)點(diǎn)vi的度,demax為最小生成樹的最大度數(shù),ε是一個(gè)趨向于0的常數(shù),
其中,步驟s4進(jìn)行節(jié)點(diǎn)間的合并,如圖17所示節(jié)點(diǎn)間合并的流程圖,其具體步驟為:首先,判斷遍歷到的節(jié)點(diǎn)vi是否參與過合并,如果已參與過合并,則不再進(jìn)行該節(jié)點(diǎn)vi與其它節(jié)點(diǎn)間的合并,如果未參與過合并,則在最小生成樹中找到與節(jié)點(diǎn)vi存在邊相連的所有節(jié)點(diǎn),在這所有的節(jié)點(diǎn)中,將符合如下要求的節(jié)點(diǎn)挑選出來并與vi合并:該節(jié)點(diǎn)未參與過合并,在所有與vi存在邊相連的節(jié)點(diǎn)中,該節(jié)點(diǎn)與vi的距離最??;這里,如果有多個(gè)節(jié)點(diǎn)與vi的距離相等且最小,則與vi合并的節(jié)點(diǎn)的數(shù)目大于1。
其中,步驟s5計(jì)算合并后新節(jié)點(diǎn)的屬性,其具體步驟為:假定有e個(gè)節(jié)點(diǎn)進(jìn)行合并,這e個(gè)節(jié)點(diǎn)的屬性值分別為a1,a2,…,ae,則合并后新節(jié)點(diǎn)的屬性為
其中,步驟s6判斷是否結(jié)束本次遍歷,其具體步驟為:若遍歷完所有n個(gè)節(jié)點(diǎn)或n等于類別數(shù)k,則結(jié)束本次遍歷;如果未遍歷完所有n個(gè)節(jié)點(diǎn)并且n大于類別數(shù)k,則繼續(xù)本次遍歷。
其中,步驟s7判斷是否結(jié)束聚類,其具體步驟為:若當(dāng)前總的節(jié)點(diǎn)數(shù)目大于類別數(shù)k,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹,繼續(xù)進(jìn)行遍歷與合并;若當(dāng)前總的節(jié)點(diǎn)數(shù)目等于類別數(shù)k,則聚類結(jié)束,并輸出聚類結(jié)果。
實(shí)施例
(1)、人工生成包含90個(gè)數(shù)據(jù)點(diǎn)的數(shù)據(jù)集d={d1,d2,...,d90},該數(shù)據(jù)集的類別數(shù)目k=3,每個(gè)數(shù)據(jù)點(diǎn)的屬性維數(shù)是2維,下面,列出所有數(shù)據(jù)點(diǎn)的具體屬性:
d1(0.6497,1.7818),d2(1.6068,1.0395),d3(1.9584,0.6588),d4(1.8344,0.3428),d5(0.9730,0.8138),d6(0.6096,1.4670),d7(0.0519,-0.1745),d8(1.0918,0.9471),d9(1.7432,1.6060),d10(0.7359,-0.1005),d11(0.8657,1.5185),d12(1.4774,1.5292),d13(1.6692,0.3167),d14(-0.0975,-0.1654),d15(1.1549,1.3355),d16(1.1517,1.6261),d17(0.8829,1.4484),d18(1.6915,1.5909),d19(0.7179,0.0843),d20(0.3600,1.4522),d21(1.2138,0.5507),d22(1.3562,0.5652),d23(0.8315,-0.2052),d24(1.6167,1.8522),d25(-0.1759,1.1356),d26(0.1674,1.7774),d27(-1.3797,2.1704),d28(1.4039,0.1191),d29(0.2324,1.4981),d30(0.8039,0.9901),d31(4.7082,4.5146),d32(4.8580,3.4560),d33(4.6355,4.3883),d34(3.3667,4.4185),d35(3.9020,4.7674),d36(4.2046,4.7664),d37(6.4466,3.4664),d38(4.9501,3.3363),d39(5.7976,4.0375),d40(4.3211,3.4850),d41(4.1641,5.1253),d42(4.4750,5.0688),d43(3.5912,4.0737),d44(4.9617,3.6691),d45(3.8779,4.3957),d46(2.9360,3.4917),d47(4.6745,3.9032),d48(2.7850,3.5891),d49(2.5714,4.0818),d50(4.2234,4.8740),d51(3.2634,4.5751),d52(3.2945,4.8858),d53(3.8746,3.2915),d54(3.6213,4.1393),d55(3.8274,3.2383),d56(4.2107,4.2981),d57(3.0949,4.2523),d58(3.0517,5.0041),d59(2.3738,4.8515),d60(3.6977,4.5060),d61(6.6088,6.2686),d62(6.6313,6.4801),d63(5.4109,7.4467),d64(6.6527,5.3844),d65(5.7984,7.1828),d66(7.7202,6.3970),d67(7.6986,7.8517),d68(7.1071,6.3373),d69(6.7069,7.0059),d70(7.1108,6.2737),d71(8.2433,6.4721),d72(8.0450,6.7985),d73(6.6526,6.8228),d74(7.1305,6.5935),d75(6.1321,7.8740),d76(7.3104,7.4261),d77(7.5725,8.4370),d78(7.6972,6.7852),d79(5.8139,7.8262),d80(7.3909,5.3739),d81(6.3306,7.4946),d82(6.7083,7.2877),d83(7.6104,6.7102),d84(7.2310,7.5386),d85(6.8732,7.6798),d86(7.4700,7.8006),d87(8.2661,7.3252),d88(6.5170,7.4656),d89(5.9542,6.4779),d90(6.0997,6.1517);
這里為表示方便,將每個(gè)數(shù)據(jù)點(diǎn)看作是平面直角坐標(biāo)系下的點(diǎn),每個(gè)數(shù)據(jù)點(diǎn)的2個(gè)屬性看作是平面直角坐標(biāo)系下點(diǎn)的2個(gè)坐標(biāo),如圖1所示,列出90個(gè)數(shù)據(jù)點(diǎn)在平面直角坐標(biāo)系下對應(yīng)的點(diǎn)。
(2)、利用prim算法對數(shù)據(jù)集d構(gòu)造最小生成樹t,其中,最小生成樹t中頂點(diǎn)集合v={vi|i=1,2,…,90},數(shù)據(jù)點(diǎn)di與vi是一一對應(yīng)關(guān)系,由節(jié)點(diǎn)vi與vj構(gòu)成的邊的權(quán)重等于對應(yīng)數(shù)據(jù)點(diǎn)di與dj之間的歐幾里德距離。
下面列出數(shù)據(jù)集d對應(yīng)的節(jié)點(diǎn)集合v={v1,v2,...,v90}的坐標(biāo)為:
v1(0.6497,1.7818),v2(1.6068,1.0395),v3(1.9584,0.6588),v4(1.8344,0.3428),v5(0.9730,0.8138),v6(0.6096,1.4670),v7(0.0519,-0.1745),v8(1.0918,0.9471),v9(1.7432,1.6060),vi0(0.7359,-0.1005),v11(0.8657,1.5185),v12(1.4774,1.5292),v13(1.6692,0.3167),v14(-0.0975,-0.1654),v15(1.1549,1.3355),v16(1.1517,1.6261),v17(0.8829,1.4484),v18(1.6915,1.5909),v19(0.7179,0.0843),v20(0.3600,1.4522),v21(1.2138,0.5507),v22(1.3562,0.5652),v23(0.8315,-0.2052),v24(1.6167,1.8522),v25(-0.1759,1.1356),v26(0.1674,1.7774),v27(-1.3797,2.1704),v28(1.4039,0.1191),v29(0.2324,1.4981),v30(0.8039,0.9901),v31(4.7082,4.5146),v32(4.8580,3.4560),v33(4.6355,4.3883),v34(3.3667,4.4185),v35(3.9020,4.7674),v36(4.2046,4.7664),v37(6.4466,3.4664),v38(4.9501,3.3363),v39(5.7976,4.0375),v40(4.3211,3.4850),v41(4.1641,5.1253),v42(4.4750,5.0688),v43(3.5912,4.0737),v44(4.9617,3.6691),v45(3.8779,4.3957),v46(2.9360,3.4917),v47(4.6745,3.9032),v48(2.7850,3.5891),v49(2.5714,4.0818),v50(4.2234,4.8740),v51(3.2634,4.5751),v52(3.2945,4.8858),v53(3.8746,3.2915),v54(3.6213,4.1393),v55(3.8274,3.2383),v56(4.2107,4.2981),v57(3.0949,4.2523),v58(3.0517,5.0041),v59(2.3738,4.8515),v60(3.6977,4.5060),v61(6.6088,6.2686),v62(6.6313,6.4801),v63(5.4109,7.4467),v64(6.6527,5.3844),v65(5.7984,7.1828),v66(7.7202,6.3970),v67(7.6986,7.8517),v68(7.1071,6.3373),v69(6.7069,7.0059),v70(7.1108,6.2737),v71(8.2433,6.4721),v72(8.0450,6.7985),v73(6.6526,6.8228),v74(7.1305,6.5935),v75(6.1321,7.8740),v76(7.3104,7.4261),v77(7.5725,8.4370),v78(7.6972,6.7852),v79(5.8139,7.8262),v80(7.3909,5.3739),v81(6.3306,7.4946),v82(6.7083,7.2877),v83(7.6104,6.7102),v84(7.2310,7.5386),v85(6.8732,7.6798),v86(7.4700,7.8006),v87(8.2661,7.3252),v88(6.5170,7.4656),v89(5.9542,6.4779),v90(6.0997,6.1517)。
由上述節(jié)點(diǎn)生成最小生成樹t,如圖1所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,6):0.3173,e(2,12):0.5065,e(3,4):0.3395,e(4,13):0.1672,e(5,8):0.1786,e(5,21):0.3567,e(5,30):0.2443,e(6,11):0.2612,e(6,20):0.2500,e(7,10):0.6880,e(7,14):0.1497,e(8,15):0.3935,e(9,18):0.0539,e(10,19):0.1857,e(10,23):0.1418,e(11,17):0.0722,e(12,16):0.3398,e(12,18):0.2228,e(13,22):0.3997,e(13,28):0.3308,e(15,16):0.2906,e(15,17):0.2945,e(18,24):0.2718,e(20,29):0.1356,e(21,22):0.1431,e(23,28):0.6579,e(24,48):2.0933,e(25,27):1.5874,e(25,29):0.5460,e(26,29):0.2868,e(31,33):0.1457,e(32,38):0.1510,e(32,40):0.5377,e(32,44):0.2370,e(33,47):0.4867,e(33,56):0.4343,e(34,51):0.1876,e(34,57):0.3186,e(34,60):0.3424,e(35,36):0.3026,e(35,60):0.3318,e(36,50):0.1092,e(37,39):0.8645,e(39,44):0.9135,e(39,64):1.5954,e(40,53):0.4866,e(41,42):0.3160,e(41,50):0.2582,e(43,54):0.0722,e(44,47):0.3705,e(45,54):0.3627,e(45,56):0.3468,e(45,60):0.2113,e(46,48):0.1797,e(48,49):0.5370,e(49,57):0.5506,e(51,52):0.3123,e(52,58):0.2701,e(53,55):0.0711,e(58,59):0.6949,e(61,62):0.2127,e(61,64):0.8853,e(61,90):0.5223,e(62,68):0.4968,e(62,73):0.3434,e(63,65):0.4688,e(63,79):0.5536,e(64,80):0.7383,e(66,83):0.3319,e(67,77):0.5987,e(67,86):0.2342,e(68,70):0.0637,e(68,74):0.2573,e(69,73):0.1910,e(69,82):0.2818,e(71,72):0.3819,e(72,78):0.3481,e(72,87):0.5712,e(74,83):0.4939,e(75,79):0.3218,e(75,81):0.4282,e(76,84):0.1377,e(78,83):0.1147,e(81,88):0.1886,e(82,88):0.2612,e(84,85):0.3847,e(84,86):0.3546,e(85,88):0.4156,e(89,90):0.3572。
例如,最小生成樹中的e(1,6):0.3173表示由d1(0.6497,1.7818)與d6(0.6096,1.4670)構(gòu)成的邊,則d1與d6的歐幾里德距離按下式計(jì)算:
(3)、計(jì)算最小生成樹中各節(jié)點(diǎn)的優(yōu)先權(quán)值:
式中,pi為節(jié)點(diǎn)vi的優(yōu)先權(quán)值,α∈(0,1),這里取α為0.4,dei為最小生成樹中節(jié)點(diǎn)vi的度,demax為最小生成樹的最大度數(shù),ε是一個(gè)趨向于0的常數(shù),
例如,最小生成樹中與節(jié)點(diǎn)v44相連的節(jié)點(diǎn)是:v32,v39,v47,對應(yīng)的三條邊的長度為:e(32,44):0.2370,e(39,44):0.9135,e(44,47):0.3705。因此de44=3,且這個(gè)最小生成樹的最大的度數(shù)demax=3,另外,三條邊中長度最短的是e(32,44):0.2370,由此可以求出:
按此方法,計(jì)算所有90個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值,并按節(jié)點(diǎn)優(yōu)先權(quán)值從大到小的順序進(jìn)行排序,得到以下結(jié)果:
p18=11.5315,p9=11.1317,p68=9.8190,p70=9.4192,p53=8.6387,p11=8.5101,p17=8.5101,p54=8.5101,p55=8.4388,p43=8.3102,p36=5.6944,p50=5.6944,p83=5.6308,p78=5.4309,p29=4.8246,p84=4.7571,p10=4.6311,p20=4.6247,p33=4.5179,p23=4.4312,p21=4.3928,p22=4.3928,p32=4.3733,p76=4.3573,p7=4.2079,p31=4.1181,p14=4.0080,p13=3.9883,p38=3.9735,p4=3.7884,p5=3.7593,p48=3.7387,p34=3.5981,p88=3.5811,p8=3.5594,p51=3.3982,p81=3.3812,p69=3.3413,p73=3.3413,p46=3.3389,p45=3.2394,p60=3.2394,p19=3.2310,p61=3.2207,p62=3.2207,p12=3.0928,p44=2.9314,p6=2.7998,p67=2.7618,p86=2.7618,p74=2.5318,p41=2.5237,p82=2.4970,p15=2.4645,p30=2.4560,p52=2.4213,p58=2.4213,p24=2.4074,p16=2.2646,p35=2.1827,p72=2.1234,p26=2.0921,p57=2.0831,p75=2.0644,p79=2.0644,p28=2.0137,p56=1.9300,p42=1.8987,p1=1.8910,p90=1.8796,p47=1.8193,p66=1.8078,p3=1.7673,p85=1.7596,p89=1.6797,p71=1.5711,p63=1.4798,p40=1.4329,p49=1.3172,p25=1.2988,p65=1.2799,p64=1.2125,p2=1.1846,p39=1.0938,p87=1.0504,p77=1.0022,p59=0.8634,p80=0.8127,p37=0.6940,p27=0.3780。
(4)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,具體步驟為:首先,判斷遍歷到的節(jié)點(diǎn)vi是否參與過合并,如果已參與過合并,則不再進(jìn)行節(jié)點(diǎn)vi與其它節(jié)點(diǎn)間的合并;相反,如果未參與過合并,則在最小生成樹中找到與節(jié)點(diǎn)vi存在邊相連的所有節(jié)點(diǎn),在這些節(jié)點(diǎn)中,將符合如下要求的節(jié)點(diǎn)挑選出來并與vi合并:該節(jié)點(diǎn)未參與過合并,在所有與vi存在邊相連的節(jié)點(diǎn)中,該節(jié)點(diǎn)與vi的距離最?。贿@里,如果有多個(gè)節(jié)點(diǎn)與vi的距離相等且最小,則與vi合并的節(jié)點(diǎn)的數(shù)目大于1。
例如:以節(jié)點(diǎn)v18(1.6915,1.5909)為例。由于其優(yōu)先權(quán)值p18等于11.5315,為所有優(yōu)先權(quán)值中的最大值,所以第一個(gè)遍歷v18,然后找到與其相連的節(jié)點(diǎn):v9(1.7432,1.6060),v12(1.4774,1.5292),v24(1.6167,1.8522),這三個(gè)節(jié)點(diǎn)均未參加過合并。然后從對應(yīng)的三條邊e(9,18):0.0539,e(12,18):0.2228,e(18,24):0.2718中選出最短的邊e(9,18):0.0539,即節(jié)點(diǎn)v18與節(jié)點(diǎn)v9距離最近,將v18與v9這兩個(gè)節(jié)點(diǎn)合并,合并產(chǎn)生的新節(jié)點(diǎn)的坐標(biāo)(x,y)為:
按照此法,按節(jié)點(diǎn)優(yōu)先權(quán)值,依次遍歷最小生成樹中的節(jié)點(diǎn)并合并,然后計(jì)算合并后點(diǎn)的坐標(biāo)。如圖2所示,淺灰色實(shí)心圓為對應(yīng)圖1中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第1次遍歷最小生成樹中90個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由54個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v54},其在二維空間下的坐標(biāo)為:
v1(0.6297,1.6244),v2(1.5421,1.2843),v3(1.9584,0.6588),v4(1.0324,0.8804),v5(-0.0228,-0.1700),v6(0.7837,-0.1528),v7(0.8743,1.4834),v8(1.7518,0.3298),v9(1.1533,1.4808),v10(1.7174,1.5985),v11(0.7179,0.0843),v12(1.2850,0.5580),v13(1.6167,1.8522),v14(0.1674,1.7774),v15(-0.7778,1.6530),v16(1.4039,0.1191),v17(0.2962,1.4752),v18(0.8039,0.9901),v19(4.9041,3.3962),v20(4.6719,4.4514),v21(3.3151,4.4968),v22(3.9020,4.7674),v23(4.2140,4.8202),v24(6.1221,3.7520),v25(4.3211,3.4850),v26(4.3196,5.0971),v27(3.7878,4.4509),v28(4.8181,3.7862),v29(2.8605,3.5404),v30(2.5714,4.0818),v31(3.1731,4.9450),v32(3.8510,3.2649),v33(3.6063,4.1065),v34(4.2107,4.2981),v35(3.0949,4.2523),v36(2.3738,4.8515),v37(6.6201,6.3744),v38(5.6046,7.3148),v39(7.0218,5.3792),v40(7.7202,6.3970),v41(7.5843,7.8262),v42(7.1090,6.3055),v43(6.6798,6.9144),v44(8.1442,6.6353),v45(7.1305,6.5935),v46(5.9730,7.8501),v47(7.5725,8.4370),v48(6.7083,7.2877),v49(7.6538,6.7477),v50(7.2707,7.4824),v51(6.8732,7.6798),v52(8.2661,7.3252),v53(6.4238,7.4801),v54(6.0270,6.3148)。
(5)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為54個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖3所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,7):0.2823,e(1,17):0.3653,e(2,9):0.4356,e(2,10):0.3597,e(3,8):0.3885,e(4,12):0.4096,e(4,18):0.2534,e(5,11):0.7831,e(6,11):0.2461,e(6,16):0.6772,e(7,9):0.2790,e(7,18):0.4983,e(8,16):0.4067,e(10,13):0.2730,e(12,16):0.4547,e(13,29):2.0969,e(14,15):0.9534,e(14,17):0.3285,e(19,24):1.2690,e(19,28):0.3994,e(20,28):0.6812,e(20,34):0.4860,e(21,27):0.4750,e(21,31):0.4701,e(21,35):0.3290,e(22,23):0.3164,e(22,27):0.3365,e(23,26):0.2963,e(24,39):1.8594,e(25,28):0.5811,e(25,32):0.5191,e(27,33):0.3893,e(27,34):0.4496,e(29,30):0.6138,e(30,35):0.5506,e(30,36):0.7947,e(37,42):0.4937,e(37,43):0.5433,e(37,54):0.5961,e(38,46):0.6498,e(39,42):0.9304,e(40,44):0.4863,e(40,49):0.3569,e(41,47):0.6110,e(41,50):0.4653,e(42,45):0.2888,e(43,48):0.3744,e(44,52):0.7006,e(45,49):0.5455,e(46,53):0.5832,e(48,51):0.4254,e(48,53):0.3435,e(50,51):0.4438。
(6)、計(jì)算最小生成樹中各節(jié)點(diǎn)的優(yōu)先權(quán)值:
計(jì)算54個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,并按節(jié)點(diǎn)優(yōu)先權(quán)值按從大到小的順序進(jìn)行排序,得到以下結(jié)果:
p6=2.5713,p11=2.5713,p4=2.5011,p18=2.5011,p7=2.4171,p42=2.3441,p10=2.3311,p13=2.3311,p9=2.2838,p1=2.2587,p45=2.2109,p27=2.1829,p23=2.1583,p21=2.0903,p22=2.0296,p26=2.0250,p48=2.0133,p14=1.9598,p17=1.9598,p35=1.9570,p53=1.8800,p40=1.8144,p49=1.8144,p2=1.8013,p28=1.7688,p16=1.7419,p43=1.7359,p8=1.6777,p19=1.6355,p12=1.5981,p3=1.5444,p51=1.5437,p33=1.5412,p50=1.4852,p37=1.4819,p34=1.4678,p41=1.4228,p20=1.3679,p44=1.3671,p30=1.3563,p25=1.2891,p31=1.2763,p46=1.1621,p32=1.1558,p29=1.1108,p54=1.0065,p47=0.9820,p38=0.9234,p52=0.8564,p39=0.7782,p5=0.7662,p36=0.7550,p15=0.6293,p24=0.6061。
(7)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖4所示,淺灰色實(shí)心圓為對應(yīng)圖3中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第2次遍歷最小生成樹中54個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由33個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v33},其在二維空間下的坐標(biāo)為:
v1(0.6297,1.6244),v2(1.5421,1.2843),v3(1.9584,0.6588),v4(0.9182,0.9352),v5(-0.0228,-0.1700),v6(0.7508,-0.0342),v7(1.0138,1.4821),v8(1.6670,1.7253),v9(1.2850,0.5580),vi0(0.2318,1.6263),v11(-0.7778,1.6530),v12(1.5779,0.2244),v13(4.4413,4.3748),v14(3.2050,4.3746),v15(4.2668,4.9586),v16(6.1221,3.7520),v17(4.0861,3.3750),v18(3.8449,4.6091),v19(4.8611,3.5912),v20(2.7160,3.8111),v21(3.1731,4.9450),v22(3.6063,4.1065),v23(2.3738,4.8515),v24(5.7888,7.5824),v25(7.0218,5.3792),v26(7.6870,6.5724),v27(7.1197,6.4495),v28(6.6798,6.9144),v29(7.5784,8.1316),v30(6.5661,7.3839),v31(7.0719,7.5811),v32(8.2051,6.9803),v33(6.3235,6.3446)。
(8)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為33個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖5所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,7):0.4097,e(1,10):0.3979,e(2,7):0.5641,e(2,8):0.4583,e(3,12):0.5775,e(4,7):0.5552,e(4,9):0.5263,e(5,6):0.7854,e(6,9):0.7976,e(8,20):2.3347,e(9,12):0.4438,e(10,11):1.0100,e(13,15):0.6094,e(14,20):0.7461,e(14,21):0.5713,e(14,22):0.4826,e(15,18):0.5478,e(16,19):1.2712,e(16,25):1.8594,e(17,19):0.8046,e(17,22):0.8749,e(18,22):0.5564,e(21,23):0.8047,e(24,30):0.8022,e(25,27):1.0748,e(26,27):0.5804,e(26,32):0.6594,e(27,28):0.6400,e(28,30):0.4831,e(28,33):0.6720,e(29,31):0.7480,e(30,31):0.5430。
(9)、計(jì)算最小生成樹中33個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p7=1.8643,p9=1.7518,p1=1.7078,p10=1.7078,p14=1.6431,p22=1.6431,p28=1.6418,p30=1.6418,p12=1.5519,p2=1.5091,p8=1.5091,p27=1.4336,p4=1.3399,p31=1.3049,p15=1.2952,p18=1.2952,p21=1.2501,p26=1.2337,p3=1.0390,p20=1.0041,p13=0.9846,p6=0.9638,p17=0.9456,p19=0.9456,p32=0.9099,p33=0.8929,p29=0.8021,p5=0.7639,p25=0.7581,p24=0.7479,p23=0.7456,p16=0.6719,p11=0.5941。
(10)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)v,,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖6所示,淺灰色實(shí)心圓為對應(yīng)圖5中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第3次遍歷最小生成樹中33個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由21個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v21},其在二維空間下的坐標(biāo)為:
v1(1.6046,1.5048),v2(1.9584,0.6588),v3(0.9182,0.9353),v4(0.3640,-0.1021),v5(0.8217,1.5533),v6(1.4314,0.3912),v7(-0.2730,1.6396),v8(4.4413,4.3748),v9(3.4056,4.2405),v10(4.0558,4.7839),v11(6.1221,3.7520),v12(4.4736,3.4831),v13(2.7160,3.8111),v14(2.7735,4.8982),v15(5.7888,7.5824),v16(7.0218,5.3792),v17(7.4034,6.5109),v18(6.6229,7.1491),v19(7.3252,7.8563),v20(8.2051,6.9803),v21(6.3235,6.3446)。
(11)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為21個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖7所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,5):0.7843,e(1,13):2.5601,e(2,6):0.5910,e(3,5):0.6255,e(3,6):0.7480,e(4,6):1.1759,e(5,7):1.0981,e(8,10):0.5621,e(8,12):0.8923,e(9,10):0.8474,e(9,13):0.8124,e(9,14):0.9122,e(11,12):1.6703,e(11,16):1.8594,e(15,18):0.9399,e(16,21):1.1915,e(17,18):1.0082,e(17,20):0.9290,e(18,19):0.9967,e(18,21):0.8585。
(12)、計(jì)算最小生成樹中21個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p6=1.2818,p5=1.2258,p8=1.2007,p10=1.2007,p18=1.0988,p3=1.0925,p2=1.0152,p9=1.0051,p1=0.8983,p13=0.8718,p21=0.8322,p12=0.8057,p17=0.7791,p14=0.6578,p20=0.6459,p15=0.6384,p16=0.6369,p19=0.6020,p7=0.5464,p4=0.5102,p11=0.4925。
(13)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖8所示,淺灰色實(shí)心圓為對應(yīng)圖7中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第4次遍歷最小生成樹中21個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由14個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v14},其在二維空間下的坐標(biāo)為:
v1(1.6046,1.5048),v2(0.3640,-0.1021),v3(0.8699,1.2443),v4(1.6949,0.5250),v5(-0.2730,1.6396),v6(4.2486,4.5793),v7(3.0608,4.0258),v8(5.2978,3.6175),
v9(2.7735,4.8982),v10(5.7888,7.5824),v11(7.0218,5.3792),v12(7.8042,6.7456),v13(6.4732,6.7469),v14(7.3252,7.8563)。
(14)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為14個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖9所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,3):0.7795,e(1,4):0.9840,e(1,7):2.9113,e(2,3):1.4383,e(3,5):1.2094,e(6,7):1.3104,e(6,8):1.4234,e(7,9);0.9185,e(8,11):2.4648,e(10,13):1.0801,e(11,13):1.4736,e(12,13):1.3310,e(12,14):1.2096。
(15)、計(jì)算最小生成樹中14個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p1=1.1695,p3=1.1695,p7=1.0530,p13=0.9553,p12=0.6959,p6=0.6578,p9=0.6532,p8=0.6214,p4=0.6098,p11=0.6071,p10=0.5555,p5=0.4961,p14=0.4960,p2=0.4172。
(16)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖10所示,淺灰色實(shí)心圓為對應(yīng)圖9中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第5次遍歷最小生成樹中14個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由9個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v9},其在二維空間下的坐標(biāo)為:
v1(1.2373,1.3746),v2(0.3640,-0.1021),v3(1.6949,0.5250),v4(-0.2730,1.6396),v5(2.9171,4.4620),v6(4.7732,4.0984),v7(7.0218,5.3792),v8(7.5647,7.3010),v9(6.1310,7.1646)。
(17)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為9個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖11所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,3):0.9650,e(1,4):1.5333,e(1,5):3.5149,e(2,3):1.4713,e(5,6):1.8914,e(6,7):2.5878,e(7,9):1.9954,e(8,9):1.4402。
(18)、計(jì)算最小生成樹中9個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p1=1.0216,p3=0.8217,p9=0.6165,p5=0.5171,p6=0.5171,p7=0.5006,p8=0.4166,p2=0.4078,p4=0.3913。
(19)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖12所示,淺灰色實(shí)心圓為對應(yīng)圖11中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第6次遍歷最小生成樹中9個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由6個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v6},其在二維空間下的坐標(biāo)為:
v1(1.4661,0.9498),v2(0.3640,-0.1021),v3(-0.2730,1.6396),v4(3.8452,4.2802),v5(7.0218,5.3792),v6(6.8479,7.2328)。
(20)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為6個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖13所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,2):1.5235,e(1,4):4.0929,e(2,3):1.8546,e(4,5):3.3613,e(5,6):1.8618。
(21)計(jì)算最小生成樹中6個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p1=0.7934,p2=0.7934,p5=0.7219,p4=0.5781,p3=0.3235,p6=0.3223。
(22)、根據(jù)各節(jié)點(diǎn)的優(yōu)先權(quán)值從大到小的順序依次遍歷最小生成樹的節(jié)點(diǎn)vi,并進(jìn)行節(jié)點(diǎn)間的合并,然后計(jì)算合并后節(jié)點(diǎn)的坐標(biāo)。如圖14所示,淺灰色實(shí)心圓為對應(yīng)圖13中參與合并的節(jié)點(diǎn),淺灰色空心圓為合并節(jié)點(diǎn)后生成的節(jié)點(diǎn)。第7次遍歷最小生成樹中6個(gè)節(jié)點(diǎn)并進(jìn)行合并,共生成由4個(gè)節(jié)點(diǎn)構(gòu)成的新的節(jié)點(diǎn)集合v={v1,v2,...,v4},其在二維空間下的坐標(biāo)為:
v1(0.9150,0.4238),v2(-0.2730,1.6396),v3(3.8452,4.2802),v4(6.9349,6.3060)。
(23)、當(dāng)前總的節(jié)點(diǎn)數(shù)目為4個(gè),大于類別數(shù)3,則對當(dāng)前的節(jié)點(diǎn)生成最小生成樹t,如圖15所示,黑色圓點(diǎn)為節(jié)點(diǎn),黑色線條為最小生成樹的邊,數(shù)字編號為節(jié)點(diǎn)對應(yīng)編號。
下面列出最小生成樹t中邊的信息,e(i,j)表示最小生成樹t中由節(jié)點(diǎn)vi與vj構(gòu)成邊,e(i,j)后面的“:”表示這條邊的長度:
e(1,2):1.6999,e(1,3):4.8433,e(3,4):3.6946。
(24)計(jì)算最小生成樹中4個(gè)節(jié)點(diǎn)的優(yōu)先權(quán)值pi,將優(yōu)先權(quán)值按降序排序得到以下結(jié)果:
p1=0.7526,p3=0.5620,p2=0.3530,p4=0.1624。
(25)、由上述節(jié)點(diǎn)優(yōu)先權(quán)信息可知,節(jié)點(diǎn)1的優(yōu)先權(quán)值最大。又因?yàn)閑(1,2)的長度為1.6999,e(1,3)的長度為4.8433。所以將節(jié)點(diǎn)1、2合并。至此節(jié)點(diǎn)數(shù)目為3,等于類別數(shù)3,聚類結(jié)束。對于如圖1所示的包含90個(gè)數(shù)據(jù)點(diǎn)的人工生成數(shù)據(jù)集,其聚類結(jié)果為{x1,x2,...,x30}為第一類,{x31,x32,...,x60}為第二類,{x61,x62,...,x90}為第三類。
為了驗(yàn)證本發(fā)明對k-means算法的優(yōu)越性,我們產(chǎn)生了具有800個(gè)數(shù)據(jù)點(diǎn),每個(gè)數(shù)據(jù)點(diǎn)包含兩個(gè)屬性的人工合成數(shù)據(jù)集syn1,該數(shù)據(jù)集的類別數(shù)k=3,對應(yīng)在二維空間下的數(shù)據(jù)點(diǎn)集如圖18所示。我們將本發(fā)明方法與k-means方法進(jìn)行對比,在k-means方法中,利用隨機(jī)選取方法選擇初始聚類中心。圖19為利用k-means方法聚類結(jié)果,圖中“▲”表示通過隨機(jī)選取法選擇的3個(gè)初始聚類中心。圖20為利用本發(fā)明方法的聚類結(jié)果。圖19和圖20中利用“·”,“?!迸c“*”表示聚類得到的三類數(shù)據(jù)。從圖19與圖20,可以看出,利用本發(fā)明方法準(zhǔn)確地得到了聚類結(jié)果,而利用k-means方法,由于隨機(jī)選取的3個(gè)初始聚類中心中,有2個(gè)初始聚類中心位于同一類別,并且在聚類中僅考慮距離因素,忽略了節(jié)點(diǎn)的密度,從而導(dǎo)致k-means方法陷入局部最優(yōu)解,最終產(chǎn)生錯(cuò)誤聚類結(jié)果。本發(fā)明方法在計(jì)算節(jié)點(diǎn)優(yōu)先權(quán)值時(shí)綜合考慮節(jié)點(diǎn)間距離與節(jié)點(diǎn)的密度這兩個(gè)因素,從而獲得正確的聚類結(jié)果。
為進(jìn)一步驗(yàn)證本發(fā)明相對于層次聚類算法的優(yōu)越性,我們產(chǎn)生了具有800個(gè)數(shù)據(jù)點(diǎn),每個(gè)數(shù)據(jù)點(diǎn)包含兩個(gè)屬性的人工合成數(shù)據(jù)集syn2,該數(shù)據(jù)集的類別數(shù)k=3,對應(yīng)在二維空間下的數(shù)據(jù)點(diǎn)集如圖21所示。我們將本發(fā)明方法與層次聚類法進(jìn)行對比。圖22為利用層次聚類法得到的聚類結(jié)果,圖23為利用本發(fā)明方法得到的聚類結(jié)果。圖22和圖23中利用“·”,“?!迸c“*”表示聚類得到的三類數(shù)據(jù)。由于層次聚類算法的每次迭代中,僅將距離最近的兩個(gè)點(diǎn)合并為新的代表點(diǎn),也就是說,僅考慮距離因素,而忽略密度因素對聚類的影響,從而導(dǎo)致如圖22所示的錯(cuò)誤聚類結(jié)果。在本發(fā)明方法中定義了最小生成樹度數(shù)與最短距離相結(jié)合的優(yōu)先權(quán)值,將這兩者加以結(jié)合可以準(zhǔn)確反映該點(diǎn)的密度信息,所以,如圖23所示,本發(fā)明方法產(chǎn)生了比層次聚類算法更優(yōu)的聚類結(jié)果。
為進(jìn)一步驗(yàn)證本發(fā)明方法的有效性,下面給出其在實(shí)際數(shù)據(jù)集上的聚類效果:
我們從uci數(shù)據(jù)集中挑選了4個(gè)數(shù)據(jù)集iris、soybean-small、wine、segment,表1列出了這4個(gè)數(shù)據(jù)集的相關(guān)信息:
表14個(gè)數(shù)據(jù)集的信息
為了對聚類效果作出評價(jià),我們運(yùn)用四種聚類有效性評價(jià)指標(biāo):accuracy(ac)、adjustedrandindex(ari)、randindex(ri)、mirkinmetricindex(mi)對本發(fā)明方法、層次聚類、k-means算法進(jìn)行比較,在k-means算法中,其初始聚類算法選用當(dāng)前流行的k-means++方法來選取初始聚類中心。在上述四種評價(jià)指標(biāo)中,除了mi之外的所有指標(biāo),其評價(jià)指標(biāo)越高則說明聚類效果越好,而對于mi來說,評價(jià)指標(biāo)越低則說明聚類效果越好。當(dāng)利用k-means++方法選取初始聚類中心時(shí),每次運(yùn)行k-means算法后會得到不同聚類結(jié)果,因此,我們?nèi)?000次結(jié)果的均值作為最終的聚類結(jié)果。
表24個(gè)數(shù)據(jù)集在三種不同聚類方法下的評價(jià)指標(biāo)
從表2可以看出,在iris、soybean-small、wine、segment這4個(gè)數(shù)據(jù)集上,本發(fā)明提出方法在ac,ari,ri和mi這4個(gè)評價(jià)指標(biāo)上,其聚類效果均明顯優(yōu)于層次聚類和k-means++聚類算法。
以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無需創(chuàng)造性勞動就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本技術(shù)領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。