專利名稱:一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,更具體地說,涉及一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法及系統(tǒng)。
背景技術(shù):
支持向量數(shù)據(jù)描述(Support Vector Data Description, SVDD)是在支持向量機(jī) (Support Vector Machine, SVM)的基礎(chǔ)上,由Tax于2001年提出的一種針對(duì)單類數(shù)據(jù)的數(shù)據(jù)描述算法。它的主要思想是在核特征空間中尋找一個(gè)最小超球分界面,該分界面應(yīng)盡可能把所有訓(xùn)練樣本包圍起來,并以該分界面對(duì)數(shù)據(jù)進(jìn)行分類和描述。SVDD繼承了 SVM的優(yōu)點(diǎn),即以結(jié)構(gòu)風(fēng)險(xiǎn)為目標(biāo)進(jìn)行優(yōu)化,因此一經(jīng)提出就受到了廣大研究者的注意,并將之應(yīng)用于異常檢測(cè)、入侵檢測(cè)中、基因表達(dá)聚類、故障檢測(cè)等方面,取得很好的效果。然而,上述應(yīng)用領(lǐng)域的數(shù)據(jù)逐漸朝著海量級(jí)別的方向發(fā)展。目前,SVDD分類器常用的訓(xùn)練方法有標(biāo)準(zhǔn)的訓(xùn)練方法和增量式方法。當(dāng)上述訓(xùn)練方法應(yīng)用于海量數(shù)據(jù)的級(jí)別時(shí),由于需要通過核函數(shù)工具進(jìn)行高維映射,最后得到用于尋優(yōu)矩陣的維數(shù)將是爆炸性,其導(dǎo)致的后果是=(I)SVDD模型訓(xùn)練速度非常緩慢;(2)因內(nèi)存消耗量過大使得訓(xùn)練中斷。Map/Reduce (映射/化簡(jiǎn))系統(tǒng)是一個(gè)最先由Google提出的分布式計(jì)算軟件構(gòu)架,通過定義相應(yīng)的映射(Map)和化簡(jiǎn)(Reduce)函數(shù)來實(shí)現(xiàn)大數(shù)據(jù)量的分布式處理,可以用來解決大數(shù)據(jù)量的分布式計(jì)算問題,然后把計(jì)算后的結(jié)果放入文件系統(tǒng)或者數(shù)據(jù)庫中。 在Map/Reduce系統(tǒng)中,每一個(gè)map操作都是相對(duì)獨(dú)立的,所有的map任務(wù)都是并行運(yùn)行的,雖然實(shí)踐中會(huì)受到數(shù)據(jù)源和中央處理器個(gè)數(shù)的影響。同樣的,Map/Reduce系統(tǒng)用一個(gè) reducer集合來執(zhí)行reduce操作,所有帶有相同key的map輸出會(huì)聚集到同一個(gè)reducer。 雖然這個(gè)過程看上去沒有串行計(jì)算來得高效,但是Map/Reduce系統(tǒng)能夠處理一般服務(wù)器所不能處理的大數(shù)據(jù)量處理問題。大型的服務(wù)器集群(例如Hadoop集群)可以在幾個(gè)小時(shí)內(nèi)處理petabyte數(shù)據(jù)量的排序問題。而并行處理可以提供部分容錯(cuò)和出錯(cuò)恢復(fù)的功能, 當(dāng)一個(gè)map操作或reduce操作失效時(shí),整個(gè)工作就會(huì)被重新安排,從而不會(huì)影響數(shù)據(jù)處理工作的連續(xù)性。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于Map/ Reduce的快速支持向量數(shù)據(jù)描述方法及系統(tǒng),其能在處理海量數(shù)據(jù)時(shí),降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),加快SVDD訓(xùn)練速度,同時(shí)避免訓(xùn)練中斷。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法,其中,包括以下步驟對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)
5集D ;根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成η個(gè)子數(shù)據(jù)集,所述預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);根據(jù)所述η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,...... ,η)的Map任務(wù),并將所述Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算;在所述Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,......, n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器;其中,所述
i、n為自然數(shù)。本發(fā)明所述的快速支持向量數(shù)據(jù)描述方法,其中,所述根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成η個(gè)子數(shù)據(jù)集具體包括獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)η值;應(yīng)用Bagging方式對(duì)所述訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子數(shù)據(jù)集/r"中;在所述子數(shù)據(jù)集ZTa中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止抽樣,否則更新所述訓(xùn)練數(shù)據(jù)集D,令
…VJDrh),再重復(fù)執(zhí)行前一步驟。本發(fā)明所述的快速支持向量數(shù)據(jù)描述方法,其中,所述步驟根據(jù)所述η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,......,η)的Map任務(wù)具體包括讀取所述子數(shù)據(jù)集D-;獲取核參數(shù)、懲罰比例,其中所述核參數(shù)采用默認(rèn)的高斯核;根據(jù)所述核參數(shù)、懲罰比例,對(duì)所述子數(shù)據(jù)集ITa進(jìn)行訓(xùn)練建模;訓(xùn)練生成Map/Reduce編程架構(gòu)下的η個(gè)所述子分類器SVDDi = (1,......,η)的Map任務(wù)。本發(fā)明所述的快速支持向量數(shù)據(jù)描述方法,其中,所述將所述Map任務(wù)交由 Hadoop集群調(diào)度器進(jìn)行運(yùn)算具體包括啟動(dòng)所述Hadoop集群調(diào)度器對(duì)所述Map任務(wù)進(jìn)行調(diào)度運(yùn)行,所述調(diào)度器將η個(gè)所述Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于Hadoop集群的分布式存儲(chǔ)系統(tǒng)中。本發(fā)明所述的快速支持向量數(shù)據(jù)描述方法,其中,所述Hadoop集群調(diào)度器運(yùn)算完
成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子SVDDi=(1,......,n)的合并,得到最后
訓(xùn)練數(shù)據(jù)集的SVDD分類器具體包括讀取所述子分類器SVDDi = (1,......,n);獲取所述子分類器SVDDi = (1,...... ,n)的支持向量集# = ……,<’;計(jì)算所
述支持向量集的每個(gè)樣本被多少個(gè)所述子分類器SVDDi = (1,......, n)包含,所計(jì)算結(jié)果記為
kf',每被一個(gè)所述子分類器SVDDi = (1,......,n)包含,則令M'+1;計(jì)算={k-Vi == I,i = I,......,η).根據(jù)所述SVme訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD分類器。
本發(fā)明還提供了一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述系統(tǒng),其中,包括訓(xùn)練數(shù)據(jù)集生成模塊、Bagging抽樣劃分模塊、Map函數(shù)子SVDD分類器生成模塊和Reduce 函數(shù)合并子SVDD分類器模塊;其中,所述訓(xùn)練數(shù)據(jù)集生成模塊,用于對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集D ;所述Bagging抽樣劃分模塊,用于根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成η 個(gè)子數(shù)據(jù)集,所述預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);所述Map函數(shù)子SVDD分類器生成模塊,用于根據(jù)所述η個(gè)子數(shù)據(jù)集,生成Map/
Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,......, η)的Map任務(wù),并將所述Map任務(wù)交由
Hadoop集群調(diào)度器進(jìn)行運(yùn)算;所述Reduce函數(shù)合并子SVDD分類器模塊,用于在所述Hadoop集群調(diào)度器運(yùn)算完
成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,......, n)的合并,
得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器;其中,所述i、η為自然數(shù)。本發(fā)明所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其中,所述Bagging抽樣劃分模塊包括η值獲取單元,用于獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)η值;抽樣單元,用于應(yīng)用Bagging方式對(duì)所述訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子數(shù)據(jù)集1)-中;第一判斷單元,用于在所述子數(shù)據(jù)集D-中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí), 判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止抽樣,否則更新所述訓(xùn)練數(shù)據(jù)集D, 令D=Dnpi-υ_·····υΖΤ},再啟動(dòng)所述抽樣單元。本發(fā)明所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其中,所述Map函數(shù)子SVDD分類器生成模塊包括第一數(shù)據(jù)讀取單元,用于讀取所述子數(shù)據(jù)集ΖΓΛ ;第一參數(shù)獲取單元,用于獲取核參數(shù)、懲罰比例,其中所述核參數(shù)采用默認(rèn)的高斯核;訓(xùn)練建模單元,用于根據(jù)所述核參數(shù)、懲罰比例,對(duì)所述子數(shù)據(jù)集IT6進(jìn)行訓(xùn)練建模;子分類器生成單元,用于訓(xùn)練生成Map/Reduce編程架構(gòu)下的η個(gè)所述子分類器 SVDDi = (1,...... ,η)的 Map 任務(wù)。本發(fā)明所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其中,所述Map函數(shù)子SVDD分類器生成模塊還包括運(yùn)算單元,用于啟動(dòng)所述Hadoop集群調(diào)度器對(duì)所述Map任務(wù)進(jìn)行調(diào)度運(yùn)行,所述調(diào)度器將η個(gè)所述Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于Hadoop集群的分布式存儲(chǔ)系統(tǒng)中。本發(fā)明所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其中,所述Reduce函數(shù)合并子SVDD分類器模塊包括
第二數(shù)據(jù)讀取單元,用于讀取所述子分類器SVDDi= (1,......,n);第二參數(shù)獲取單元,用于獲取所述子分類器SVDDi = (1,......,n)的支持向量集
SV = { ν;ν ι,……,<"} ·
I第一計(jì)算單元,用于計(jì)算所述支持向量集的每個(gè)樣本被多少個(gè)所述子分類器 SVDDi = (1,......, η)包含,所計(jì)算結(jié)果記為Aff,每被一個(gè)所述子分類器SVDDi = (1,......, η)包
含,則令二第二計(jì)算單元,用于計(jì)算= {k-h == I, i = 1,……,η).第二判斷單元,用于判斷支持向量是否遍歷完,如果是,則啟動(dòng)所述SVDD分類器生成單元,否則轉(zhuǎn)向所述第一計(jì)算單元;SVDD分類器生成單元,用于根據(jù)所述SVme訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD分類器。本發(fā)明的有益效果在于通過將海量的訓(xùn)練數(shù)據(jù)集進(jìn)行Bagging抽樣子數(shù)據(jù)集的劃分,即生成η個(gè)數(shù)量相等的子數(shù)據(jù)集;其次利用Map函數(shù)將某個(gè)子數(shù)據(jù)集用于生成子分類器;最后利用Reduce函數(shù)將子分類器進(jìn)行合并,生成最后的分類器。由于SVDD本身是通過封閉的球體作為分界面,其性質(zhì)是閉環(huán)的,因此通過這樣的Map/Reduce方式,其訓(xùn)練的性能與原來是一樣的。通過本發(fā)明的方法和系統(tǒng),可以降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),同時(shí)利用集群的計(jì)算能力,加快其海量數(shù)據(jù)的訓(xùn)練速度,及防止訓(xùn)練中斷現(xiàn)象的產(chǎn)生,對(duì)于入侵檢測(cè)、故障檢測(cè)等傳統(tǒng)的海量數(shù)據(jù)級(jí)別的模式識(shí)別應(yīng)用問題都有一定的參考價(jià)值。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中
圖I是本發(fā)明較佳實(shí)施例的基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法流程圖2是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述方法中Bagging抽樣流程圖;圖3是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述方法中Map函數(shù)操作流程圖;圖4是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述方法中Reduce函數(shù)操作流程5是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述方法測(cè)試應(yīng)用過程示意6是本發(fā)明較佳實(shí)施例的基于Map/Reduce的快速支持向量數(shù)據(jù)描述系統(tǒng)原理
圖7是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述系統(tǒng)中Bagging抽樣劃分模塊
框原理框圖;圖8是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述系統(tǒng)中Map函數(shù)子SVDD分類器生成模塊原理框圖;圖9是本發(fā)明較佳實(shí)施例的快速支持向量數(shù)據(jù)描述系統(tǒng)中Reduce函數(shù)合并子 SVDD分類器模塊原理框圖。
具體實(shí)施方式
本發(fā)明較佳實(shí)施例的基于Map/Reduce的快速支持向量數(shù)據(jù)描述(SVDD)方法SlOO 流程如圖I所示,該快速支持向量數(shù)據(jù)描述方法SlOO可以采用硬件或軟件來實(shí)現(xiàn)。該方法起始于步驟SI 10。在步驟S120中,對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集。具體地,模型建立人員,將用于SVDD建模的數(shù)據(jù)進(jìn)行預(yù)處理,并根據(jù)專家的經(jīng)驗(yàn)知識(shí)形成SVDD的訓(xùn)練數(shù)據(jù)樣本集。在步驟S130中,根據(jù)預(yù)設(shè)置的參數(shù)、由上述訓(xùn)練數(shù)據(jù)集生成η個(gè)子數(shù)據(jù)集,其中預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù)。在步驟S140
中,根據(jù)η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,......,η)的Map
任務(wù),并將Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算。在步驟S150中,在Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,......,
n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器。上述方法快速支持向量數(shù)據(jù)描述方法SlOO 結(jié)束于步驟S160。其中,上述i、n為自然數(shù)。本實(shí)施例的方法中,由于SVDD本身是通過封閉的球體作為分界面,其性質(zhì)是閉環(huán)的,通過這樣的Map/Reduce方式,其訓(xùn)練的性能與原來是一樣的,因此可以降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),同時(shí)利用集群的計(jì)算能力,其直接效果是大大加快SVDD的訓(xùn)練速度,同時(shí)避免了訓(xùn)練的中斷。在進(jìn)一步的實(shí)施例中,如圖2所示,上述基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法SlOO中步驟S130具體包括獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)η值;應(yīng)用Bagging 方式對(duì)訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,有放回的抽取樣本Si,判斷所抽取樣本是否重復(fù),即判斷
是否A e D;ub ;在所抽樣本不重復(fù)時(shí),將所抽樣本Si加入到子數(shù)據(jù)集卩-中;判斷子數(shù)據(jù)
集中所包含樣本的個(gè)數(shù)是否達(dá)到預(yù)設(shè)的個(gè)數(shù)(取整數(shù)值);在子數(shù)據(jù)集iT"中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止 Bagging抽樣,否則更新訓(xùn)練數(shù)據(jù)集D,令^……,再重復(fù)執(zhí)行前一步驟,即 再應(yīng)用Bagging方式對(duì)訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子
數(shù)據(jù)集中;再次判斷子數(shù)據(jù)集D/*中所包含樣本的個(gè)數(shù)是否達(dá)到預(yù)設(shè)的個(gè)數(shù)取整數(shù)值;
在子數(shù)據(jù)集中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止Bagging抽樣,否則更新訓(xùn)練數(shù)據(jù)集D,令D=Z)n{iT?!V钡剿凶訑?shù)據(jù)集已全部完成抽樣。其中,上述Bagging方式對(duì)訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣是指, 對(duì)訓(xùn)練數(shù)據(jù)集D有放回的抽樣,利用該Bagging抽樣方法,可以使得抽樣獲得子訓(xùn)練集的信息熵比較均勻,防止因奇異點(diǎn)數(shù)據(jù)導(dǎo)致訓(xùn)練子分類器發(fā)生變形崩塌。在進(jìn)一步的實(shí)施例中,如圖3所示,上述基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法SlOO的步驟S140中,根據(jù)η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,......, η)的Map任務(wù)具體包括步驟S141、讀取子數(shù)據(jù)集;步驟S142、獲取
核參數(shù)δ和懲罰比例C,其中核參數(shù)采用默認(rèn)的高斯核;步驟S143、根據(jù)核參數(shù)δ和懲罰比例C,對(duì)子數(shù)據(jù)集進(jìn)行訓(xùn)練建模;步驟S144、訓(xùn)練生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi=(1,......,n)的Map任務(wù)。在該步驟中,由于進(jìn)行了 Bagging抽樣后,所得到
子數(shù)據(jù)集的樣本數(shù)已經(jīng)大大的減少,所以在步驟S143中,可以選用標(biāo)準(zhǔn)的訓(xùn)練方法對(duì)子數(shù)據(jù)進(jìn)行建模,生成子分類器,詳細(xì)訓(xùn)練方法在此不一一贅述。
進(jìn)一步地,上述基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法SlOO的步驟S140 中,將Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算具體包括啟動(dòng)Hadoop集群調(diào)度器j obtracker對(duì)上述生成的η個(gè)子分類器SVDDi = (1,......, η)的Map任務(wù)進(jìn)行調(diào)度運(yùn)行,調(diào)度器
jobtracker將η個(gè)Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于Hadoop集群的分布式存儲(chǔ)系統(tǒng)(Hadoop Distributed File System, HDFS)中。由于 Hadoop集群可以處理海量數(shù)據(jù),因此利用Hadoop集群進(jìn)行數(shù)據(jù)存儲(chǔ)及處理可以使得SVDD 分類器能適應(yīng)需要處理海量數(shù)據(jù)的應(yīng)用領(lǐng)域。其中采用Hadoop集群調(diào)度器jobtracker進(jìn)行調(diào)度運(yùn)行的具體算法可參考現(xiàn)有技術(shù),在此不進(jìn)行描述。更進(jìn)一步地,如圖4所示,上述基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法 SlOO的步驟S150具體包括步驟S151、讀取上述子分類器SVDDi = (1,......, n);步驟S152、獲
取子分類器SVDDi = (1,......, n)的支持向量集W……,s<dd"};步驟S153、計(jì)算支持向量
集的每個(gè)樣本被多少個(gè)子分類器SVDDi = (1, , n)包含,所計(jì)算結(jié)果記為每被一個(gè)子分類器SVDDi = (1’...... ,n)包含,則更新,令kfv,+1;步驟S154、計(jì)算SV咖,
Ct J rSvddj
其中SL=認(rèn)嚴(yán) ==U = l……,《}.步驟S155、判斷支持向量是否遍歷完,如果是,則執(zhí)行
步驟S156、根據(jù)SVme訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD分類器,具體為先生成訓(xùn)練集SV·,然后獲取輸入的核參數(shù)δ和懲罰比例C,應(yīng)用標(biāo)準(zhǔn)的訓(xùn)練方法進(jìn)行訓(xùn)練,生成最后的分類器 SVDDglobal ;否則重復(fù)執(zhí)行步驟 S153、S154、S155。具體應(yīng)用時(shí),如圖5所示,用戶將待判別的數(shù)據(jù)輸入到客戶端,客戶端將所接收到的數(shù)據(jù)傳到SVDD分類器服務(wù)端上,然后SVDD分類器服務(wù)器會(huì)根據(jù)訓(xùn)練后的SVDD分類器對(duì)提交的樣本進(jìn)行判別分類,最后將結(jié)果返回給客戶端,并通過客戶端顯示判別結(jié)果給客戶。在本發(fā)明的另一實(shí)施例中,如圖6所示,還提供了一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述系統(tǒng)00,該快速支持向量數(shù)據(jù)描述系統(tǒng)00可以采用硬件或軟件來實(shí)現(xiàn)。在圖6中同時(shí)示意出了該快速支持向量數(shù)據(jù)描述系統(tǒng)00與Hadoop集群50之間的交互關(guān)系。 其中,快速支持向量數(shù)據(jù)描述系統(tǒng)00包括訓(xùn)練數(shù)據(jù)集生成模塊10、Bagging抽樣劃分模塊 20,Map函數(shù)子SVDD分類器生成模塊30和Reduce函數(shù)合并子SVDD分類器模塊40。其中, 訓(xùn)練數(shù)據(jù)集生成模塊10,用于對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集;Bagging抽樣劃分模塊20,用于根據(jù)預(yù)設(shè)置的參數(shù)、由訓(xùn)練數(shù)據(jù)集生成η個(gè)子數(shù)據(jù)集,預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);Map函數(shù)子SVDD分類器生成模塊30,用于根據(jù)η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi =
(I,......,η)的Map任務(wù),并將Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算;Reduce函數(shù)合并子
SVDD分類器模塊40,用于在Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,...... ,n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器;
其中,i、n為自然數(shù)。本實(shí)施例的快速支持向量數(shù)據(jù)描述系統(tǒng)00中,由于SVDD本身是通過封閉的球體作為分界面,其性質(zhì)是閉環(huán)的,通過這樣的Map/Reduce方式,其訓(xùn)練的性能與原來是一樣的,因此可以降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),同時(shí)利用Hadoop集群的計(jì)算能力, 其直接效果是大大加快SVDD的訓(xùn)練速度,同時(shí)避免了訓(xùn)練的中斷。在進(jìn)一步的實(shí)施例中,如圖7所示,上述快速支持向量數(shù)據(jù)描述系統(tǒng)00的Bagging
抽樣劃分模塊20包括n值獲取單元21,用于獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)η值;抽
10樣單元22,用于應(yīng)用Bagging方式對(duì)訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子數(shù)據(jù)集以-中;第一判斷單元23,用于在子數(shù)據(jù)集中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止抽樣,否則更新訓(xùn)練數(shù)據(jù)集D,令D = Dn Df,再啟動(dòng)所述抽樣單元22,再次進(jìn)行Bagging抽樣。其中, 上述Bagging方式對(duì)訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣是指,對(duì)訓(xùn)練數(shù)據(jù)集D有放回的抽樣,利用該 Bagging抽樣方法,可以使得抽樣獲得子訓(xùn)練集的信息熵比較均勻,防止因奇異點(diǎn)數(shù)據(jù)導(dǎo)致訓(xùn)練子分類器發(fā)生變形崩塌。在進(jìn)一步的實(shí)施例中,如圖8所示,上述快速支持向量數(shù)據(jù)描述系統(tǒng)00的Map函數(shù)子SVDD分類器生成模塊30包括第一數(shù)據(jù)讀取單元31,用于讀取子數(shù)據(jù)集ZTi;第一參數(shù)獲取單元32,用于獲取核參數(shù)、懲罰比例,其中核參數(shù)采用默認(rèn)的高斯核;訓(xùn)練建模單元 33,用于根據(jù)核參數(shù)、懲罰比例,對(duì)子數(shù)據(jù)集D-進(jìn)行訓(xùn)練建模;子分類器生成單元34,用于
訓(xùn)練生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi= (1,......,η)的Map任務(wù)。由于子數(shù)
據(jù)集的樣本數(shù)已經(jīng)大大的減少,所以訓(xùn)練建模單元33可以選用標(biāo)準(zhǔn)的訓(xùn)練方法對(duì)子數(shù)據(jù)!行建模,生成子分類器SVDDi = (1,...... ,n)。在進(jìn)一步的實(shí)施例中,如圖8所示,上述快速支持向量數(shù)據(jù)描述系統(tǒng)00的Map 函數(shù)子SVDD分類器生成模塊30還包括運(yùn)算單元35,用于啟動(dòng)Hadoop集群調(diào)度器 jobtracker對(duì)Map任務(wù)進(jìn)行調(diào)度運(yùn)行,調(diào)度器jobtracker將η個(gè)Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于Hadoop集群50的分布式存儲(chǔ)系統(tǒng) (Hadoop Distributed File System, HDFS)中。由于 Hadoop 集群 50 可以處理海量數(shù)據(jù), 因此利用Hadoop集群50進(jìn)行數(shù)據(jù)存儲(chǔ)及處理可以使得SVDD分類器能適應(yīng)需要處理海量數(shù)據(jù)的應(yīng)用領(lǐng)域。在進(jìn)一步的實(shí)施例中,如圖9所示,上述快速支持向量數(shù)據(jù)描述系統(tǒng)00的Reduce 函數(shù)合并子SVDD分類器模塊40包括第二數(shù)據(jù)讀取單元41,用于讀取子分類器SVDDi =(1,......, );第二參數(shù)獲取單元42,用于獲取子分類器SVDDi = L......,n)的支持向量集
= …….第一計(jì)算單元43,用于計(jì)算支持向量集的每個(gè)樣本被多少個(gè)子分類 ,
器SVDDi = (1, ,n)包含,所計(jì)算結(jié)果記為每被一個(gè)子分類器SVDDi = (1, ,n)包含,
則令= ksvr^ +1;第二計(jì)算單元44,用于計(jì)算SF· = {k v,== I, i = I,……,η];第二判
斷單元45,用于判斷支持向量是否遍歷完,如果是,則啟動(dòng)SVDD分類器生成單元46,否則轉(zhuǎn)向第一計(jì)算單元43 ;SVDD分類器生成單元46,用于根據(jù)SVme訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD 分類器。以banana數(shù)據(jù)為例,對(duì)上述快速支持向量數(shù)據(jù)描述系統(tǒng)00生成SVDD分類器的完整過程包括1、畫出banana數(shù)據(jù)集的空間分布圖;2、應(yīng)用Bagging抽樣劃分模塊20對(duì) banana數(shù)據(jù)進(jìn)行Bagging進(jìn)行抽樣;3、應(yīng)用Map函數(shù)子SVDD分類器生成模塊30對(duì)其進(jìn)行子SVDD訓(xùn)練,給出數(shù)據(jù)原始空間和高維空間的分類器邊界圖;4、應(yīng)用Reduce函數(shù)合并子 SVDD分類器模塊40對(duì)子SVDD進(jìn)行合并,給出數(shù)據(jù)原始空間和高維空間的分類器邊界圖; 5、最后得出整體的SVDD分類器。綜上,本發(fā)明從SVDD的訓(xùn)練算法上進(jìn)行改進(jìn),首先通過將海量的訓(xùn)練數(shù)據(jù)集進(jìn)行Bagging抽樣子數(shù)據(jù)集的劃分,即生成η個(gè)數(shù)量相等的子數(shù)據(jù)集;其次利用Map函數(shù)將某個(gè)子數(shù)據(jù)集用于生成子分類器;最后利用Reduce函數(shù)將子分類器進(jìn)行合并,生成最后的分類器。由于SVDD本身是通過封閉的球體作為分界面,其性質(zhì)是閉環(huán)的,因此通過這樣的Map/ Reduce方式,其訓(xùn)練的性能與原來是一樣的。通過本發(fā)明的方法和系統(tǒng),可以降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),同時(shí)利用集群的計(jì)算能力,加快其海量數(shù)據(jù)的訓(xùn)練速度,及防止訓(xùn)練中斷現(xiàn)象的產(chǎn)生,對(duì)于入侵檢測(cè)、故障檢測(cè)等傳統(tǒng)的海量數(shù)據(jù)級(jí)別的模式識(shí)別應(yīng)用問題都有一定的參考價(jià)值。應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換, 而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法,其特征在于,包括以下步驟 對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集D ;根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成η個(gè)子數(shù)據(jù)集,所述預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);根據(jù)所述η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,...... ,η)的Map任務(wù),并將所述Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算;在所述Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,...... ,n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器;其中,所述i、η為自然數(shù)。
2.根據(jù)權(quán)利要求I所述的快速支持向量數(shù)據(jù)描述方法,其特征在于,所述根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成η個(gè)子數(shù)據(jù)集具體包括獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)η值;應(yīng)用Bagging方式對(duì)所述訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子數(shù)據(jù)集/T"中;在所述子數(shù)據(jù)集中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止抽樣,否則更新所述訓(xùn)練數(shù)據(jù)集D,令 D=Dn{Dr4u……UD;,,再重復(fù)執(zhí)行前一步驟。
3.根據(jù)權(quán)利要求2所述的快速支持向量數(shù)據(jù)描述方法,其特征在于,所述步驟根據(jù)所述η個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的η個(gè)子分類器SVDDi = (1,......, η)的Map任務(wù)具體包括讀取所述子數(shù)據(jù)集A# ;獲取核參數(shù)、懲罰比例,其中所述核參數(shù)采用默認(rèn)的高斯核;根據(jù)所述核參數(shù)、懲罰比例,對(duì)所述子數(shù)據(jù)集ZTfc進(jìn)行訓(xùn)練建模;訓(xùn)練生成Map/Reduce編程架構(gòu)下的η個(gè)所述子分類器SVDDi = (1,......,η)的Map任務(wù)。
4.根據(jù)權(quán)利要求3所述的快速支持向量數(shù)據(jù)描述方法,其特征在于,所述將所述Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算具體包括啟動(dòng)所述Hadoop集群調(diào)度器對(duì)所述Map任務(wù)進(jìn)行調(diào)度運(yùn)行,所述調(diào)度器將η個(gè)所述 Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于Hadoop集群的分布式存儲(chǔ)系統(tǒng)中。
5.根據(jù)權(quán)利要求4所述的快速支持向量數(shù)據(jù)描述方法,其特征在于,所述Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子SVDDi = (1,......,n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器具體包括讀取所述子分類器SVDi = (1,......,n);獲取所述子分類器SVDDi = (1,......,n)的支持向量集……;計(jì)算所述支持向量集的每個(gè)樣本被多少個(gè)所述子分類器SVDDi = (1, ,η)包含,所計(jì)算結(jié)果記為Afri"'I每被一個(gè)所述子分類器SVDDi = α,......,η)包含,則令ytf,二 f +1;計(jì)算SFctk = {kfVi ' ==1,/=1,……, }. 根據(jù)所述SV_訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD分類器。
6.一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述系統(tǒng),其特征在于,包括訓(xùn)練數(shù)據(jù)集生成模塊、Bagging抽樣劃分模塊、Map函數(shù)子SVDD分類器生成模塊和Reduce函數(shù)合并子 SVDD分類器模塊;其中,所述訓(xùn)練數(shù)據(jù)集生成模塊,用于對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集D ;所述Bagging抽樣劃分模塊,用于根據(jù)預(yù)設(shè)置的參數(shù)、由所述訓(xùn)練數(shù)據(jù)集D生成n個(gè)子數(shù)據(jù)集,所述預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);所述Map函數(shù)子SVDD分類器生成模塊,用于根據(jù)所述n個(gè)子數(shù)據(jù)集,生成Map/Reduce編程架構(gòu)下的n個(gè)子分類器SVDDi = (1,......,n)的Map任務(wù),并將所述Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算;所述Reduce函數(shù)合并子SVDD分類器模塊,用于在所述Hadoop集群調(diào)度器運(yùn)算完成后,調(diào)用Map/Reduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi = (1,......, n)的合并,得到最后訓(xùn)練數(shù)據(jù)集的SVDD分類器;其中,所述i、n為自然數(shù)。
7.根據(jù)權(quán)利要求6所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其特征在于,所述Bagging抽樣劃分模塊包括n值獲取單元,用于獲取預(yù)計(jì)要抽樣的子訓(xùn)練集的個(gè)數(shù)n值;抽樣單元,用于應(yīng)用Bagging方式對(duì)所述訓(xùn)練數(shù)據(jù)集D進(jìn)行抽樣,在所抽樣本不重復(fù)時(shí),將所抽樣本加入到子數(shù)據(jù)集Ama中;第一判斷單元,用于在所述子數(shù)據(jù)集ITa中所包含樣本的個(gè)數(shù)達(dá)到預(yù)設(shè)的個(gè)數(shù)時(shí),判斷所有子數(shù)據(jù)集是否已全部完成抽樣,如果是,則停止抽樣,否則更新所述訓(xùn)練數(shù)據(jù)集D,令 D=D^Drh u……ud,再啟動(dòng)所述抽樣單元。
8.根據(jù)權(quán)利要求6所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其特征在于,所述Map函數(shù)子 SVDD分類器生成模塊包括第一數(shù)據(jù)讀取單元,用于讀取所述子數(shù)據(jù)集只 6 ;第一參數(shù)獲取單元,用于獲取核參數(shù)、懲罰比例,其中所述核參數(shù)采用默認(rèn)的高斯核;訓(xùn)練建模單元,用于根據(jù)所述核參數(shù)、懲罰比例,對(duì)所述子數(shù)據(jù)集馬-進(jìn)行訓(xùn)練建模;子分類器生成單元,用于訓(xùn)練生成Map/Reduce編程架構(gòu)下的n個(gè)所述子分類器SVDDi =a,......, )的 Map 任務(wù)。
9.根據(jù)權(quán)利要求8所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其特征在于,所述Map函數(shù)子 SVDD分類器生成模塊還包括運(yùn)算單元,用于啟動(dòng)所述Hadoop集群調(diào)度器對(duì)所述Map任務(wù)進(jìn)行調(diào)度運(yùn)行,所述調(diào)度器將n個(gè)所述Map任務(wù)交由Hadoop集群的中多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)于 Hadoop集群的分布式存儲(chǔ)系統(tǒng)中。
10.根據(jù)權(quán)利要求6所述的快速支持向量數(shù)據(jù)描述系統(tǒng),其特征在于,所述Reduce函數(shù)合并子SVDD分類器模塊包括第二數(shù)據(jù)讀取單元,用于讀取所述子分類器SVDDi = (1,...... ,n);第二參數(shù)獲取單元,用于獲取所述子分類器SVDDi = (1,......,n)的支持向量集SV = {sv;vdd',……,燈,}.,第一計(jì)算單元,用于計(jì)算所述支持向量集的每個(gè)樣本被多少個(gè)所述子分類器SVDDi = α, , )包含,所計(jì)算結(jié)果記為每被一個(gè)所述子分類器SVDDi = (1, , n)包含,則令C 4嚴(yán)—+1;第二計(jì)算單元,用于計(jì)算從_ =Wf ==U = 1,……,《}.第二判斷單元,用于判斷支持向量是否遍歷完,如果是,則啟動(dòng)所述SVDD分類器生成單元,否則轉(zhuǎn)向所述第一計(jì)算單元;SVDD分類器生成單元,用于根據(jù)所述SVme訓(xùn)練生成訓(xùn)練數(shù)據(jù)集的SVDD分類器。
全文摘要
本發(fā)明涉及一種基于Map/Reduce的快速支持向量數(shù)據(jù)描述方法及系統(tǒng),其中方法包括對(duì)用于支持向量數(shù)據(jù)描述的數(shù)據(jù)進(jìn)行預(yù)處理,生成支持向量數(shù)據(jù)描述的訓(xùn)練數(shù)據(jù)集D;根據(jù)預(yù)設(shè)置的參數(shù)、由訓(xùn)練數(shù)據(jù)集D生成n個(gè)子數(shù)據(jù)集,預(yù)設(shè)置的參數(shù)包括訓(xùn)練數(shù)據(jù)集的劃分個(gè)數(shù);根據(jù)n個(gè)子數(shù)據(jù)集,生成MapReduce編程架構(gòu)下的n個(gè)子分類器SVDDi=(1,......,n)的Map任務(wù),并將Map任務(wù)交由Hadoop集群調(diào)度器進(jìn)行運(yùn)算;調(diào)用MapReduce編程架構(gòu)下的Reduce任務(wù)進(jìn)行子分類器SVDDi=(1,......,n)的合并,得到訓(xùn)練數(shù)據(jù)集的SVDD分類器。本發(fā)明可以在處理海量數(shù)據(jù)時(shí),降低SVDD訓(xùn)練數(shù)據(jù)集的維數(shù),加快SVDD訓(xùn)練速度,同時(shí)避免訓(xùn)練中斷。
文檔編號(hào)G06F17/30GK102591940SQ20111044372
公開日2012年7月18日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者吳鴻偉, 莊進(jìn)發(fā), 羅佳 申請(qǐng)人:廈門市美亞柏科信息股份有限公司