專利名稱::一種確定數(shù)據(jù)樣本類別的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域中的數(shù)據(jù)挖掘技術(shù),尤其涉及一種確定數(shù)據(jù)樣本類別的方法及其系統(tǒng)。
背景技術(shù):
:數(shù)據(jù)挖掘處理中常用的KNN法(K-NearestNeighbor)即K近鄰法,最初由Cover和Hart于1968年提出,是一個(gè)理論上比較成熟的方法。該方法的思路是如果一個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別。該方法在分類決策上只依據(jù)最鄰近的一個(gè)或者幾個(gè)樣本的類別來決定待分樣本所屬的類別。采用這種方法可以較好地避免樣本的不平衡問題。另外,由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合?,F(xiàn)有KNN算法的實(shí)現(xiàn)過程主要是采用串行和基于單機(jī)多核(MultiCore)的Map/Reduce(映射/簡化)機(jī)制實(shí)現(xiàn)。串行機(jī)制是指按照傳統(tǒng)串行方式依次計(jì)算每個(gè)待分類樣本與所有訓(xùn)練樣本(即參考樣本)的相似度,然后對待分類樣本排序求得該樣本的前k個(gè)最近鄰,最后由這k個(gè)近鄰預(yù)測待分類樣本的最終類別。由于KNN算法需要計(jì)算每個(gè)待分類樣本與全部訓(xùn)練樣本的相似度,屬于計(jì)算密集型任務(wù),且需要將所有待分類樣本調(diào)入內(nèi)存進(jìn)行處理,因此傳統(tǒng)的串行方法時(shí)間消耗非常大?;趦?nèi)存實(shí)現(xiàn)計(jì)算的方法,即所有的訓(xùn)練數(shù)據(jù)集需要一次性加載到內(nèi)存并長期駐留內(nèi)存,這對于G/T級海量數(shù)據(jù)顯然是無法適應(yīng)的。基于單機(jī)多核并行計(jì)算的方法雖然可以提高計(jì)算速度,但是并不能處理大規(guī)模海量數(shù)據(jù)。此外,目前的算法并不能在網(wǎng)絡(luò)集群計(jì)算機(jī)中實(shí)現(xiàn)算法的內(nèi)部并行。由此可見,現(xiàn)有KNN實(shí)現(xiàn)方法主要存在以下缺點(diǎn)(1)計(jì)算時(shí)間復(fù)雜度和存儲空間復(fù)雜度高,導(dǎo)致處理效率低,特別是在數(shù)據(jù)規(guī)模較大時(shí)用戶等待時(shí)間很長,對于海量數(shù)據(jù)無法加載到內(nèi)存;(2)現(xiàn)有的KNN實(shí)現(xiàn)方法不能利用計(jì)算機(jī)網(wǎng)絡(luò)集群的優(yōu)勢。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種確定數(shù)據(jù)樣本類別的方法及其系統(tǒng),以解決現(xiàn)有數(shù)據(jù)分類方式處理效率低的問題。本發(fā)明實(shí)施例提供的確定數(shù)據(jù)樣本類別的方法,包括并行執(zhí)行多個(gè)第一Map任務(wù),其中,每個(gè)Map任務(wù)獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,計(jì)算該部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度所對應(yīng)的類別;執(zhí)行Reduce任務(wù),所述Reduce任務(wù)分別對每個(gè)數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。本發(fā)明實(shí)施例提供的確定數(shù)據(jù)樣本類別的系統(tǒng),包括調(diào)用模塊,用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用Reduce任務(wù);與第一Map任務(wù)——對應(yīng)的第一Map任務(wù)執(zhí)行模塊,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,計(jì)算該部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度所對應(yīng)的類別;Reduce任務(wù)執(zhí)行模塊,用于執(zhí)行Reduce任務(wù),包括分別對每個(gè)數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。本發(fā)明的另一實(shí)施例提供的確定數(shù)據(jù)樣本類別的系統(tǒng),包括調(diào)用模塊,用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用相應(yīng)的Reduce任務(wù);與第一Map任務(wù)——對應(yīng)的第一Map任務(wù)執(zhí)行模塊,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,并調(diào)用多個(gè)并行執(zhí)行的第二Map任務(wù);與第二Map任務(wù)——對應(yīng)的第二Map任務(wù)執(zhí)行模塊,用于執(zhí)行第二Map任務(wù),包括計(jì)算調(diào)用該第二Map任務(wù)的第一Map任務(wù)獲取到的部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度對應(yīng)的類別;Reduce任務(wù)執(zhí)行模塊,用于執(zhí)行Reduce任務(wù),包括分別對相應(yīng)的第一Map任務(wù)調(diào)用的所有第二Map任務(wù)取得的相同數(shù)據(jù)樣本的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。本發(fā)明的上述實(shí)施例,通過執(zhí)行多個(gè)并行的Map任務(wù),其中每個(gè)Map任務(wù)負(fù)責(zé)對待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本進(jìn)行相似度的計(jì)算,再由Reduce任務(wù)對Map任務(wù)的處理結(jié)果進(jìn)行匯總,以確定出每個(gè)樣本的類別,從而實(shí)現(xiàn)了多任務(wù)節(jié)點(diǎn)的并行數(shù)據(jù)處理,并可充分利用計(jì)算機(jī)網(wǎng)絡(luò)集群的多節(jié)點(diǎn)處理優(yōu)勢,尤其對于海量數(shù)據(jù)的處理可提高數(shù)據(jù)處理效率。另外,可通過設(shè)置Map任務(wù)的數(shù)量以及每個(gè)Map任務(wù)的數(shù)據(jù)處理量,來對待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)進(jìn)行處理,與現(xiàn)有技術(shù)需要將所有待分類樣本數(shù)據(jù)都讀入內(nèi)存后進(jìn)行處理相比,可減少對內(nèi)存容量的要求,適于海量數(shù)據(jù)的處理。圖1為本發(fā)明實(shí)施例中的確定數(shù)據(jù)樣本類別的流程示意圖之一;圖2為本發(fā)明實(shí)施例中的確定數(shù)據(jù)樣本類別的流程示意圖之二;圖3為本發(fā)明實(shí)施例中用于確定數(shù)據(jù)樣本類別的系統(tǒng)的結(jié)構(gòu)示意圖之一;圖4為本發(fā)明實(shí)施例中用于確定數(shù)據(jù)樣本類別的系統(tǒng)的結(jié)構(gòu)示意圖之二。具體實(shí)施例方式本發(fā)明實(shí)施例采用Map/Reduce機(jī)制實(shí)現(xiàn)。Map/Reduce是一種分布式處理海量數(shù)據(jù)的實(shí)現(xiàn)方式,該機(jī)制可讓程序分步到一個(gè)由普通節(jié)點(diǎn)組成的超大集群上并發(fā)執(zhí)行。下面結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。參見圖1,為本發(fā)明實(shí)施例中的確定數(shù)據(jù)樣本類別的流程示意圖,該流程包括生成多個(gè)并行執(zhí)行的Map任務(wù),每個(gè)Map任務(wù)負(fù)責(zé)處理待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本(相當(dāng)于待分類數(shù)據(jù)樣本集中的一個(gè)子集)。在啟動Map任務(wù)之前,可通過設(shè)置Map函數(shù)的方式對Map任務(wù)進(jìn)行設(shè)置。Map函數(shù)可根據(jù)其中預(yù)設(shè)的參數(shù)生成多個(gè)Map任務(wù)并且為每個(gè)Map任務(wù)指定需要處理的數(shù)據(jù)。Map函數(shù)的參數(shù)可包括Map任務(wù)的數(shù)量、每個(gè)Map任務(wù)處理的數(shù)據(jù)量。由于待分類數(shù)據(jù)樣本集通常是以數(shù)據(jù)行方式組織的,每個(gè)數(shù)據(jù)樣本為一行,因此,每個(gè)Map任務(wù)處理的數(shù)據(jù)量參數(shù)可以是行偏移量。為了提高并行處理效率,可將每個(gè)Map任務(wù)處理的數(shù)據(jù)量控制在一定閾值范圍內(nèi),如64M;還可將每個(gè)Map任務(wù)處理的數(shù)據(jù)行數(shù)設(shè)置為相同,如生成m個(gè)Map任務(wù),每個(gè)任務(wù)處理N個(gè)數(shù)據(jù)樣本,即,相當(dāng)于將待分類數(shù)據(jù)樣本集等分為m片并行處理,每片包含N個(gè)數(shù)據(jù)行。生成的多個(gè)Map任務(wù)并行執(zhí)行,每個(gè)Map任務(wù)執(zhí)行以下操作獲取數(shù)據(jù)樣本、根據(jù)訓(xùn)練樣本集對獲取到的每個(gè)數(shù)據(jù)樣本進(jìn)行相似度計(jì)算,以及取K個(gè)最高相似度所對應(yīng)的訓(xùn)練樣本的類別,并將得到的結(jié)果進(jìn)行輸出。該步驟中,每個(gè)Map任務(wù)根據(jù)為其指定的行偏移量逐行讀取待分類數(shù)據(jù)樣本集中的數(shù)據(jù)樣本,并且將讀取到的每個(gè)數(shù)據(jù)樣本轉(zhuǎn)換為〈key,value)對,其中,key為Map任務(wù)為數(shù)據(jù)樣本分配的標(biāo)識(如行號),value為數(shù)據(jù)樣本的內(nèi)容。然后,Map任務(wù)將<key,value〉對與訓(xùn)練樣本集中的所有訓(xùn)練樣本逐一比較,計(jì)算得到<key,value〉對與每個(gè)訓(xùn)練樣本的相似度,可通過對相似度進(jìn)行升序或降序排序得到其中K個(gè)(K小于等于訓(xùn)練樣本集中訓(xùn)練樣本的個(gè)數(shù))最高相似度,從而得到這K個(gè)相似度所對應(yīng)的訓(xùn)練樣本的類別。所述的訓(xùn)練樣本為預(yù)先設(shè)置的參考樣本,這些參考樣本對應(yīng)不同的類別,通過將待分類數(shù)據(jù)樣本與參考樣本進(jìn)行比較,可得到待分類數(shù)據(jù)樣本與各類別的相似度。Map任務(wù)可將得到的K個(gè)相似度所對應(yīng)的類別輸出為新的K個(gè)<key,value〉對,其中,key保持不變,依然是Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,Value為K個(gè)相似度所對應(yīng)的類別標(biāo)識之一。為了便于后續(xù)對類別進(jìn)行匯總操作,較佳地,可以以規(guī)定的格式標(biāo)注每個(gè)類別標(biāo)識對應(yīng)的相似度(如規(guī)定在相應(yīng)的類別標(biāo)識前或后用n位記錄相似度,或者以列表的形式在value中記錄相似度和對應(yīng)的類別標(biāo)識)。Map任務(wù)處理完成后,Reduce任務(wù)被啟動。Reduce任務(wù)負(fù)責(zé)對Map任務(wù)的處理結(jié)果進(jìn)行匯總,以確定出其中每個(gè)數(shù)據(jù)樣本的類別。Reduce任務(wù)執(zhí)行以下操作遍歷所有Map任務(wù)輸出的<key,value)對,針對key值相同的所有<key,value)對統(tǒng)計(jì)各value值出現(xiàn)的次數(shù),找出其中占多數(shù)(即出現(xiàn)的次數(shù)最多)的value,并生成新的<key,value〉對,其中,key保持不變,仍為Map任務(wù)分配的數(shù)據(jù)樣本標(biāo)識,value為統(tǒng)計(jì)得到的占多數(shù)的value,該value所對應(yīng)的類別即為該數(shù)據(jù)樣本的類別,并可將結(jié)果輸出到DFS保存。該步驟中,如果key值相同的<key,Value>對中的2個(gè)以上的類別標(biāo)識(即<key,value〉對中的value值)出現(xiàn)的次數(shù)相同,則可根據(jù)類別標(biāo)識的前或后,或以其他方式標(biāo)識出的相似度,分別將這些出現(xiàn)次數(shù)相同的類別的相似度相加求和,取其中最大值所對應(yīng)的類別標(biāo)識。上述流程中,可通過對Map任務(wù)分配數(shù)據(jù)樣本標(biāo)識的規(guī)則進(jìn)行定義,使每個(gè)Map任務(wù)為每行數(shù)據(jù)樣本分配的標(biāo)識在該待分類數(shù)據(jù)樣本集中唯一。由于可對Map任務(wù)的標(biāo)識分配規(guī)則進(jìn)行定義,這樣,即使Reduce任務(wù)輸出的<key,value〉對中的key為數(shù)據(jù)樣本標(biāo)識,也可從待分類數(shù)據(jù)樣本集中找到對應(yīng)的數(shù)據(jù)樣本內(nèi)容,從而確定出每個(gè)數(shù)據(jù)樣本的類別。上述流程中,Reduce任務(wù)可以為一個(gè)或多個(gè),當(dāng)Reduce任務(wù)為多個(gè)時(shí),每個(gè)Reduce任務(wù)都可以根據(jù)為其指定的value值范圍,從所有Map任務(wù)輸出的<key,value〉對中查找該范圍內(nèi)的<key,value)對并對查找到的<key,value)對進(jìn)行處理。本發(fā)明實(shí)施例中,由于將待分類數(shù)據(jù)樣本集進(jìn)行了并行處理,使得確定數(shù)據(jù)樣本類別的效率比現(xiàn)有技術(shù)有所提高。但是訓(xùn)練集的數(shù)據(jù)量通常也較大,往往占到待分類數(shù)據(jù)樣本集的50%的比例,來保證分類的準(zhǔn)確度。當(dāng)面對海量數(shù)據(jù),如G/TB級數(shù)據(jù)時(shí)候,50%比例的數(shù)據(jù)量也是一個(gè)較大規(guī)模的數(shù)據(jù)量。為了進(jìn)一步提高分類處理的效率,在本發(fā)明的另一個(gè)實(shí)施例中,可在對待分類數(shù)據(jù)樣本集以類似前述實(shí)施例的方式,以l/m(N*N)(即由m個(gè)Map任務(wù)對待分類數(shù)據(jù)樣本集分片并行,每個(gè)Map任務(wù)處理N個(gè)數(shù)據(jù)樣本)進(jìn)行并行分類處理的同時(shí),將訓(xùn)練樣本集進(jìn)一步并行化,其過程可參見圖2。參見圖2,為本發(fā)明實(shí)施例中確定數(shù)據(jù)樣本類別的流程示意圖,該流程包括生成多個(gè)并行執(zhí)行的Map任務(wù),每個(gè)Map任務(wù)負(fù)責(zé)處理待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本(相當(dāng)于待分類數(shù)據(jù)樣本集中的一個(gè)子集)。生成的多個(gè)Map任務(wù)(如圖中的Map-1,Map-2,...,Map-N)并行執(zhí)行,其中,每個(gè)Map任務(wù)讀取待分類數(shù)據(jù)樣本集中其負(fù)責(zé)處理的數(shù)據(jù)樣本,并啟動多個(gè)并行執(zhí)行的新的Map任務(wù)。以Map-1為例,Map-1調(diào)用Map_l‘,,Map-M',Map-1‘,,Map-M'并行執(zhí)行,其中,每個(gè)Map任務(wù)從訓(xùn)練樣本集中獲取其對應(yīng)的部分訓(xùn)練樣本集,根據(jù)獲取到的部分訓(xùn)練樣本集計(jì)算Map-1所獲取到的待分類數(shù)據(jù)樣本集中的每個(gè)數(shù)據(jù)樣本與該部分訓(xùn)練樣本集的相似度,并取其中K個(gè)相似度高的分類類別輸出為K個(gè)<key,value〉對,其中,key為Map-1為讀取到的數(shù)據(jù)樣本所分配的標(biāo)識,value為K個(gè)相似度所對應(yīng)的類別標(biāo)識之一。Map-1‘,...,Map-M'執(zhí)行完成后,Reduce-1‘,...,Reduce-M'任務(wù)被啟動,該Reduce任務(wù)收集Map-1‘,...,Map-M'輸出的〈key,value〉對,針對key值相同的所有〈key,value〉對統(tǒng)計(jì)出其value中占多數(shù)的類別標(biāo)識作為該key值所對應(yīng)的數(shù)據(jù)樣本的分類類別,并針對該數(shù)據(jù)樣本輸出一個(gè)<key,value〉對,其中,key仍為該數(shù)據(jù)樣本的標(biāo)識,value為針對該數(shù)據(jù)樣本所統(tǒng)計(jì)出的類別標(biāo)識。Reduce任務(wù)的數(shù)量也可以不與Map-1',Map-M'的數(shù)量相同,也可以是1個(gè)。其他Map任務(wù),如Map-2,...,Map-N,均以類似方法執(zhí)行。上述流程中,為了減少數(shù)據(jù)處理量、提高數(shù)據(jù)處理效率,較佳地,Map-1',...,Map-M'任務(wù)可將相似度值添加到輸出的<key,value)對中;當(dāng)Reduce任務(wù)進(jìn)行匯總時(shí),可將相同key值的所有<key,value〉對按照相似度值降序排序,取前K(或其他數(shù)量)個(gè)<key,value)對,再從K個(gè)<key,value)對中統(tǒng)計(jì)出占多數(shù)的類別作為該key值所對應(yīng)的數(shù)據(jù)樣本的類別。將相似度值添加到輸出的<key,value〉對中,可采用如下方式根據(jù)定義的value的數(shù)據(jù)格式在value中的相應(yīng)位添加相似度(如規(guī)定value的前8位為類別標(biāo)識,后8位為相似度值);或者,將value定義為列表形式,其列表項(xiàng)包括相似度及其類別標(biāo)識。本發(fā)明的上述實(shí)施例中,Map任務(wù)可被分配到執(zhí)行節(jié)點(diǎn)上執(zhí)行,其中,一個(gè)執(zhí)行節(jié)點(diǎn)可分配到一個(gè)或多個(gè)Map任務(wù)。本發(fā)明的上述實(shí)施例的并行KNN方法可通過Map/Reduce編程機(jī)制實(shí)現(xiàn),實(shí)現(xiàn)過程可利用三個(gè)類PKnn.java、PKnnMapClass.java、PKnnReduceClass。其中,PKnn是主程序,包括所有參數(shù)的設(shè)置、初始化,以及MapRuduce過程的調(diào)用等;PKnnMapClass類計(jì)算每個(gè)待分類樣本與訓(xùn)練樣本的所有相似度,然后求待分類樣本對應(yīng)的前K個(gè)相似度作為Map過程的輸出,對于計(jì)算兩個(gè)樣本相似度函數(shù)是子模塊,是公共調(diào)用的模塊;PKnnReduceClass類計(jì)算得到測試樣本的最終類別。K近鄰算法模塊可以分成幾個(gè)子模塊參數(shù)設(shè)置模塊,以及訓(xùn)練測試過程模塊(由于Krm是懶惰算法,實(shí)際上不用訓(xùn)練,所以在整個(gè)過程中只有測試過程(即確定樣本類別的過程),在MapReduce中用一個(gè)任務(wù)完成)。參數(shù)說明如表1所示表1<table>tableseeoriginaldocumentpage9</column></row><table>基于相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了數(shù)據(jù)分類系統(tǒng)。參見圖3,為本發(fā)明實(shí)施例中的一種數(shù)據(jù)分類系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)包括調(diào)用模塊31,以及Map任務(wù)執(zhí)行模塊32和Reduce任務(wù)執(zhí)行模塊33,其中調(diào)用模塊31,用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用Reduce任務(wù);與第一Map任務(wù)——對應(yīng)的Map任務(wù)執(zhí)行模塊32,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中對應(yīng)的數(shù)據(jù)樣本子集,計(jì)算該數(shù)據(jù)樣本子集中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的K個(gè)相似度所對應(yīng)的類別。在此過程中,Map任務(wù)執(zhí)行模塊32根據(jù)為相應(yīng)的第一Map任務(wù)指定的數(shù)據(jù)行從待分類數(shù)據(jù)樣本集中逐行讀取相應(yīng)行的數(shù)據(jù)樣本,并將讀取到的數(shù)據(jù)樣本轉(zhuǎn)換為<key,value)對,其中,key為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,value為讀取到的數(shù)據(jù)樣本的內(nèi)容;以及,在針對每個(gè)數(shù)據(jù)樣本取其中K個(gè)最高的相似度對應(yīng)的類別之后,為每個(gè)數(shù)據(jù)樣本生成K個(gè)<key,ValUe>對,其中,key為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,value為K個(gè)相似度所對應(yīng)的類別標(biāo)識之一;Reduce任務(wù)執(zhí)行模塊33,用于執(zhí)行Reduce任務(wù),包括對所有第一Map任務(wù)取得的每個(gè)數(shù)據(jù)樣本的類別分別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。Reduce任務(wù)執(zhí)行模塊33可將匯總結(jié)果輸出到分布式文件系統(tǒng)。上述系統(tǒng)中,調(diào)用模塊31調(diào)用的Reduce任務(wù)可以為一個(gè)或多個(gè),如果是多個(gè),相應(yīng)的Reduce任務(wù)執(zhí)行模塊33也為多個(gè),且每個(gè)Reduce任務(wù)和Reduce任務(wù)執(zhí)行模塊33--對應(yīng)。參見圖4,為本發(fā)明的另一實(shí)施例提供的用于確定數(shù)據(jù)樣本類別的系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括調(diào)用模塊41、Map任務(wù)執(zhí)行模塊42、Map任務(wù)執(zhí)行模塊43和Reduce任務(wù)執(zhí)行模塊44,其中調(diào)用模塊41用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用Reduce任務(wù);與第一Map任務(wù)——對應(yīng)的Map任務(wù)執(zhí)行模塊42,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中對應(yīng)的數(shù)據(jù)樣本子集,并調(diào)用多個(gè)并行執(zhí)行的第二Map任務(wù);與第二Map任務(wù)——對應(yīng)的Map任務(wù)執(zhí)行模塊43,用于執(zhí)行第二Map任務(wù),包括計(jì)算調(diào)用該第二Map任務(wù)的第一Map任務(wù)獲取到的數(shù)據(jù)樣本子集中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度對應(yīng)的類別;Reduce任務(wù)執(zhí)行模塊44,用于執(zhí)行Reduce任務(wù),包括對相應(yīng)的第一Map任務(wù)調(diào)用的所有第二Map任務(wù)取得的相同數(shù)據(jù)樣本的類別分別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。進(jìn)一步的,Map任務(wù)執(zhí)行模塊43在針對每個(gè)數(shù)據(jù)樣本取其中K個(gè)最高的相似度對應(yīng)的K個(gè)類別后,針對該數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key,value〉對,其中,key為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,value為K個(gè)相似度之一所對應(yīng)的類別標(biāo)識;Reduce任務(wù)執(zhí)行模塊44根據(jù)第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key,value)對中具有相同key值的<key,value)對中的value,統(tǒng)計(jì)出其中占多數(shù)的類別標(biāo)識,將統(tǒng)計(jì)出的類別標(biāo)識確定為與該key值對應(yīng)的數(shù)據(jù)樣本的類別。Map任務(wù)執(zhí)行模塊43還可在針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度對應(yīng)的類別后,為每個(gè)數(shù)據(jù)樣本輸出與對應(yīng)的K個(gè)<key,value〉對,其中,key為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,value包括K個(gè)相似度之一以及與該相似度對應(yīng)的類別標(biāo)識;此時(shí),Reduce任務(wù)執(zhí)行模塊44從第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key,value〉對中具有相同key值的所有<key,value〉對中,取相似度降序排序的前K個(gè)<key,value)對,從該K個(gè)〈key,value)對中統(tǒng)計(jì)出其中出現(xiàn)次數(shù)最多的value,將統(tǒng)計(jì)出的value所對應(yīng)的類別確定為與該key值對應(yīng)的數(shù)據(jù)樣本的類別。上述系統(tǒng)中,針對一個(gè)第一Map任務(wù)至少調(diào)用一個(gè)Reduce任務(wù),用來對該第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key,value)對進(jìn)行處理。需要說明的是,Map任務(wù)執(zhí)行模塊的數(shù)量和Reduce任務(wù)執(zhí)行模塊的數(shù)量并不受圖3或圖4所示模塊數(shù)量的限制。本發(fā)明的上述實(shí)施例中,通過并行執(zhí)行多個(gè)Map任務(wù),其中每個(gè)Map任務(wù)負(fù)責(zé)計(jì)算待分類樣本中的一部分樣本與各訓(xùn)練樣本的相似度,并通過計(jì)算出的相似度確定各樣本的類別;然后對Map任務(wù)的處理結(jié)果進(jìn)行匯總與輸出,從而得到待分類樣本的類別??梢钥闯?,采用上述方式,可利用G/T級海量數(shù)據(jù)存儲、計(jì)算平臺中的眾多計(jì)算機(jī)并行執(zhí)行數(shù)據(jù)分類操作,將大數(shù)據(jù)塊劃分為小數(shù)據(jù)塊并分配到不同的處理節(jié)點(diǎn)進(jìn)行處理,一方面可提高數(shù)據(jù)處理效率,另一方面,也可解決現(xiàn)有技術(shù)中由于單點(diǎn)串行方法所導(dǎo)致的內(nèi)存空間有限而無法加載海量數(shù)據(jù)的問題。需要說明的是,本發(fā)明的上述實(shí)施例僅以利用KNN算法為例對并行實(shí)現(xiàn)的數(shù)據(jù)分類過程進(jìn)行描述,事實(shí)上,其他適用于數(shù)據(jù)分塊的數(shù)據(jù)分類方法也應(yīng)在本發(fā)明的保護(hù)范圍之內(nèi)。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。權(quán)利要求一種確定數(shù)據(jù)樣本類別的方法,其特征在于,包括并行執(zhí)行多個(gè)第一映射Map任務(wù),其中,每個(gè)第一Map任務(wù)獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,計(jì)算該部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度所對應(yīng)的類別;執(zhí)行簡化Reduce任務(wù),所述Reduce任務(wù)分別對每個(gè)數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。2.如權(quán)利要求1所述的方法,其特征在于,第一Map任務(wù)獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,具體為根據(jù)為其指定的數(shù)據(jù)行范圍從待分類數(shù)據(jù)樣本集讀取相應(yīng)行的數(shù)據(jù)樣本,并將讀取到的數(shù)據(jù)樣本轉(zhuǎn)換為<keyl,valuel〉對,其中,keyl為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,valuel為讀取到的數(shù)據(jù)樣本的內(nèi)容。3.如權(quán)利要求2所述的方法,其特征在于,針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度對應(yīng)的類別之后,還包括為每個(gè)數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,value2>對,其中,key2為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,value2為K個(gè)相似度之一所對應(yīng)的類別標(biāo)識;對數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別,包括對具有相同key2值的K個(gè)<key2,value2>對中各Value2出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),得到出現(xiàn)次數(shù)最多的value2;將出現(xiàn)次數(shù)最多的value2所對應(yīng)的類別確定為該key2值所對應(yīng)的數(shù)據(jù)樣本的類別。4.如權(quán)利要求3所述的方法,其特征在于,為每個(gè)數(shù)據(jù)樣本生成的K個(gè)<key2,ValUe2>對中還攜帶對應(yīng)的相似度值;當(dāng)針對具有同一key值的K個(gè)<key2,value2>對統(tǒng)計(jì)出多個(gè)具有出現(xiàn)次數(shù)相同的value2值時(shí),還包括根據(jù)與該多個(gè)value2對應(yīng)的<key2,Value2>對中的相似度,計(jì)算得到其中每個(gè)Value2所對應(yīng)的相似度之和,取其中最大和值所對應(yīng)的value2,將該valUe2所對應(yīng)的類別確定為該key2值所對應(yīng)的數(shù)據(jù)樣本的類別。5.如權(quán)利要求1所述的方法,其特征在于,所述訓(xùn)練樣本為訓(xùn)練樣本集中的所有訓(xùn)練樣本。6.如權(quán)利要求1所述的方法,其特征在于,計(jì)算部分?jǐn)?shù)據(jù)樣本中的每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,包括與所述部分?jǐn)?shù)據(jù)樣本對應(yīng)的第一Map任務(wù)調(diào)用多個(gè)并行執(zhí)行的第二Map任務(wù),每個(gè)第二Map任務(wù)獲取所述訓(xùn)練樣本集中的部分訓(xùn)練樣本,計(jì)算所述部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與該部分訓(xùn)練樣本中的所有訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排列的前K個(gè)相似度所對應(yīng)的類別;所述Reduce任務(wù)對每個(gè)數(shù)據(jù)樣本的類別分別進(jìn)行匯總,包括與第一Map對應(yīng)的Reduce任務(wù)對相應(yīng)的第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)取得的相同數(shù)據(jù)樣本的類別分別進(jìn)行匯總。7.如權(quán)利要求6所述的方法,其特征在于,針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度對應(yīng)的類別后,對于每個(gè)數(shù)據(jù)樣本,還包括第二Map任務(wù)為該數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,Value2>對,其中,key2為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,value2為K個(gè)相似度之一所對應(yīng)的類別標(biāo)識;所述匯總以及將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別的步驟,具體為根據(jù)所述第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key2,valUe2>對中具有相同key2值的<key2,Value2>對中,統(tǒng)計(jì)出其中出現(xiàn)次數(shù)最多的Value2,將統(tǒng)計(jì)出的Value2所對應(yīng)的類別確定為與該key2值對應(yīng)的數(shù)據(jù)樣本的類別。8.如權(quán)利要求7所述的方法,其特征在于,針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度對應(yīng)的類別后,對于每個(gè)數(shù)據(jù)樣本,還包括第二Map任務(wù)為該數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,value2>對,其中,key2為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,value2包括K個(gè)相似度之一以及與其對應(yīng)的類別標(biāo)識;所述匯總以及將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別的步驟,具體為從所述第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key2,valUe2>對中具有相同key2值的所有<key2,value2>對中,取相似度降序排序的前K個(gè)<key2,value2>對,從該K個(gè)<key2,Value2>對中統(tǒng)計(jì)出其中出現(xiàn)次數(shù)最多的value2,將統(tǒng)計(jì)出的Value2所對應(yīng)的類別確定為與該key2值對應(yīng)的數(shù)據(jù)樣本的類別。9.如權(quán)利要求1至8任一項(xiàng)所述的方法,其特征在于,所述Reduce任務(wù)為一個(gè)或多個(gè)。10.一種確定數(shù)據(jù)樣本類別的系統(tǒng),其特征在于,包括調(diào)用模塊,用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用Reduce任務(wù);與第一Map任務(wù)一一對應(yīng)的第一Map任務(wù)執(zhí)行模塊,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,計(jì)算該部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度所對應(yīng)的類別;Reduce任務(wù)執(zhí)行模塊,用于執(zhí)行Reduce任務(wù),包括分別對每個(gè)數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述第一Map任務(wù)執(zhí)行模塊進(jìn)一步用于,根據(jù)為相應(yīng)的第一Map任務(wù)指定的數(shù)據(jù)行范圍從待分類數(shù)據(jù)樣本集讀取相應(yīng)行的數(shù)據(jù)樣本,并將讀取到的數(shù)據(jù)樣本轉(zhuǎn)換為<keyl,ValUel>對,其中,keyl為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,valuel為讀取到的數(shù)據(jù)樣本的內(nèi)容;以及,在針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度所對應(yīng)的類別之后,為每個(gè)數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,value2>對,其中,key2為第一Map任務(wù)為讀取到的數(shù)據(jù)樣本分配的標(biāo)識,value2為K個(gè)相似度之一所對應(yīng)的類別標(biāo)識;所述Reduce任務(wù)執(zhí)行模塊進(jìn)一步用于,對具有相同key2值的K個(gè)<key2,value2>對中各ValUe2出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),得到出現(xiàn)次數(shù)最多的Value2;以及,將出現(xiàn)次數(shù)最多的value2所對應(yīng)的類別確定為該key2值所對應(yīng)的數(shù)據(jù)樣本的類別。12.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,所述Reduce任務(wù)為一個(gè)或多個(gè),所述Reduce任務(wù)執(zhí)行模塊與所述一個(gè)或多個(gè)Reduce任務(wù)一一對應(yīng)。13.一種確定數(shù)據(jù)樣本類別的系統(tǒng),其特征在于,包括調(diào)用模塊,用于調(diào)用多個(gè)并行的第一Map任務(wù),以及在第一Map任務(wù)執(zhí)行完成后調(diào)用相應(yīng)的Reduce任務(wù);與第一Map任務(wù)一一對應(yīng)的第一Map任務(wù)執(zhí)行模塊,用于執(zhí)行第一Map任務(wù),包括獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,并調(diào)用多個(gè)并行執(zhí)行的第二Map任務(wù);與第二Map任務(wù)一一對應(yīng)的第二Map任務(wù)執(zhí)行模塊,用于執(zhí)行第二Map任務(wù),包括計(jì)算調(diào)用該第二Map任務(wù)的第一Map任務(wù)獲取到的部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度對應(yīng)的類別;Reduce任務(wù)執(zhí)行模塊,用于執(zhí)行Reduce任務(wù),包括分別對相應(yīng)的第一Map任務(wù)調(diào)用的所有第二Map任務(wù)取得的相同數(shù)據(jù)樣本的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第二Map任務(wù)執(zhí)行模塊進(jìn)一步用于,在針對每個(gè)數(shù)據(jù)樣本取其中K個(gè)相似度對應(yīng)的類別后,為每個(gè)數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,value2>對,其中,key2為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為數(shù)據(jù)樣本分配的標(biāo)識,value2為K個(gè)相似度之一所對應(yīng)的類別標(biāo)識;所述Reduce任務(wù)執(zhí)行模塊進(jìn)一步用于,根據(jù)第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key2,value2>對中具有相同key2值的<key2,value2>對中的value2,統(tǒng)計(jì)出其中占多數(shù)的類別標(biāo)識,將統(tǒng)計(jì)出的類別標(biāo)識確定為與該key2值對應(yīng)的數(shù)據(jù)樣本的類別。15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第二Map任務(wù)執(zhí)行模塊進(jìn)一步用于,在針對每個(gè)數(shù)據(jù)樣本取K個(gè)相似度對應(yīng)的類別后,為每個(gè)數(shù)據(jù)樣本輸出對應(yīng)的K個(gè)<key2,value2>對,其中,key2為調(diào)用該第二Map任務(wù)的第一Map任務(wù)為該數(shù)據(jù)樣本分配的標(biāo)識,value2包括K個(gè)相似度之一以及與其對應(yīng)的類別標(biāo)識;所述Reduce任務(wù)執(zhí)行模塊進(jìn)一步用于,從所述第一Map任務(wù)所調(diào)用的所有第二Map任務(wù)輸出的<key2,Value2>對中具有相同key2值的所有<key2,Value2>對中,取相似度降序排序的前K個(gè)<key2,value2>對,從該K個(gè)<key2,value2>對中統(tǒng)計(jì)出其中出現(xiàn)次數(shù)最多的ValUe2,將統(tǒng)計(jì)出的ValUe2所對應(yīng)的類別確定為與該key2值對應(yīng)的數(shù)據(jù)樣本的類別。16.如權(quán)利要求13至15任一項(xiàng)所述的系統(tǒng),其特征在于,所述Reduce任務(wù)為一個(gè)或多個(gè),所述Reduce任務(wù)執(zhí)行模塊與所述一個(gè)或多個(gè)Reduce任務(wù)一一對應(yīng)。全文摘要本發(fā)明公開了一種確定數(shù)據(jù)樣本的類別的方法及其系統(tǒng)。本發(fā)明方法包括并行執(zhí)行多個(gè)第一Map任務(wù),其中,每個(gè)Map任務(wù)獲取待分類數(shù)據(jù)樣本集中的部分?jǐn)?shù)據(jù)樣本,計(jì)算該部分?jǐn)?shù)據(jù)樣本中每個(gè)數(shù)據(jù)樣本與訓(xùn)練樣本集中的訓(xùn)練樣本的相似度,并針對每個(gè)數(shù)據(jù)樣本取降序排序的前K個(gè)相似度所對應(yīng)的類別;執(zhí)行Reduce任務(wù),所述Reduce任務(wù)分別對每個(gè)數(shù)據(jù)樣本的K個(gè)相似度所對應(yīng)的類別進(jìn)行匯總,將每個(gè)數(shù)據(jù)樣本中占多數(shù)的類別確定為該數(shù)據(jù)樣本的類別。采用本發(fā)明,可提高數(shù)據(jù)樣本分類處理的效率。文檔編號G06F9/38GK101799748SQ20091007799公開日2010年8月11日申請日期2009年2月6日優(yōu)先權(quán)日2009年2月6日發(fā)明者何清,周文輝,莊福振,徐萌,沈亞飛,羅治國,鄧超,鄭詩豪,陳磊,高丹申請人:中國移動通信集團(tuán)公司