專利名稱:一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法、 系統(tǒng)及裝置。
背景技術(shù):
數(shù)據(jù)挖掘又稱數(shù)據(jù)庫中的知識發(fā)現(xiàn),是指從大量的不完全的、有噪聲的、模糊的數(shù) 據(jù)中提取隱含的、未知的、非平凡的及有潛在應(yīng)用價(jià)值的信息或模式,融合了數(shù)據(jù)庫、人工 智能、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)等多個(gè)領(lǐng)域的理論和技術(shù)。數(shù)據(jù)挖掘工具能夠?qū)淼内厔莺托袨?進(jìn)行預(yù)測,從而很好地支持人們的決策。在數(shù)據(jù)挖掘處理中,聚類(Clustering)是將數(shù)據(jù)對象分組成為多個(gè)類或簇 (cluster),屬于同一個(gè)簇的對象之間具有較高的相似度,屬于不同簇的對象之間具有較低 的相似度。相似度一般根據(jù)描述對象的屬性值計(jì)算得到,而對象之間的距離是常用的度量 方式。目前,聚類分析已經(jīng)廣泛地用在許多領(lǐng)域,例如,在商務(wù)領(lǐng)域,聚類能幫助市場分析人 員從客戶基本庫中發(fā)現(xiàn)不同的客戶群,并且用購買模式來刻畫不同的客戶群的特征。通過 聚類,能夠?qū)蛻粝M(fèi)行為及消費(fèi)心理等多種因素進(jìn)行分析,從而得出客戶在消費(fèi)習(xí)慣、生 活方式、社會聯(lián)系等方面的特征,按不同特征劃分客戶群,并針對不同客戶群進(jìn)行不同的市 場營銷活動和客戶服務(wù)。目前,聚類方法多采用PAM(PArtitioning method,劃分方法)(也稱k_中心點(diǎn)對 象算法),PAM是給定一個(gè)有N個(gè)元組或者紀(jì)錄的數(shù)據(jù)集,構(gòu)造K個(gè)分組,每一個(gè)分組代表一 個(gè)聚類,K < N,其中,構(gòu)造的K個(gè)分組滿足下列條件(1)每一個(gè)分組至少包含一個(gè)數(shù)據(jù)紀(jì)錄;(2)每一個(gè)數(shù)據(jù)紀(jì)錄屬于且僅屬于一個(gè)分組;對于給定的K,首先給出一個(gè)初始的分組方法,以后通過反復(fù)迭代的方法改變分 組,使得每一次改進(jìn)之后的分組方案都優(yōu)于前一次分組,即同一分組中的對象的相似度越 高越好,不同分組中對象的相似度越小越好。PAM用簇中位置最靠近中心的對象作為代表對象,然后反復(fù)地用非代表對象來代 替代表對象,試圖找出更好的中心點(diǎn)對象,在反復(fù)迭代的過程中,所有可能的“對象對”被分 析,每個(gè)對中的一個(gè)對象為中心點(diǎn)對象,另一個(gè)為非代表對象。一個(gè)對象代表可以被最大平 方-誤差值減少的對象代替。一個(gè)非代表對象Oh是否是當(dāng)前一個(gè)代表對象Oi的一個(gè)好的 替代,對于每個(gè)非中心點(diǎn)對象0j,有以下四種情況需要考慮,然后計(jì)算,如果為負(fù),則可以替 換(1) Oj當(dāng)前隸屬于0i,如果Oi被Oh替換,且Oj離另一個(gè)Om最近,那么Oj被分配 給0m,則替換代價(jià)為(^^[(!(^!^-(!(^^其中,土 ! =m。(2) Oj當(dāng)前隸屬于0i,如果Oi被Oh替換,且Oj離Oh最近,那么Oj被分配給0h, 則替換代價(jià)為 Cjih = d(j, h)-d(j,i)。(3)0j當(dāng)前隸屬于0m,m ! = i,如果Oi被Oh替換,且Oj仍然離Om最近,那么Oj被分配給0m,則替換代價(jià)為Cjih = O。(4)0j當(dāng)前隸屬于Om,m ! = i,如果Oi被Oh替換,且Oj離Oh最近,那么Oj被分 配給Oh,則替換代價(jià)為Cjih = d(j, h)-d(j,m)。根據(jù)以上原理,PAM的計(jì)算過程如圖1所述,主要包括如下步驟,其中,假設(shè)要得到 的簇的數(shù)目為k,并且數(shù)據(jù)庫中包含η個(gè)對象步驟101、任意選擇k個(gè)對象作為初始的簇中心點(diǎn)對象;步驟102、依次計(jì)算每個(gè)非中心點(diǎn)對象到k個(gè)中心點(diǎn)對象的距離,并指派每個(gè)非中 心點(diǎn)對象給離他最近的中心點(diǎn)對象所表示的簇,直到所有非中心點(diǎn)對象被指派到對應(yīng)的簇 中;步驟103、選擇一個(gè)未被選擇的中心點(diǎn)對象Oi ;步驟104、選擇一個(gè)未被選擇的非中心點(diǎn)對象Oh ;步驟105、計(jì)算用Oh代替Oi的總代價(jià)并記錄在S中;步驟106、重復(fù)步驟104至步驟105直到所有非中心點(diǎn)對象都被選擇過;步驟107、重復(fù)步驟103至步驟106直到所有中心點(diǎn)對象都被選擇過;步驟108、在S中記錄的總代價(jià)有小于0的存在,則利用對應(yīng)最小S值的非中心點(diǎn) 對象替代中心點(diǎn)對象,形成新的k個(gè)中心點(diǎn)對象的集合;步驟109、重復(fù)步驟103至步驟108直到S中記錄的總代價(jià)都大于0。CLARA (Cluster Larger Application,隨機(jī)搜索聚類算法)也是較常見的聚類方 法,該算法先抽取數(shù)據(jù)集合的多個(gè)樣本,然后用PAM方法在抽樣的樣本中尋找最佳的k中心 點(diǎn)對象,返回最好的聚類結(jié)果作為輸出。上述數(shù)據(jù)挖掘系統(tǒng)中的數(shù)據(jù)聚類方法,主要工作在于迭代計(jì)算用非中心點(diǎn)對象替 代中心點(diǎn)對象后的代價(jià),這是一個(gè)很大的開銷。當(dāng)面臨高達(dá)101°個(gè)樣本對象的海量數(shù)據(jù)挖 掘時(shí),由于單個(gè)服務(wù)器的數(shù)據(jù)存儲能力有限,因此導(dǎo)致無法處理海量數(shù)據(jù),并且,上述算法 中所有的計(jì)算過程都是串行執(zhí)行,因此數(shù)據(jù)挖掘的效率低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法、系統(tǒng)及裝置, 用于解決現(xiàn)有數(shù)據(jù)聚類方法無法處理海量數(shù)據(jù)并且數(shù)據(jù)挖掘效率低的問題。本發(fā)明實(shí)施例通過如下技術(shù)方案實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法。根據(jù)本發(fā)明實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法,包括A、主控節(jié)點(diǎn)對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn)。B、以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象 后對應(yīng)的替換代價(jià);C、所述主控節(jié)點(diǎn)獲取所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,并判斷獲取的執(zhí)行結(jié)果中是 否存在小于零的替換代價(jià);若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并返回步驟B;若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果 并結(jié)束。根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供了一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的系 統(tǒng)。根據(jù)本發(fā)明實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的系統(tǒng),包括控制節(jié)點(diǎn)以及至 少兩個(gè)計(jì)算節(jié)點(diǎn);其中,所述控制節(jié)點(diǎn),用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給所述至少 兩個(gè)計(jì)算節(jié)點(diǎn),并以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù) 據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià);以及,獲 取所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,并判斷獲取的執(zhí)行結(jié)果中是否存在小于零的替換代價(jià); 若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的非中 心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并繼續(xù)以串行方式或并行方式控 制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè) 定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià),直到所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果中不存在小于零的 替換代價(jià);若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié) 果并結(jié)束;所述計(jì)算節(jié)點(diǎn),用于根據(jù)所述控制節(jié)點(diǎn)的控制,計(jì)算利用保存的數(shù)據(jù)對象中的非 中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供了一種控制節(jié)點(diǎn)。根據(jù)本發(fā)明實(shí)施例提供的控制節(jié)點(diǎn),包括分配單元,用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算 節(jié)占.
I— /、、、 控制單元,用于以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象 后對應(yīng)的替換代價(jià);匯總單元,用于獲取所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果;判斷單元,用于判斷所述匯總單元獲取的執(zhí)行結(jié)果中是否存在小于零的替換代 價(jià);若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代 價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并觸發(fā)所述控制單元?jiǎng)?作;若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果 并結(jié)束。根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供了一種計(jì)算節(jié)點(diǎn)。根據(jù)本發(fā)明實(shí)施例提供的計(jì)算節(jié)點(diǎn),包括數(shù)據(jù)存儲單元,用于存儲控制節(jié)點(diǎn)分發(fā)的數(shù)據(jù)對象;計(jì)算單元,用于根據(jù)所述控制節(jié)點(diǎn)的控制,計(jì)算利用所述數(shù)據(jù)存儲單元存儲的數(shù) 據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。
通過本發(fā)明實(shí)施例提供的上述至少一個(gè)技術(shù)方案,由控制節(jié)點(diǎn)將待挖掘的數(shù)據(jù)對 象分塊,將分塊數(shù)據(jù)分發(fā)至至少兩個(gè)計(jì)算節(jié)點(diǎn)中,并采用并行或串行方式控制每個(gè)計(jì)算機(jī) 計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的 替換代價(jià),并獲取每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,判斷獲取的執(zhí)行結(jié)果中是否存在小于零的替 換代價(jià),若是,則確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換 代價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并返回控制每個(gè)計(jì)算 機(jī)計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng) 的替換代價(jià)的步驟,直到各計(jì)算節(jié)點(diǎn)計(jì)算得到的替換代價(jià)均大于等于零;若否,則將當(dāng)前各 中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果并結(jié)束。根據(jù)本發(fā)明提供的 技術(shù)方案,控制節(jié)點(diǎn)能夠控制將待處理數(shù)據(jù)分布至多個(gè)計(jì)算節(jié)點(diǎn),從而提高了數(shù)據(jù)的處理 量,能夠處理海量數(shù)據(jù)的挖掘需求。并且,根據(jù)本發(fā)明提供的技術(shù)方案,可以將數(shù)據(jù)分布至 多個(gè)計(jì)算節(jié)點(diǎn)處理,從而對于單個(gè)計(jì)算節(jié)點(diǎn)而言,降低了數(shù)據(jù)處理負(fù)擔(dān),相應(yīng)地提高了計(jì)算 效率,尤其在計(jì)算節(jié)點(diǎn)內(nèi)部采用并行處理方式的情況下,更進(jìn)一步提高了數(shù)據(jù)處理效率。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施 例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中圖1為本發(fā)明背景技術(shù)提供的PAM的計(jì)算過程流程圖;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法流程圖;圖3為本發(fā)明實(shí)施例提供的采用完全串行方式的數(shù)據(jù)聚類的方法流程圖;圖4為本發(fā)明實(shí)施例提供的采用部分串行方式的數(shù)據(jù)聚類的方法流程圖;圖5為本發(fā)明實(shí)施例提供的并行替換各中心點(diǎn)對象的流程圖;圖6為本發(fā)明實(shí)施例提供的初始化簇的流程圖;圖7為本發(fā)明實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的系統(tǒng)結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的控制節(jié)點(diǎn)結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的操作節(jié)點(diǎn)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了給出處理海量數(shù)據(jù)并且提高數(shù)據(jù)挖掘效率的實(shí)現(xiàn)方案,本發(fā)明實(shí)施例提供了 一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法、系統(tǒng)及裝置,以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選 實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于 限定本發(fā)明。并且在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。根據(jù)本發(fā)明實(shí)施例,首先提供了一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法,如圖2所 示,包括步驟201、主控節(jié)點(diǎn)對數(shù)據(jù)對象進(jìn)行分塊,將分塊數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn)。
步驟202、以串行方式或并行方式控制每個(gè)計(jì)算節(jié)點(diǎn)計(jì)算利用保存的數(shù)據(jù)對象中 的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。該步驟202中,以串行方式控制每個(gè)計(jì)算節(jié)點(diǎn)計(jì)算替換代價(jià),即控制各計(jì)算節(jié)點(diǎn) 依次執(zhí)行上述計(jì)算過程,例如,將數(shù)據(jù)對象分發(fā)至計(jì)算節(jié)點(diǎn)1以及計(jì)算節(jié)點(diǎn)2,根據(jù)該串行 控制方式,可以首先控制計(jì)算節(jié)點(diǎn)1完成計(jì)算過程并獲取計(jì)算結(jié)果后,控制計(jì)算節(jié)點(diǎn)2執(zhí)行 計(jì)算過程;以并行方式控制每個(gè)計(jì)算節(jié)點(diǎn)計(jì)算替換代價(jià),即控制各計(jì)算節(jié)點(diǎn)同步執(zhí)行上述計(jì) 算過程,例如,將數(shù)據(jù)對象分配并分發(fā)至計(jì)算節(jié)點(diǎn)1以及計(jì)算節(jié)點(diǎn)2,根據(jù)該并行控制方式, 同時(shí)向計(jì)算節(jié)點(diǎn)1以及計(jì)算節(jié)點(diǎn)2發(fā)送控制指令,指示計(jì)算節(jié)點(diǎn)1以及計(jì)算節(jié)點(diǎn)2執(zhí)行計(jì) 算過程。步驟203、主控節(jié)點(diǎn)獲取每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果。步驟204、主控節(jié)點(diǎn)判斷從各計(jì)算節(jié)點(diǎn)獲取的執(zhí)行結(jié)果中是否存在小于零的替換 代價(jià),若是,執(zhí)行步驟205,若否,執(zhí)行步驟206。步驟205、確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替 換代價(jià)的非中心點(diǎn)對象,并利用確定出的非中心點(diǎn)對象替換該中心點(diǎn)對象,返回步驟202 ;步驟206、將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié) 果并結(jié)束。上述流程中,將待處理的數(shù)據(jù)對象分配并分布至多個(gè)計(jì)算節(jié)點(diǎn)處理,降低了單個(gè) 計(jì)算節(jié)點(diǎn)處理數(shù)據(jù)的負(fù)擔(dān),提高了數(shù)據(jù)處理的效率,尤其在以并行方式控制多個(gè)計(jì)算節(jié)點(diǎn) 處理數(shù)據(jù)時(shí),各計(jì)算節(jié)點(diǎn)能夠?qū)Ω髯员4娴臄?shù)據(jù)同步處理,在計(jì)算效率方面有了很大提高。根據(jù)本發(fā)明優(yōu)選實(shí)施例,各計(jì)算節(jié)點(diǎn)接收控制節(jié)點(diǎn)發(fā)送的用于指示計(jì)算替換代價(jià) 的控制命令后,計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn) 對象后對應(yīng)的替換代價(jià),具體地,各計(jì)算節(jié)點(diǎn)內(nèi)部執(zhí)行的替換代價(jià)的計(jì)算過程可以采用完 全串行方式、部分并行方式或完全并行方式,以下,針對該幾種情況分別說明實(shí)施例一、完全串行方式如圖3所示,本發(fā)明實(shí)施例提供的計(jì)算節(jié)點(diǎn)采用完全串行方式計(jì)算利用保存的數(shù) 據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)時(shí),包括如 下步驟步驟301、選擇一個(gè)未被選擇過的非中心點(diǎn)對象作為待替換對象Oh ;步驟302、選擇一個(gè)未被選擇過的中心點(diǎn)對象Oi ;步驟303、從保存的數(shù)據(jù)對象中除待替換對象Oh以外的非中心點(diǎn)對象中選擇一個(gè) 未被選擇過的非中心點(diǎn)對象作為待測試點(diǎn)Oj ;步驟304、依次計(jì)算選擇的待測試點(diǎn)Oj分別與待替換對象Oh以及確定的K個(gè)中心 點(diǎn)對象中除中心點(diǎn)對象Oi以外的中心點(diǎn)對象的距離;步驟305、計(jì)算得到的各距離中的最小距離減去待測試點(diǎn)Oj與其當(dāng)前歸屬的簇對 應(yīng)中心點(diǎn)對象的距離得到的差值(即測試點(diǎn)替換代價(jià));步驟306、判斷保存的數(shù)據(jù)對象中除待替換對象Oh以外的非中心點(diǎn)對象是否均被 選擇作為待測試點(diǎn)0j,若否,返回步驟303,若是,執(zhí)行步驟307 ;步驟307、將通過步驟305計(jì)算得到的差值相加得到待替換對象Oh替換中心點(diǎn)對象Oi的替換代價(jià)S,并執(zhí)行步驟308 ;步驟308、判斷保存的數(shù)據(jù)對象中所有中心點(diǎn)對象是否均被選擇過,若否,返回步 驟302,若是,執(zhí)行步驟309 ;步驟309、判斷保存的數(shù)據(jù)對象中所有非中心點(diǎn)對象是否均被選擇作為待替換對 象0h,若否,返回步驟301,若是,結(jié)束。實(shí)施例二、部分并行方式該實(shí)施例中,部分并行方式包括如下幾種計(jì)算過程的一種或兩種的組合計(jì)算過程1、針對選擇的待替換對象Oh、中心點(diǎn)對象Oi以及待測試對象Oj,并行計(jì) 算該待測試點(diǎn)Oj到K個(gè)中心點(diǎn)對象的距離,其中,K個(gè)中心點(diǎn)對象包括選擇出的待替換對 象0h(用于替換中心點(diǎn)對象0i、以及除Oi以外的(K-I)個(gè)中心點(diǎn)對象(即將上述流程中以 串行方式執(zhí)行的步驟304以并行方式執(zhí)行);計(jì)算過程2、針對選擇的針對選擇的待替換對象Oh以及中心點(diǎn)對象0i,并行計(jì)算 各待測試對象Oj對應(yīng)的測試點(diǎn)替換代價(jià)(即將上述流程中以串行方式執(zhí)行的步驟303 步驟306以并行方式執(zhí)行);計(jì)算過程3、針對選擇的針對選擇的待替換對象0h,并行計(jì)算該待替換對象Oh替 換各中心點(diǎn)對象Oi的替換代價(jià)(即將上述流程中以串行方式執(zhí)行的步驟302 步驟308 以并行方式執(zhí)行)。以上幾種并行過程僅為理解本發(fā)明實(shí)施例提供的部分并行方式的距離,實(shí)際應(yīng)用 中,可以對各個(gè)計(jì)算過程的計(jì)算過程的并行處理以及串行處理進(jìn)行靈活組合,例如,可以同 時(shí)選擇多個(gè)待替換對象0h,并行計(jì)算選擇的各待替換對象Oh分別替換中心點(diǎn)對象時(shí)對應(yīng) 的替換代價(jià),在具體計(jì)算各待替換對象Oh分別替換中心點(diǎn)對象時(shí)對應(yīng)的替換代價(jià)時(shí),可以 采用內(nèi)部串行方式,例如,針對選定待替換對象0h,可以依此計(jì)算該選定待替換對象Oh替 換各中心點(diǎn)對象的替換代價(jià);再例如,可以并行計(jì)算選定待替換對象Oh分別替換各中心點(diǎn) 對象的替換代價(jià),在具體計(jì)算選定待替換對象Oh替換選定中心點(diǎn)對象Oi時(shí),可以依次計(jì)算 各測試點(diǎn)對應(yīng)的測試點(diǎn)替換代價(jià)。根據(jù)本發(fā)明實(shí)施例,各個(gè)計(jì)算過程之間的并行執(zhí)行或串 行執(zhí)行可以靈活組合,此處不再一一列舉。如圖4所示,以采用上述部分串行方式中的計(jì)算過程1以及計(jì)算過程2的組合為 例,本發(fā)明實(shí)施例提供的計(jì)算節(jié)點(diǎn)計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確 定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)時(shí),包括如下步驟步驟401、選擇一個(gè)未被選擇過的非中心點(diǎn)對象作為待替換對象Oh ;步驟402、選擇一個(gè)未被選擇過的中心點(diǎn)對象Oi ;步驟403、針對選擇的待替換對象Oh以及中心點(diǎn)對象0i,并行計(jì)算該待替換對象 Oh對應(yīng)的各測試點(diǎn)的測試點(diǎn)替換代價(jià)。步驟404、將各測試點(diǎn)替換代價(jià)相加得到該待替換對象Oh替換該中心點(diǎn)對象Oi的 替換代價(jià)。步驟405、判斷保存的數(shù)據(jù)對象中所有中心點(diǎn)對象是否均被選擇過,若否,返回步 驟402,若是,執(zhí)行步驟406 ;步驟406、判斷保存的數(shù)據(jù)對象中所有非中心點(diǎn)對象是否均被選擇作為待替換對 象0h,若否,返回步驟401,若是,結(jié)束。
上述步驟403中,待替換對象Oh對應(yīng)的各測試點(diǎn)即所有數(shù)據(jù)對象中除被選擇為替 換對象Oh的非中心點(diǎn)對象以外的非中心點(diǎn)對象。具體地,替換代價(jià)的計(jì)算過程如上述流程 中步驟304以及步驟305所述,此處不再詳細(xì)描述。實(shí)施例三、完全并行方式該實(shí)施例中,即將各個(gè)計(jì)算過程均采用并行方式執(zhí)行,以獲得更高的計(jì)算效率,具 體地,并行計(jì)算各待替換對象Oh分別替換各中心點(diǎn)對象對應(yīng)的替換代價(jià),其中,針對每一 個(gè)待替換對象0h,并行計(jì)算該待替換對象Oh分別替換各中心點(diǎn)對象對應(yīng)的替換代價(jià)(即通 過一次并行計(jì)算過程獲得待替換對象Oh分別替換K各中心點(diǎn)對象對應(yīng)的K個(gè)替換代價(jià)), 并且,針對替換對象Oh替換中心點(diǎn)對象Oi對應(yīng)的替換代價(jià)的過程也并行化,如上述步驟 403至步驟404所述,此處不再重復(fù)描述。以上針對本發(fā)明實(shí)施例中各計(jì)算節(jié)點(diǎn)的執(zhí)行過程進(jìn)行了詳細(xì)說明,當(dāng)各計(jì)算節(jié)點(diǎn) 通過計(jì)算確定其本地保存的各數(shù)據(jù)對象中的非中心點(diǎn)對象作為待替換對象Oh替換預(yù)先選 定的K個(gè)中心點(diǎn)對象分別對應(yīng)的替換代價(jià)后,控制節(jié)點(diǎn)需要獲取并合并所有計(jì)算節(jié)點(diǎn)的執(zhí) 行結(jié)果,根據(jù)執(zhí)行過程對當(dāng)前聚類結(jié)果(即確定的中心點(diǎn)對象對應(yīng)的簇以及被分配至該簇 中的數(shù)據(jù)對象)進(jìn)行調(diào)整,即對應(yīng)上述流程中的步驟204以及步驟205。其中,本發(fā)明優(yōu)選 實(shí)施例中,步驟205也可以采用并行化處理過程,具體如圖5所示,包括如下步驟步驟501、根據(jù)獲取的執(zhí)行結(jié)果中各替換代價(jià)對應(yīng)的中心點(diǎn)對象,分別將對應(yīng)同一 中心點(diǎn)對象的替換代價(jià)歸為一類;步驟502、針對每一類替換代價(jià),確定具有小于零且最小替換代價(jià)的非中心點(diǎn)對 象,并利用確定的非中心點(diǎn)對象替換當(dāng)前類對應(yīng)的中心點(diǎn)對象。本發(fā)明實(shí)施例中,控制節(jié)點(diǎn)在將分塊數(shù)據(jù)對象分配并分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn) 后,需要指定K個(gè)中心點(diǎn)對象以及各中心點(diǎn)對象對應(yīng)的簇內(nèi)的數(shù)據(jù)對象(即非中心點(diǎn)對 象),通過本發(fā)明實(shí)施例提供的上述方法對中心點(diǎn)對象以及對應(yīng)的簇內(nèi)的數(shù)據(jù)對象進(jìn)行調(diào) 整至最佳,本發(fā)明優(yōu)選實(shí)施例中,形成初始化簇的過程可以通過如圖6所示的過程步驟601、從待處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象;步驟602、以串行方式或并行方式控制所述各計(jì)算節(jié)點(diǎn)計(jì)算保存的各數(shù)據(jù)對象到 所述設(shè)定個(gè)中心點(diǎn)對象的距離;步驟603、將各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中。其中,根據(jù)本發(fā)明優(yōu)選實(shí)施例,將各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn) 對象所表示的簇中,無需進(jìn)行數(shù)據(jù)對象的傳輸,而通過如下方式對各數(shù)據(jù)對象添加用于表示與其具有最小距離的中心點(diǎn)對象所表示的簇的標(biāo)識。相應(yīng)地,與上述方法流程對應(yīng),本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù) 聚類的系統(tǒng),如圖7所示,該系統(tǒng)包括控制節(jié)點(diǎn)701以及至少兩個(gè)計(jì)算節(jié)點(diǎn)702 ;其中,控制節(jié)點(diǎn)701,用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊數(shù)據(jù)對象分配并分發(fā)給至少兩個(gè) 計(jì)算節(jié)點(diǎn)702,并以串行方式或并行方式控制每個(gè)計(jì)算節(jié)點(diǎn)702執(zhí)行計(jì)算利用保存的數(shù)據(jù) 對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià);以及,獲取 每個(gè)計(jì)算節(jié)點(diǎn)702的執(zhí)行結(jié)果,并判斷獲取的執(zhí)行結(jié)果中是否存在小于零的替換代價(jià);若 是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并繼續(xù)以串行方式或并行方式控制 每個(gè)計(jì)算節(jié)點(diǎn)702執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定 個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià),直到每個(gè)計(jì)算節(jié)點(diǎn)702的執(zhí)行結(jié)果中不存在小于零的替 換代價(jià);若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果 并結(jié)束;計(jì)算節(jié)點(diǎn)702,用于根據(jù)控制節(jié)點(diǎn)701的控制,計(jì)算利用保存的數(shù)據(jù)對象中的非中 心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。本發(fā)明優(yōu)選實(shí)施例中,控制節(jié)點(diǎn)701,還用于在將分塊數(shù)據(jù)對象分配并分發(fā)給至少 兩個(gè)計(jì)算節(jié)點(diǎn)702后,從待處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象,并以串行方 式或并行方式控制各計(jì)算節(jié)點(diǎn)702執(zhí)行計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象 的距離;將各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中;相應(yīng)地,上述計(jì)算節(jié)點(diǎn)702,還用于根據(jù)控制節(jié)點(diǎn)701的控制,計(jì)算保存的各數(shù)據(jù) 對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離,并將各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn) 對象所表示的簇中。相應(yīng)地,與上述方法流程對應(yīng),本發(fā)明實(shí)施例還提供了一種控制節(jié)點(diǎn),如圖8所 示,該控制節(jié)點(diǎn)包括分配單元801,用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊數(shù)據(jù)對象分配并分發(fā)給至少兩個(gè) 計(jì)算節(jié)點(diǎn);控制單元802,用于以串行方式或并行方式控制每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保 存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià);匯總單元803,用于獲取每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果;判斷單元804,用于判斷匯總單元803獲取的執(zhí)行結(jié)果中是否存在小于零的替換 代價(jià);若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代 價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并觸發(fā)控制單元802動 作;若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果 并結(jié)束。本發(fā)明優(yōu)選實(shí)施例中,上述判斷單元804,具體用于在判斷匯總單元803獲取的執(zhí)行結(jié)果中存在小于零的替換代價(jià)時(shí),根據(jù)獲取的執(zhí) 行結(jié)果中各替換代價(jià)對應(yīng)的中心點(diǎn)對象,分別將對應(yīng)同一中心點(diǎn)對象的替換代價(jià)歸為一 類,并針對每一類替換代價(jià)以串行方式或并行方式執(zhí)行利用當(dāng)前類替換代價(jià)中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象替換當(dāng)前類 對應(yīng)的中心點(diǎn)對象。本發(fā)明優(yōu)選實(shí)施例中,上述控制單元802,還用于從待處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象,并以串行方式或并行方式 控制所述各計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離;將所述各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中。
本發(fā)明優(yōu)選實(shí)施例中,上述控制單元802,具體用于控制各計(jì)算節(jié)點(diǎn)在計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離后,對 各數(shù)據(jù)對象添加用于表示與其具有最小距離的中心點(diǎn)對象所表示的簇的標(biāo)識。應(yīng)當(dāng)理解,以上控制節(jié)點(diǎn)裝置包括的單元僅為根據(jù)該裝置實(shí)現(xiàn)的功能進(jìn)行的邏輯 劃分,實(shí)際應(yīng)用中,可以進(jìn)行上述單元的疊加或拆分。并且該實(shí)施例提供的控制節(jié)點(diǎn)所實(shí)現(xiàn) 的功能與上述實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法流程一一對應(yīng),對于該裝置所 實(shí)現(xiàn)的更為詳細(xì)的處理流程,在上述方法實(shí)施例中已做詳細(xì)描述,此處不再詳細(xì)描述。相應(yīng)地,與上述方法流程對應(yīng),本發(fā)明實(shí)施例還提供了一種計(jì)算節(jié)點(diǎn),如圖9所 示,該計(jì)算節(jié)點(diǎn)包括數(shù)據(jù)存儲單元901,用于存儲控制節(jié)點(diǎn)分配并分發(fā)的數(shù)據(jù)對象;計(jì)算單元902,用于根據(jù)控制節(jié)點(diǎn)的控制,計(jì)算利用數(shù)據(jù)存儲單元901存儲的數(shù)據(jù) 對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。本發(fā)明優(yōu)選實(shí)施例中,上述計(jì)算單元902,具體用于針對所述保存的數(shù)據(jù)對象中每個(gè)第一非中心點(diǎn)對象,以串行方式或并行方式執(zhí) 行Bi、選擇一個(gè)未被選擇過的第一中心點(diǎn)對象,以串行方式或并行方式執(zhí)行步驟Bll 至步驟B14 B11、從保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象中選擇 一個(gè)未被選擇過的第二非中心點(diǎn)對象;B12、計(jì)算選擇的所述第二非中心點(diǎn)對象分別與所述第一非中心點(diǎn)對象以及確定 的設(shè)定個(gè)中心點(diǎn)對象中除所述第一中心點(diǎn)對象以外的中心點(diǎn)對象的距離;B13、計(jì)算所述距離中的最小距離減去所述第二非中心點(diǎn)對象與其當(dāng)前歸屬的簇 對應(yīng)中心點(diǎn)對象的距離得到的差值;B14、判斷保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象是否 均被選擇過;若否,返回步驟Bll;若是,將通過所述步驟B13計(jì)算得到的差值相加得到所述第一非中心點(diǎn)對象替換 所述第一中心點(diǎn)對象的替換代價(jià),并執(zhí)行步驟B2 ;B2、判斷保存的數(shù)據(jù)對象中所有中心點(diǎn)對象是否均被選擇過;若否,返回步驟Bi;若是,結(jié)束。應(yīng)當(dāng)理解,以上計(jì)算節(jié)點(diǎn)裝置包括的單元僅為根據(jù)該裝置實(shí)現(xiàn)的功能進(jìn)行的邏輯 劃分,實(shí)際應(yīng)用中,可以進(jìn)行上述單元的疊加或拆分。并且該實(shí)施例提供的計(jì)算節(jié)點(diǎn)所實(shí)現(xiàn) 的功能與上述實(shí)施例提供的數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法流程一一對應(yīng),對于該裝置所 實(shí)現(xiàn)的更為詳細(xì)的處理流程,在上述方法實(shí)施例中已做詳細(xì)描述,此處不再詳細(xì)描述。通過本發(fā)明實(shí)施例提供的上述至少一個(gè)技術(shù)方案,由控制節(jié)點(diǎn)將待挖掘的數(shù)據(jù)對 象分塊,將分塊數(shù)據(jù)分配并分發(fā)至至少兩個(gè)計(jì)算節(jié)點(diǎn)中,并采用并行或串行方式控制每個(gè) 計(jì)算機(jī)計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后 對應(yīng)的替換代價(jià),并獲取每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,判斷獲取的執(zhí)行結(jié)果中是否存在小于零的替換代價(jià),若是,則確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最 小替換代價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并返回控制每 個(gè)計(jì)算機(jī)計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象 后對應(yīng)的替換代價(jià)的步驟,直到各計(jì)算節(jié)點(diǎn)計(jì)算得到的替換代價(jià)均大于等于零;若否,則將 當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果并結(jié)束。根據(jù)本發(fā)明 提供的技術(shù)方案,控制節(jié)點(diǎn)能夠控制將待處理數(shù)據(jù)分布至多個(gè)計(jì)算節(jié)點(diǎn),從而提高了數(shù)據(jù) 的處理量,能夠處理海量數(shù)據(jù)的挖掘需求。并且,根據(jù)本發(fā)明提供的技術(shù)方案,可以將數(shù)據(jù) 分布至多個(gè)計(jì)算節(jié)點(diǎn)處理,從而對于單個(gè)計(jì)算節(jié)點(diǎn)而言,降低了數(shù)據(jù)處理負(fù)擔(dān),相應(yīng)地提高 了計(jì)算效率,尤其在計(jì)算節(jié)點(diǎn)內(nèi)部采用并行處理方式的情況下,更進(jìn)一步提高了數(shù)據(jù)處理 效率。本發(fā)明實(shí)施例中,對k個(gè)中心點(diǎn)對象的替換代價(jià)計(jì)算也并行實(shí)現(xiàn),在并行計(jì)算待 測試對象到k-1個(gè)中心點(diǎn)對象和待替換數(shù)據(jù)距離時(shí),一次計(jì)算到k個(gè)中心點(diǎn)對象距離,并可 以多次使用,不僅減少了操作步驟,而且避免了重復(fù)計(jì)算,提高系統(tǒng)性能。本發(fā)明實(shí)施例提供的技術(shù)方案適用于PAM以及CLARANS算法。CLARA先抽取數(shù)據(jù) 集合的多個(gè)樣本,然后用PAM方法在抽樣的樣本中尋找最佳的k中心點(diǎn)對象,返回最好的聚 類結(jié)果作為輸出。CLARANS隨機(jī)搜索聚類算法與CLARA類似采用抽樣方法,但CLARANS在搜 索的每一步都帶一定隨機(jī)性地選取一個(gè)樣本。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法,其特征在于,包括A、主控節(jié)點(diǎn)對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn);B、以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對 應(yīng)的替換代價(jià);C、所述主控節(jié)點(diǎn)獲取所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,并判斷獲取的執(zhí)行結(jié)果中是否存 在小于零的替換代價(jià);若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的 非中心點(diǎn)對象,利用確定的所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并返回步驟B ;若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果并結(jié)束ο
2.如權(quán)利要求1所述的方法,其特征在于,上述步驟B中,計(jì)算利用保存的數(shù)據(jù)對象中 的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià),包括針對所述保存的數(shù)據(jù)對象中每個(gè)第一非中心點(diǎn)對象,以串行方式或并行方式執(zhí)行 Bi、選擇一個(gè)未被選擇過的第一中心點(diǎn)對象,以串行方式或并行方式執(zhí)行步驟Bll至 步驟B14 B11、從保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象中選擇一個(gè) 未被選擇過的第二非中心點(diǎn)對象;B12、計(jì)算選擇的所述第二非中心點(diǎn)對象分別與所述第一非中心點(diǎn)對象以及確定的設(shè) 定個(gè)中心點(diǎn)對象中除所述第一中心點(diǎn)對象以外的中心點(diǎn)對象的距離;B13、計(jì)算所述距離中的最小距離減去所述第二非中心點(diǎn)對象與其當(dāng)前歸屬的簇對應(yīng) 中心點(diǎn)對象的距離得到的差值;B14、判斷保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象是否均被 選擇過;若否,返回步驟Bll ;若是,將通過所述步驟B13計(jì)算得到的差值相加得到所述第一非中心點(diǎn)對象替換所述 第一中心點(diǎn)對象的替換代價(jià),并執(zhí)行步驟B2 ;B2、判斷保存的數(shù)據(jù)對象中所有中心點(diǎn)對象是否均被選擇過; 若否,返回步驟Bl ;右是 結(jié)束ο
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟C中,確定替換同一中心點(diǎn)對象的 多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象,利用所述非中心點(diǎn)對象 替換所述中心點(diǎn)對象,包括根據(jù)獲取的執(zhí)行結(jié)果中各替換代價(jià)對應(yīng)的中心點(diǎn)對象,分別將對應(yīng)同一中心點(diǎn)對象的 替換代價(jià)歸為一類,并針對所述每一類替換代價(jià)以串行方式或并行方式執(zhí)行利用當(dāng)前類替換代價(jià)中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象替換當(dāng)前類對應(yīng) 的中心點(diǎn)對象。
4.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行完所述步驟A后,還包括從所述待處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象,并以串行方式或并行方式控制所述各計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離;將所述各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中。
5.如權(quán)利要求4所述的方法,其特征在于,將所述各數(shù)據(jù)對象歸類至與其具有最小距 離的中心點(diǎn)對象所表示的簇中,包括對所述各數(shù)據(jù)對象添加用于表示與其具有最小距離的中心點(diǎn)對象所表示的簇的標(biāo)識。
6.一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的系統(tǒng),其特征在于,包括控制節(jié)點(diǎn)以及至少兩個(gè)計(jì) 算節(jié)點(diǎn);其中,所述控制節(jié)點(diǎn),用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給所述至少兩個(gè) 計(jì)算節(jié)點(diǎn),并以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對 象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià);以及,獲取所 述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,并判斷獲取的執(zhí)行結(jié)果中是否存在小于零的替換代價(jià);若是, 確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的非中心點(diǎn) 對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并繼續(xù)以串行方式或并行方式控制所 述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè) 中心點(diǎn)對象后對應(yīng)的替換代價(jià),直到所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果中不存在小于零的替換 代價(jià);若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果并 結(jié)束;所述計(jì)算節(jié)點(diǎn),用于根據(jù)所述控制節(jié)點(diǎn)的控制,計(jì)算利用保存的數(shù)據(jù)對象中的非中心 點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述控制節(jié)點(diǎn),還用于在將分塊數(shù)據(jù)對象分發(fā)給所述至少兩個(gè)計(jì)算節(jié)點(diǎn)后,從所述待 處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象,并以串行方式或并行方式控制所述各計(jì) 算節(jié)點(diǎn)執(zhí)行計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離;將所述各數(shù)據(jù)對象 歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中;所述計(jì)算節(jié)點(diǎn),還用于根據(jù)所述控制節(jié)點(diǎn)的控制,計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定 個(gè)中心點(diǎn)對象的距離,并將所述各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示 的簇中。
8.—種控制節(jié)點(diǎn),其特征在于,包括分配單元,用于對數(shù)據(jù)對象進(jìn)行分塊,將分塊后的數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn)??刂茊卧?,用于以串行方式或并行方式控制所述每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行 計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對 應(yīng)的替換代價(jià);匯總單元,用于獲取所述每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果;判斷單元,用于判斷所述匯總單元獲取的執(zhí)行結(jié)果中是否存在小于零的替換代價(jià); 若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中具有小于零且最小替換代價(jià)的 非中心點(diǎn)對象,利用所述非中心點(diǎn)對象替換所述中心點(diǎn)對象,并觸發(fā)所述控制單元?jiǎng)幼鳎?若否,則將當(dāng)前各中心點(diǎn)對象及其對應(yīng)簇中包括的數(shù)據(jù)對象確定為最終聚類結(jié)果并結(jié)束。
9.如權(quán)利要求8所述的控制節(jié)點(diǎn),其特征在于,所述判斷單元,具體用于在判斷所述匯總單元獲取的執(zhí)行結(jié)果中存在小于零的替換代價(jià)時(shí),根據(jù)獲取的執(zhí)行結(jié) 果中各替換代價(jià)對應(yīng)的中心點(diǎn)對象,分別將對應(yīng)同一中心點(diǎn)對象的替換代價(jià)歸為一類,并 針對所述每一類替換代價(jià)以串行方式或并行方式執(zhí)行利用當(dāng)前類替換代價(jià)中具有小于零且最小替換代價(jià)的非中心點(diǎn)對象替換當(dāng)前類對應(yīng) 的中心點(diǎn)對象。
10.如權(quán)利要求8所述的控制節(jié)點(diǎn),其特征在于,所述控制單元,還用于從所述待處理數(shù)據(jù)中選擇設(shè)定個(gè)數(shù)據(jù)對象作為中心點(diǎn)對象,并以串行方式或并行方式 控制所述各計(jì)算節(jié)點(diǎn)執(zhí)行計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離;將所述各數(shù)據(jù)對象歸類至與其具有最小距離的中心點(diǎn)對象所表示的簇中。
11.如權(quán)利要求10所述的控制節(jié)點(diǎn),其特征在于,所述控制單元,具體用于控制所述各計(jì)算節(jié)點(diǎn)在計(jì)算保存的各數(shù)據(jù)對象到所述設(shè)定個(gè)中心點(diǎn)對象的距離后,對 所述各數(shù)據(jù)對象添加用于表示與其具有最小距離的中心點(diǎn)對象所表示的簇的標(biāo)識。
12.—種計(jì)算節(jié)點(diǎn),其特征在于,包括數(shù)據(jù)存儲單元,用于存儲控制節(jié)點(diǎn)分發(fā)的數(shù)據(jù)對象;計(jì)算單元,用于根據(jù)所述控制節(jié)點(diǎn)的控制,計(jì)算利用所述數(shù)據(jù)存儲單元存儲的數(shù)據(jù)對 象中的非中心點(diǎn)對象分別替換確定的設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià)。
13.如權(quán)利要求12所述的計(jì)算節(jié)點(diǎn),其特征在于,所述計(jì)算單元,具體用于 針對所述保存的數(shù)據(jù)對象中每個(gè)第一非中心點(diǎn)對象,以串行方式或并行方式執(zhí)行 Bi、選擇一個(gè)未被選擇過的第一中心點(diǎn)對象,以串行方式或并行方式執(zhí)行步驟Bll至步驟B14 B11、從保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象中選擇一個(gè) 未被選擇過的第二非中心點(diǎn)對象;B12、計(jì)算選擇的所述第二非中心點(diǎn)對象分別與所述第一非中心點(diǎn)對象以及確定的設(shè) 定個(gè)中心點(diǎn)對象中除所述第一中心點(diǎn)對象以外的中心點(diǎn)對象的距離;B13、計(jì)算所述距離中的最小距離減去所述第二非中心點(diǎn)對象與其當(dāng)前歸屬的簇對應(yīng) 中心點(diǎn)對象的距離得到的差值;B14、判斷保存的數(shù)據(jù)對象中除所述第一非中心點(diǎn)對象以外的非中心點(diǎn)對象是否均被 選擇過;若否,返回步驟Bll ;若是,將通過所述步驟B13計(jì)算得到的差值相加得到所述第一非中心點(diǎn)對象替換所述 第一中心點(diǎn)對象的替換代價(jià),并執(zhí)行步驟B2 ;B2、判斷保存的數(shù)據(jù)對象中所有中心點(diǎn)對象是否均被選擇過; 若否,返回步驟Bl ;若是,結(jié)束。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)挖掘系統(tǒng)中數(shù)據(jù)聚類的方法、系統(tǒng)及裝置,主要包括A、主控節(jié)點(diǎn)將分塊數(shù)據(jù)對象分發(fā)給至少兩個(gè)計(jì)算節(jié)點(diǎn);B、以串行方式或并行方式控制每個(gè)計(jì)算節(jié)點(diǎn)計(jì)算利用保存的數(shù)據(jù)對象中的非中心點(diǎn)對象分別替換設(shè)定個(gè)中心點(diǎn)對象后對應(yīng)的替換代價(jià);C、獲取每個(gè)計(jì)算節(jié)點(diǎn)的執(zhí)行結(jié)果,并是否存在小于零的替換代價(jià);若是,確定替換同一中心點(diǎn)對象的多個(gè)非中心點(diǎn)對象中最小替換代價(jià)的非中心點(diǎn)對象,替換中心點(diǎn)對象,并返回步驟B;若否,則將當(dāng)前各中心點(diǎn)對象及對應(yīng)簇確定為最終聚類結(jié)果。根據(jù)該技術(shù)方案,提高了計(jì)算效率,并且應(yīng)用于海量數(shù)據(jù)的處理需求。
文檔編號G06F17/30GK102141988SQ20101010297
公開日2011年8月3日 申請日期2010年1月28日 優(yōu)先權(quán)日2010年1月28日
發(fā)明者何清, 何鴻凌, 周文輝, 孫少陵, 徐萌, 羅治國, 趙衛(wèi)中, 鄧超, 陶濤, 馬慧芳, 高丹 申請人:中國移動通信集團(tuán)公司