一、所屬技術(shù)領(lǐng)域:
本發(fā)明提供一種改進的全局最優(yōu)化k-中心點聚類方法,k-中心點是指從數(shù)據(jù)對象中選擇k個對象為類的代表中心;本發(fā)明一種最優(yōu)化的k-中心點聚類方法,解決了一般的k-中心點聚類方法具有初始解敏感性以及不能保證獲得最優(yōu)聚類結(jié)果的缺點;本方法屬于數(shù)據(jù)統(tǒng)計與分析領(lǐng)域,能幫助數(shù)據(jù)分析人員在數(shù)據(jù)模式識別中獲得更好的聚類效果。
二、
背景技術(shù):
:
聚類(clustering)是指將若干數(shù)據(jù)對象的按照同類間相似度最大且異類間相似性最小的原則劃分若干類的過程。在數(shù)據(jù)分析與數(shù)據(jù)挖掘領(lǐng)域,聚類是一種重要的數(shù)據(jù)分析方法,是挖掘隱藏在大量數(shù)據(jù)中的數(shù)據(jù)分布模式的主要手段之一,具有廣泛用途。k-中心點聚類是要求在聚類結(jié)果必須以原數(shù)據(jù)對象為聚類中心點的一種特殊聚類分析方法,即從數(shù)據(jù)對象中選擇k個對象為類的代表中心,使類成員達到該中心點的距離之和最小化。傳統(tǒng)的k-中心聚類方法,即圍繞中心點的聚類方法(簡稱pam方法),是基于非線性整數(shù)規(guī)劃模型的方法,有兩個明顯的缺陷:(1)計算結(jié)果有可能會止于局部最優(yōu)解,使聚類結(jié)果達不到全局最優(yōu);(2)方法對初始中心點的選擇比較敏感,選擇不同的初始中心點可能導致不同的計算結(jié)果。
本發(fā)明所提出的方法是基于線性化的整數(shù)規(guī)劃方法,該方法可以直接獲得全局最的聚類結(jié)果,不會陷入局部最優(yōu)結(jié)果,且不依賴與初始中心點的選擇。本方法能夠?qū)Χ噙_1000個數(shù)據(jù)對象的中等規(guī)模k-中心聚類問題提供全局最優(yōu)的聚類結(jié)果。
三、
技術(shù)實現(xiàn)要素:
:
3.1發(fā)明目的
本發(fā)明的目的在于改進現(xiàn)有k-中心點聚類方法(即pam方法)的缺點,提供一種全局化最優(yōu)化的聚類方法,為大數(shù)據(jù)分析和數(shù)據(jù)模式識別等相關(guān)工作提供具有更好聚類效果的聚類方法。
3.2技術(shù)方案
首先,本發(fā)明要解決的問題描述如下:假定有n個對象和m個屬性,這n個對象需要按照其屬性值的相似程度劃分為k個聚類,使同類對象之間盡可能地相似。其中任意兩個對象i和j,以dij表示它們之間的區(qū)分度。區(qū)分度越大,相似度越小。這里的dij以兩點之間的距離來表示且為已知。對于每一個聚類,其中的某一個成員對象將被選擇為該類的中心點,代表該類的整體性質(zhì)。屬于同一聚類的所有物體與該類的類中心之間的距離之總和被定義為簇內(nèi)距離,反映了同族成員之間差異。k-中心點聚類的目標即為使各組組內(nèi)距離之和最小。
為最優(yōu)地解決上述問題,本發(fā)明方法的技術(shù)實現(xiàn)方案由四個步驟組成。各步驟中用到的數(shù)學符號預先介紹如下:
本發(fā)明一種改進的全局最優(yōu)化k-中心點聚類方法,其步驟如下:
步驟一:數(shù)據(jù)預處理準備
1.1對需要被聚類分組的n個物體進行編號,編號值從1到n;以vir表示對象i在屬性r上的值;
1.2按下面方法計算每兩個對象i和j之間的距離dij,以獲得距離矩陣d={dij}:
1)計算對象i和j在屬性r上的標準化距離,以dijr表示;
2)當屬性r為數(shù)字型屬性時,令
3)當屬性k為分類型屬性時,令
4)令
步驟二:建立線性數(shù)學規(guī)劃模型
依據(jù)聚類問題的特點并為了避免傳統(tǒng)聚類方法對于初始解過于敏感的缺點,本發(fā)明建立了線性數(shù)學規(guī)劃模型,該線性數(shù)學規(guī)劃模型由目標函數(shù)與約束條件構(gòu)成,如下:
目標函數(shù):
約束條件:
(1)
(2)
(3)
其中,上列線性數(shù)學規(guī)劃模型中的符號即目標函數(shù)與約束條件中的符號,其含義如下所述:
n對象的集合
n對象集n所包含的對象的個數(shù),n=card(n)
i,j對象的標號i,j∈n
dij對象i和對象j之間的距離,dij∈d
m屬性的集合
m屬性集m所包含的屬性的個數(shù),m=card(m)
r屬性的標號,r∈m
k聚類的個數(shù)
ωij0/1決策變量,當i所在類中心為j時取1;否則取0.
ω變量ωij組成的集合,ωij∈ω
上述約束條件中,約束條件(1)表示每一個對象i都必須且僅能分屬于某一個聚類j,滿足有ωij=1;約束條件(2)表示必須有m個聚類;約束條件(3)表示僅當對象j為聚類中心時,ωij才允許取1,否則只能取0;
上述數(shù)學規(guī)劃模型是線性的,具備求解可行性;
步驟三:線性數(shù)學規(guī)劃模型求解
其中線性數(shù)學規(guī)劃模型指的是上文中所述,為包含目標函數(shù)與約束條件的線性數(shù)學規(guī)劃模型;對該線性數(shù)學規(guī)劃模型最優(yōu)化求解,可考慮多種已有的求解方式:(1)直接運用單純形法、分支定界方法、割平面法等對模型進行最優(yōu)求解;(2)利用求解軟件,如lingo,ampl等對模型進行最優(yōu)化求解;
具體求解方法如下:(1)若直接運用單純形法、分支定界方法、割平面法等對模型進行最優(yōu)求解,則可以直接手工演算求解,不再贅述;(2)若利用求解軟件,如lingo,ampl等對模型進行最優(yōu)化求解,則可以建立用于求解的執(zhí)行腳本文件(*.dat),并將已知數(shù)據(jù)與線性數(shù)學規(guī)劃模型相應的數(shù)據(jù)文件(*.dat)與模型文件(*.mod),一并帶入軟件進行求解,得到求解結(jié)果;(文件詳情見具體實施方式內(nèi)容)
步驟四:求解結(jié)果輸出
求解軟件完成對線性數(shù)學規(guī)劃模型求解計算后,可獲得求解結(jié)果ω,并對其進行解析,獲得聚類結(jié)果以及各類的中心點;方法如下:
1)對于所有i∈n判斷ωii,如果ωii=1,則表示對象i代表一個聚類且代表該類的中心點;
2)如果ωii=1,則對所有j∈n判斷ωij,如果ωij=1,則表對象j隸屬于對象i所代表的類;
根據(jù)上述方法,獲得最終的聚類分組結(jié)果以及總簇內(nèi)距離。
通過以上步驟,達到了對一組數(shù)據(jù)進行聚類分組的效果,使得同組數(shù)據(jù)的相似度較大,非同組數(shù)據(jù)的相似度較??;在聚類過程中,解決了傳統(tǒng)聚類方法必須給出初始解,并且對于初始解過于敏感的問題;此外本發(fā)明可以在不給出初始解的情況下,直接獲得最優(yōu)聚類結(jié)果,大大提高了聚類過程的便利性與準確性。
3.3優(yōu)點和功效
本發(fā)明提出的基于線性規(guī)劃方程的新的k-中心點聚類方法,該方法通過定義新的二元決策變量使得原問題轉(zhuǎn)換為線性整數(shù)規(guī)劃問題,避免了傳統(tǒng)方法容易陷入局部最優(yōu)解和易受初始解影響的問題。通過對隨機產(chǎn)生的算例的比較求解計算來看,本發(fā)明提出的方法比傳統(tǒng)方法能獲得更好的聚類效果。
四、附圖說明
圖1五組隨機點的產(chǎn)生區(qū)域劃分。
圖2算例數(shù)據(jù)對象的分布散點圖。
圖3本專利方法對算例的聚類結(jié)果的散點圖。
圖4傳統(tǒng)k-中心點聚類方法對算例的聚類結(jié)果散點圖。
圖5本發(fā)明的實施流程圖。
五、具體實施方式
本節(jié)以一個實例說明本發(fā)明方法的具體過程,并與傳統(tǒng)的k-中心點聚類方法進行比較,以展示該方法的優(yōu)越性。該實例為將二維平面上的隨機50個點按歐式距離聚類為5個類,并使簇類距離達到最小。首先在區(qū)域內(nèi)劃分出了5個形狀相同的矩形,然后在該5個區(qū)域內(nèi)分別隨機生成10個點,共50個點,如圖1所示,各點的x和y坐標值在表1中詳細列出。
表1隨機點的坐標值
下面按照技術(shù)方案所給出的四個步驟,將上述50個點(對象)聚類為5個類,并給出每一類的中心點。聚類前50個點的整體分布如圖2所示。
本發(fā)明一種改進的全局最優(yōu)化k-中心點聚類方法,該聚類方法流程如圖5所示,其具體實施步驟如下:
步驟一:數(shù)據(jù)預處理準備
對數(shù)據(jù)對象進行編號,計算距離矩陣d={dij}。這里以ampl環(huán)境為例,建立距離矩陣的數(shù)據(jù)文件syn.dat,格式如下表所示:
步驟二:建立線性數(shù)學規(guī)劃模型
目標函數(shù):
約束條件:
(1)
(2)
(3)
其中,目標函數(shù)與約束條件中的符號含義即為上文技術(shù)方案的符號表中所述。
基于上述數(shù)學規(guī)劃模型,建立ampl環(huán)境下的模型文件syn.mod
步驟三:線性數(shù)學規(guī)劃模型求解
本算例使用求解軟件ampl進行求解,建立執(zhí)行腳本文件syn.sh,如下:
步驟四:求解結(jié)果輸出
在ampl環(huán)境下執(zhí)行上述文件syn.sh、syn.mod以及syn.dat,執(zhí)行的計算系統(tǒng)為macbook,計算時間小于1秒。得到最優(yōu)的目標函數(shù)值為36.04,以及最優(yōu)的ω值。通過對ω值進行解析,獲得各聚類的劃分結(jié)果以及聚類中心點,并繪制散點,如圖3所示。
再運用傳統(tǒng)的k-中心點聚類方法對講上述算例進行計算,可得出最小組內(nèi)距離為42.27,并繪制聚類結(jié)果的散點圖,如圖4所示。通過對比可以發(fā)現(xiàn),傳統(tǒng)方法所獲得的目標值大于本方法得到的最小組內(nèi)距離(36.04),在圖4中有若干明顯的不合理聚類分布,使各聚類的離散程度差異較大。而本方法的聚類結(jié)果分布圖與初始理想聚類分布圖基本一致,結(jié)果合理。因此本方法比傳統(tǒng)的中心點聚類方法能得到更佳的聚類結(jié)果。
六、結(jié)論
通過以上步驟,達到了對一組數(shù)據(jù)進行聚類分組的效果,使得同組數(shù)據(jù)的相似度較大,非同組數(shù)據(jù)的相似度較小。在聚類過程中,解決了傳統(tǒng)聚類方法必須給出初始解,并且對于初始解過于敏感的問題。本發(fā)明可以在不給出初始解的情況下,直接獲得最優(yōu)聚類結(jié)果,大大提高了聚類過程的便利性與準確性。