本發(fā)明涉及機器學(xué)習(xí)的數(shù)據(jù)聚類,尤其是涉及K平均聚類的增強方法。
背景技術(shù):
:聚類問題源自于一系列的應(yīng)用,如文本/網(wǎng)頁聚類、模式識別、圖像鏈接、圖像分割、通過向量量化進行的數(shù)據(jù)壓縮以及最近鄰檢索。最近30年,人們提出了各種各樣的聚類算法。其中K平均(k-means)聚類以其簡單而高效,同時適度穩(wěn)定的性能而被廣泛采用。它被認(rèn)為是數(shù)據(jù)挖掘領(lǐng)域十大算法之一。與此同時,人們一直為進一步提高K平均算法的性能而不懈努力。盡管K平均聚類比較流行,依然存在一些問題。首先,在最壞的情形下,K平均聚類的時間復(fù)雜度可能是指數(shù)級的。特別是在面對海量數(shù)據(jù)的時候,傳統(tǒng)K平均聚類的處理速度仍然顯得遠遠不足。其次,K平均聚類通常只能收斂于局部最優(yōu)解。通常K平均聚類的步驟如下:1.初始化k個聚類中心;2.尋找離每個數(shù)據(jù)最近的聚類中心,將數(shù)據(jù)賦到中心所代表的類;3.根據(jù)得到的類劃分,重新計算k個聚類中心;4.重復(fù)步驟2和3直到聚類中心不再改變。這是勞埃德(Lloyd)循環(huán)過程,這個過程本質(zhì)上是使得聚類中心到對應(yīng)的每個數(shù)據(jù)的距離的平方和最小,即如下公式:其中,q(xi)得到的是xi所屬的聚類,Cr表示第r個聚類的中心。使這個目標(biāo)函數(shù)取得最小值是NP難題。一般情況下,K平均迭代過程只會收斂于局部最優(yōu)解。K平均聚類被廣泛采用主要是因為K平均聚類具有線性時間復(fù)雜度。換句話說,假設(shè)K平均聚類在t次循環(huán)收斂,數(shù)據(jù)維度為d,則K平均的聚類時間復(fù)雜度是O(t·k·n·d),這比其他如具有噪聲的基于密度的聚類算法和均值漂移聚類算法要快很多。為了提高K平均聚類的質(zhì)量,最近提出的最具代表性的一種變種的K平均算法,稱為K平均++(k-means++)。其主要思想是通過提高初始化的質(zhì)量來提高聚類質(zhì)量,然而,這需要花費更多的時間來做初始化。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于針對現(xiàn)有的K平均聚類存在的上述問題,提供一種K平均聚類的增強方法。本發(fā)明包括以下步驟:1)給定n個待聚類數(shù)據(jù),目標(biāo)聚類數(shù)為k個;2)初始化k個聚類中心,具體方法如下:(1)完全隨機策略:給定待聚類的n條數(shù)據(jù),每條數(shù)據(jù)分配一個隨機的從1到k的類標(biāo)簽。(2)隨機中心:采用傳統(tǒng)K平均初始化方式,先隨機從數(shù)據(jù)中選取k個作為初始的聚類中心,為每個數(shù)據(jù)在k個中心中尋找最近的聚類中心,該中心所代表的類的標(biāo)簽將賦予該數(shù)據(jù);3)將一個數(shù)據(jù)的類標(biāo)簽換成另一個類標(biāo)簽,使得預(yù)先定義的優(yōu)化函數(shù)值增大,更換一個數(shù)據(jù)的類標(biāo)簽的方法如下兩種:(1)快速策略:隨機選取一個數(shù)據(jù),嘗試改變當(dāng)前數(shù)據(jù)所屬的類到另一個類,若能使目標(biāo)函數(shù)的值變大,則更新這個數(shù)據(jù)所屬的類到另一個類,重復(fù)此嘗試,直到n條數(shù)據(jù)都被嘗試更改類標(biāo)簽一次且僅一次;(2)最優(yōu)策略:隨機選取一個數(shù)據(jù),嘗試改變當(dāng)前數(shù)據(jù)的類標(biāo)簽為另一個類,如此嘗試k-1次,找到能使目標(biāo)函數(shù)獲得最大增益且增益為正,如此,更新這個數(shù)據(jù)所屬的類到獲得最大增益的那個類的類標(biāo)簽;重復(fù)此嘗試,直到n條數(shù)據(jù)都被逐一嘗試更改類標(biāo)簽一次且僅一次;在兩種更新策略中,使用同一目標(biāo)函數(shù):其中,Sr表示屬于第r類的數(shù)據(jù)集合,xi表示第i個數(shù)據(jù)對應(yīng)的向量表示;Dr表示屬于第r個類的所有數(shù)據(jù)對應(yīng)向量的和;nr表示屬于第r個類的向量的數(shù)目。4)重復(fù)步驟3)直到公式(1)中的目標(biāo)函數(shù)無法再獲得更高的函數(shù)值,或達到指定的迭代次數(shù)。本發(fā)明提出了一種適合于整個歐幾里德空間的目標(biāo)優(yōu)化函數(shù)來,該目標(biāo)函數(shù)由傳統(tǒng)K平均方法的目標(biāo)函數(shù)直接推到得到。本發(fā)明所提出的聚類策略直接由目標(biāo)函數(shù)驅(qū)動。不同于傳統(tǒng)的K平均聚類,初始化聚類劃分可以完全隨機,拋棄了傳統(tǒng)K平均聚類需要將數(shù)據(jù)賦予其最近中心的初始化過程。在聚類過程中,在目標(biāo)函數(shù)的指引下,每條數(shù)據(jù)將被隨機逐一選取,進行優(yōu)化。方法嘗試若將一條數(shù)據(jù)從當(dāng)前類移動到另一個類,能否使目標(biāo)函數(shù)數(shù)值增大,若可以增大,就將一個數(shù)據(jù)從一個類移動到另一個類。這些改進具有以下優(yōu)勢:1.拋棄傳統(tǒng)初始化策略使得聚類更快,而且提高了聚類質(zhì)量;2.優(yōu)化函數(shù)直接驅(qū)動聚類得到了比傳統(tǒng)聚類小很多的誤差;3.聚類過程中,可以不用每次為每個數(shù)據(jù)賦予最佳的類。這一改變使得聚類速度更快,而且收斂到更好的局部最優(yōu)點;4.將本發(fā)明應(yīng)用到自頂向下的二分層次聚類上,可以極大的降低聚類復(fù)雜度。即聚類復(fù)雜度由O(t·k·n·d)降至O(t·log(k)·n·d)。附圖說明圖1為K平均聚類的增強方法與當(dāng)前主流方法在SIFT1M上的結(jié)果。圖2為K平均聚類的增強方法與當(dāng)前主流方法在子集SIFT100K上的顯著性測試結(jié)果。圖3為K平均聚類的增強方法與當(dāng)前主流方法在YFCC100M數(shù)據(jù)集上的運行時間對比。具體實施方式本發(fā)明實施例包括以下步驟:1)給定n個待聚類數(shù)據(jù),目標(biāo)聚類數(shù)為k個;2)初始化k個聚類中心,具體方法如下:(1)完全隨機策略:給定待聚類的n條數(shù)據(jù),每條數(shù)據(jù)分配一個隨機的從1到k的類標(biāo)簽。(2)隨機中心:采用傳統(tǒng)K平均初始化方式,先隨機從數(shù)據(jù)中選取k個作為初始的聚類中心,為每個數(shù)據(jù)在k個中心中尋找最近的聚類中心,該中心所代表的類的標(biāo)簽將賦予該數(shù)據(jù);3)將一個數(shù)據(jù)的類標(biāo)簽換成另一個類標(biāo)簽,使得預(yù)先定義的優(yōu)化函數(shù)值增大,更換一個數(shù)據(jù)的類標(biāo)簽的方法如下兩種:(1)快速策略:隨機選取一個數(shù)據(jù),嘗試改變當(dāng)前數(shù)據(jù)所屬的類到另一個類,若能使目標(biāo)函數(shù)的值變大,則更新這個數(shù)據(jù)所屬的類到另一個類,重復(fù)此嘗試,直到n條數(shù)據(jù)都被嘗試更改類標(biāo)簽一次且僅一次;(2)最優(yōu)策略:隨機選取一個數(shù)據(jù),嘗試改變當(dāng)前數(shù)據(jù)的類標(biāo)簽為另一個類,如此嘗試k-1次,找到能使目標(biāo)函數(shù)獲得最大增益且增益為正,如此,更新這個數(shù)據(jù)所屬的類到獲得最大增益的那個類的類標(biāo)簽;重復(fù)此嘗試,直到n條數(shù)據(jù)都被逐一嘗試更改類標(biāo)簽一次且僅一次;在兩種更新策略中,使用同一目標(biāo)函數(shù):其中,Sr表示屬于第r類的數(shù)據(jù)集合,xi表示第i個數(shù)據(jù)對應(yīng)的向量表示;Dr表示屬于第r個類的所有數(shù)據(jù)對應(yīng)向量的和;nr表示屬于第r個類的向量的數(shù)目。4)重復(fù)步驟3)直到公式(1)中的目標(biāo)函數(shù)無法再獲得更高的函數(shù)值,或達到指定的迭代次數(shù)。參見圖1和2,測試采用了國際通用的SIFT1M(http://corpus-texmex.irisa.fr)數(shù)據(jù)集合。聚類評價標(biāo)準(zhǔn)采用聚類結(jié)果的平均偏離度。具體定義為,各個數(shù)據(jù)到對應(yīng)聚類中心的歐幾里德距離和的均值,也可認(rèn)為是數(shù)據(jù)偏離聚類中心的方差,即:其中q(xi)得到的是xi所屬的聚類,Cr表示第r個聚類的中心,d(xi,Cr)表示xi與Cr的歐幾里德距離,n表示數(shù)據(jù)總數(shù)。由于K平均聚類結(jié)果具有波動性,所得結(jié)果是10次運行結(jié)果的平均值。本發(fā)明的方法在不同配置下的結(jié)果標(biāo)記為:本發(fā)明的方法1,本發(fā)明的方法2。其中,本發(fā)明的方法1采用了初始化策略采用了完全隨機策略,聚類過程數(shù)據(jù)的移動策略采用了最優(yōu)策略;本發(fā)明的方法2初始化策略采用了傳統(tǒng)K平均的初始化策略,聚類策略采用了快速策略。從圖1可以看到,對于本發(fā)明的方法1和本發(fā)明的方法2,收斂速率非???,當(dāng)?shù)螖?shù)達到20此時,算法基本接近收斂,此時得到的平均偏離度遠遠低于其他方法,其中本發(fā)明的方法2的效果最好。圖2進一步檢驗本發(fā)明方法的取得結(jié)果的顯著性,顯示了3個方法的128次運行結(jié)果的最大值、最小值和均值??梢钥闯?,本發(fā)明的方法1取得的平均偏離度明顯顯著于算法的波動。參見圖3,測試采用了YFCC(http://corpus-texmex.irisa.fr)的圖像庫中的1000萬幅圖,每幅圖像被表示為512維向量。聚類方法被用到這些被表示為向量的圖像上。測試時,聚類數(shù)目由1024變化到8192。從圖3可以看到,本發(fā)明的方法1和本發(fā)明的方法2在時間上均比其他方法快。方法1(k平均聚類)對應(yīng)的方法為S.P.Lloyd等人提出的方法(LeastsquaresquantizationinPCM,IEEETrans.InformationTheory28(1982)129-137.)方法2(k平均++聚類)對應(yīng)的方法為D.Arthur等人提出的方法(S.Vassilvitskii,K-means++:Theadvantagesofcarefulseeding,in:ProceedingsoftheEighteenthAnnualACM-SIAMSymposiumonDiscreteAlgorithms,2007,pp.1027-103.)K平均聚類增強方法與主流K平均變種文本聚類性能對比參見表1,測試采用了國際通用的路透社文本集合(http://yfcc100m.appsport.com),15個文本數(shù)據(jù)集上聚類。評價標(biāo)準(zhǔn)采用熵值標(biāo)準(zhǔn)。具體是測量各個聚類與文本標(biāo)準(zhǔn)分類之間的吻合度,吻合度越高熵值越小。由于K平均聚類結(jié)果具有波動性,所得結(jié)果是10次運行結(jié)果的平均值。其中,k是聚類數(shù)目,c是文本數(shù)據(jù)的真實分類數(shù)。nr表示聚類結(jié)果中一個類的大小。表示第r個聚類與第i個分類的交集大小,n表示數(shù)據(jù)總數(shù)。本發(fā)明的方法不同配置下的結(jié)果標(biāo)記為:本發(fā)明的方法1,本發(fā)明的方法2。其中,本發(fā)明的方法1采用了初始化策略采用了完全隨機策略,聚類過程數(shù)據(jù)的移動策略采用了最優(yōu)策略;本發(fā)明的方法2初始化策略采用了傳統(tǒng)K平均的初始化策略,聚類策略采用了快速策略。表1聚類結(jié)果熵值k=5k=10k=15k=20方法10.5390.4430.4020.387方法20.5500.4410.4030.389本發(fā)明的方法10.5520.4420.3880.368本發(fā)明的方法20.5060.4190.3800.353從表1可以看出,本發(fā)明的方法1在文本聚類上的結(jié)果接近或者好于目前流行的K平均變種方法。本發(fā)明的方法2明顯好于目前流行的K平均變種方法。方法1(k平均聚類)對應(yīng)的方法為S.P.Lloyd等人提出的方法(LeastsquaresquantizationinPCM,IEEETrans.InformationTheory28(1982)129-137.)方法2(k平均++聚類)對應(yīng)的方法為D.Arthur等人提出的方法(S.Vassilvitskii,K-means++:Theadvantagesofcarefulseeding,in:ProceedingsoftheEighteenthAnnualACM-SIAMSymposiumonDiscreteAlgorithms,2007,pp.1027-103.)與現(xiàn)有的K均值聚類方法相比,本發(fā)明不需要初始化聚類中心。節(jié)省了初始化時,尋找數(shù)據(jù)到最近中心的計算開銷。方法使得聚類初始化時間耗費極小,同時,在采用本發(fā)明步驟3)中,最優(yōu)策略更新類標(biāo)簽時,取得比已有方法更好的聚類結(jié)果。在步驟3)中,更新一個數(shù)據(jù)的類標(biāo)簽可以使用快速策略。無需尋找使目標(biāo)函數(shù)增長最大的類,而只需要尋找到比當(dāng)前目標(biāo)函數(shù)數(shù)值大的聚類中心即可,使得對每一個數(shù)據(jù)嘗試更新類標(biāo)簽的操作加速,同時避免了陷入局部最優(yōu)。實驗表明,花費的時間與傳統(tǒng)方式相當(dāng)?shù)那闆r下本發(fā)明可以取得更優(yōu)的結(jié)果。目標(biāo)函數(shù)適用于整個歐幾里德空間。本發(fā)明擴展了現(xiàn)有方法只能適用于歐式空間歸一化數(shù)據(jù)的目標(biāo)函數(shù)。當(dāng)前第1頁1 2 3