一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng),所述流數(shù)據(jù)分類系統(tǒng)包括數(shù)據(jù)源處理器模塊、流數(shù)據(jù)分類裝置及評(píng)價(jià)處理器模塊,數(shù)據(jù)源處理器模塊接收外部數(shù)據(jù)流并將數(shù)據(jù)流實(shí)時(shí)地發(fā)送到流數(shù)據(jù)分類裝置中進(jìn)行分類判定,評(píng)價(jià)處理器模塊用于對(duì)分類判定結(jié)果進(jìn)行在線評(píng)價(jià)以得到的分類判定結(jié)果正確率并予以輸出;另外,基于流數(shù)據(jù)分類的思想,還提供了一種流數(shù)據(jù)分類方法。本發(fā)明采用數(shù)據(jù)的水平化分割方法,實(shí)現(xiàn)了數(shù)據(jù)的橫向擴(kuò)展,數(shù)據(jù)的水平擴(kuò)展進(jìn)一步實(shí)現(xiàn)了相關(guān)組建的分布式快速處理。
【專利說明】一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種大數(shù)據(jù)處理領(lǐng)域,主要是指用于對(duì)大數(shù)據(jù)進(jìn)行預(yù)先分類處理,以 供后續(xù)的實(shí)時(shí)計(jì)算,更加具體地來說,是涉及一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng)。
【背景技術(shù)】
[0002] 云計(jì)算、物聯(lián)網(wǎng)、移動(dòng)互連和社交媒體等新興信息技術(shù)和應(yīng)用模式的快速發(fā)展,促 使全球數(shù)據(jù)量急劇增加,推動(dòng)人類社會(huì)邁入大數(shù)據(jù)時(shí)代,數(shù)據(jù)的量級(jí)、產(chǎn)生速率、復(fù)雜性和 價(jià)值獲取的實(shí)時(shí)性等要求,對(duì)大數(shù)據(jù)處理也提出了新的更高要求,以Hadoop為代表的批處 理已經(jīng)無法滿足時(shí)代發(fā)展的浪潮。
[0003] 在當(dāng)下這個(gè)大數(shù)據(jù)時(shí)代,據(jù)使用場(chǎng)景的不同,大數(shù)據(jù)處理已經(jīng)逐漸的發(fā)展向兩個(gè) 極端:批處理和流處理。其中,Hadoop就是批處理的代表,Hadoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架 構(gòu),其實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱HDFS。HDFS 有尚容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量 (high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集Qarge data set) 的應(yīng)用程序。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce, HDFS為海量的數(shù)據(jù)提供 了存儲(chǔ),則MapReduce為海量的數(shù)據(jù)提供了計(jì)算。而流處理即是通過數(shù)據(jù)流計(jì)算系統(tǒng)來實(shí) 現(xiàn),其中,SAM0A、Storm(是TwittcrS開源出來的一個(gè)分布式的實(shí)時(shí)計(jì)算系統(tǒng))和s4(Simple Scalable Streaming System的簡(jiǎn)稱,其是一個(gè)分布式流處理引擎)都是當(dāng)前比較典型的數(shù) 據(jù)流計(jì)算系統(tǒng)。
[0004] 其中,Storm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)流計(jì)算系統(tǒng),可以方便地在一個(gè)計(jì)算 機(jī)集群中編寫與擴(kuò)展復(fù)雜的實(shí)時(shí)計(jì)算,Storm之于實(shí)時(shí)處理,就好比Hadoop之于批處理。 Storm可以很方便的對(duì)無邊界的數(shù)據(jù)流進(jìn)行實(shí)時(shí)處理。Storm保證每個(gè)消息都會(huì)得到處理, 而且處理速度很快,即使在一個(gè)小集群中,每秒都可以處理數(shù)以百萬計(jì)的消息。Storm可以 用于實(shí)時(shí)分析(Realtime Analytics)、在線機(jī)器學(xué)習(xí) (Online Machine Learning)、連續(xù)計(jì) 算(Continuous Computation)、分布式遠(yuǎn)程調(diào)用(DRPC)和 ETL 等。
[0005] SAMOA作為一個(gè)新興的流數(shù)據(jù)處理引擎受到了業(yè)界的廣泛重視,因?yàn)镾AMOA不僅 是一個(gè)平臺(tái)而且也是一個(gè)流數(shù)據(jù)的機(jī)器學(xué)習(xí)庫(kù)。在SAMOA的框架設(shè)計(jì)中不僅整合了常用的 流處理引擎,如Storm和S4等,還集成了典型的非分布式流數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)m〇A (Massive Online Analysis)等。不僅如此,SAMOA允許開發(fā)人員根據(jù)問題的需要集成新的流處理引 擎或者其它流數(shù)據(jù)機(jī)器學(xué)習(xí)組件于系統(tǒng)中。這些功能使得使用SAMOA開發(fā)流數(shù)據(jù)機(jī)器學(xué)習(xí) 算法不僅方便,而且開發(fā)的分布式流數(shù)據(jù)機(jī)器學(xué)習(xí)算法,可以根據(jù)實(shí)際需要運(yùn)行在多種流 處理引擎上而無需任何更改。
[0006] 分類是機(jī)器學(xué)習(xí)中的一個(gè)重要研究課題。它的目標(biāo)是構(gòu)造一個(gè)分類器,對(duì)未知類 標(biāo)記的屬性集指定最適合的類標(biāo)簽。但是流數(shù)據(jù)的機(jī)器學(xué)習(xí)不同于傳統(tǒng)的機(jī)器學(xué)習(xí),流數(shù) 據(jù)機(jī)器學(xué)習(xí)在傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)上結(jié)合流數(shù)據(jù)的特性又提出了新的基本要求,例如:一 次處理一條數(shù)據(jù)而且只處理一次;使用有限的內(nèi)存;有限的時(shí)間內(nèi)完成數(shù)據(jù)處理;隨時(shí)可 以進(jìn)行預(yù)測(cè)等等。因此在流數(shù)據(jù)機(jī)器學(xué)習(xí)設(shè)計(jì)的時(shí)候也需要將這些基本要求考慮進(jìn)去。 [0007]總之,在一般的基于Hadoop構(gòu)建的云服務(wù)和應(yīng)用中,快速實(shí)時(shí)與大數(shù)據(jù)量往往不 可兼得。如何更好更快實(shí)時(shí)地處理大量流數(shù)據(jù),就成為云計(jì)算服務(wù)和應(yīng)用必須解決的問題 之一。
【發(fā)明內(nèi)容】
[000S]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種流數(shù)據(jù)的分類方法及 其裝置和系統(tǒng),用于解決現(xiàn)有技術(shù)Hadoop無法處理實(shí)時(shí)數(shù)據(jù)的問題。
[0009]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供以下技術(shù)方案:
[0010] -種流數(shù)據(jù)分類裝置,包括:分布處理器模塊,用于接收包括內(nèi)容事件的流數(shù)據(jù), 并將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以 隨機(jī)均衡地分發(fā)出去;屬性統(tǒng)計(jì)處理器模塊,用于將接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù) 中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將 所述屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新輸出;聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述 測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng)計(jì)信息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的 后驗(yàn)概率作為待實(shí)時(shí)分類判定的所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出。
[0011]優(yōu)選地,在上述流數(shù)據(jù)分類裝置中,所述測(cè)試數(shù)據(jù)和所述訓(xùn)練數(shù)據(jù)為同一流數(shù)據(jù)。 [0012] 優(yōu)選地,在上述流數(shù)據(jù)分類裝置中,所述屬性統(tǒng)計(jì)處理器模塊包括:多個(gè)本地機(jī)器 學(xué)習(xí)模塊,分別用于對(duì)應(yīng)接收所述訓(xùn)練數(shù)據(jù),并對(duì)所接收到的所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事 件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì) 信息予以輸出;全局機(jī)器學(xué)習(xí)模塊,用于接收所述屬性統(tǒng)計(jì)信息,并將予以實(shí)時(shí)地輸出。 [00 13] 優(yōu)選地,在上述流數(shù)據(jù)分類裝置中,包括一個(gè)或者至少多個(gè)所述聚合處理器模塊, 且每個(gè)所述聚合處理器模塊彼此獨(dú)立。
[0014]作為上述流數(shù)據(jù)分類裝置及其優(yōu)選方案的進(jìn)一步優(yōu)化,所述屬性統(tǒng)計(jì)信息包括: 所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性值、及其類標(biāo)記和權(quán)重。
[0015]另外,本發(fā)明還提供了一種流數(shù)據(jù)分類系統(tǒng),包括:數(shù)據(jù)源處理器模塊,用于接收 外部數(shù)據(jù)流,且將所述數(shù)據(jù)流包裝成包括多個(gè)內(nèi)容事件的流數(shù)據(jù),并予以實(shí)時(shí)輸出;分布 處理器模塊,用于接收包括多個(gè)內(nèi)容事件的所述流數(shù)據(jù),并將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試 數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去;屬性統(tǒng)計(jì) 處理器模塊,用于接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行 統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新輸 出;聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng)計(jì)信息 計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判定的所 述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出。
[0016] 優(yōu)選地,在上述流數(shù)據(jù)分類系統(tǒng)中,所述流數(shù)據(jù)分類系統(tǒng)還包括:評(píng)價(jià)處理器模 塊,用于接收所述分類判定結(jié)果,并利用時(shí)間窗的方法對(duì)所述分類判定結(jié)果進(jìn)行實(shí)時(shí)的評(píng) 價(jià)和判斷,以得到所述分類判定結(jié)果的正確率并予以輸出。
[0017]最后,本發(fā)明還提供了一種流數(shù)據(jù)分類方法,包括:接收外部數(shù)據(jù)流,且將所述數(shù) 據(jù)流包裝成包括多個(gè)內(nèi)容事件的流數(shù)據(jù),并予以實(shí)時(shí)輸出·,將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試 數(shù)據(jù)和訓(xùn)練數(shù)據(jù),并將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去;對(duì)所述訓(xùn) 練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì),以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信 息,并將所述屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新輸出;根據(jù)所述屬性統(tǒng)計(jì)信息計(jì)算得到所述測(cè)試數(shù) 據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判定的所述測(cè)試數(shù)據(jù)的分類判 定結(jié)果并予以輸出。
[0018] 優(yōu)選地,在上述流數(shù)據(jù)分類方法中,所述流數(shù)據(jù)分類方法還包括:利用時(shí)間窗的方 法對(duì)所述分類判定結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷,以得到所述分類判定結(jié)果的正確率并予以 輸出。
[0019] 優(yōu)選地,在上述流數(shù)據(jù)分類方法中,利用貝葉斯公式計(jì)算得到所述測(cè)試數(shù)據(jù)的后 驗(yàn)概率,并假設(shè)所述每個(gè)所述內(nèi)容事件的屬性值對(duì)給定類的影響?yīng)毩⒂谄渌鼘傩缘闹怠?br>
[0020] 綜上所述,本發(fā)明具有以下有益效果:
[0021] 第一,本發(fā)明提出的一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng)與現(xiàn)有的技術(shù)相比具 有可以在線處理高速流數(shù)據(jù)的特性和先測(cè)試再訓(xùn)練的特點(diǎn)。Storm和SAMOA是流數(shù)據(jù)處理 架構(gòu),數(shù)據(jù)水平擴(kuò)展的加入可以使得模型適用于高速數(shù)據(jù)的處理。雖然Prequential評(píng)價(jià) 本身提供了先測(cè)試再訓(xùn)練的功能,但是在流數(shù)據(jù)分類系統(tǒng)中,通過在分布處理器模塊中令 測(cè)試數(shù)據(jù)流和訓(xùn)練數(shù)據(jù)流都為源數(shù)據(jù)流,只不過先處理測(cè)試數(shù)據(jù)流,而后處理訓(xùn)練數(shù)據(jù)流, 而且訓(xùn)練數(shù)據(jù)流要經(jīng)過屬性統(tǒng)計(jì)處理器模塊后轉(zhuǎn)化為屬性流進(jìn)入聚合處理器模塊,由此而 實(shí)現(xiàn)了先測(cè)試在訓(xùn)練的架構(gòu)。
[0022] 第二,本發(fā)明與經(jīng)典的流數(shù)據(jù)處理平臺(tái)Μ0Α的樸素貝葉斯分類方法相比具有分布 式的特性,分布式首先體現(xiàn)在數(shù)據(jù)的底層處理平臺(tái)Storm是分布式處理架構(gòu),另外,體現(xiàn)在 該模型采用的SAMOA架構(gòu)是分布式的,而且,利用數(shù)據(jù)水平擴(kuò)展實(shí)現(xiàn)了相關(guān)組建的分布式 快速處理。
[0023] 第三,本發(fā)明采用了數(shù)據(jù)的水平化分割方法,實(shí)現(xiàn)了數(shù)據(jù)的橫向擴(kuò)展,數(shù)據(jù)的水平 擴(kuò)展體現(xiàn)在屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊中,用戶可以根據(jù)任務(wù)問題的需要進(jìn)行 相關(guān)處理器模塊的擴(kuò)展來實(shí)現(xiàn)高速流數(shù)據(jù)的分類。
【專利附圖】
【附圖說明】
[0024] 圖1顯示為Storm的是系統(tǒng)架構(gòu)原理圖。
[0025] 圖2為Storm的拓?fù)浣Y(jié)構(gòu)示意圖。
[0026] 圖3為SAMOA的框架結(jié)構(gòu)示意圖。
[0027] 圖4為SAMOA的拓?fù)浣Y(jié)構(gòu)示意圖。
[0028] 圖5為本發(fā)明一種流數(shù)據(jù)分類裝置的原理圖。
[0029] 圖6為聚合處理器模塊中數(shù)據(jù)水平并行處理的原理圖。
[0030] 圖7為本發(fā)明一種流數(shù)據(jù)分類系統(tǒng)的原理示意圖。
[0031] 圖8為本發(fā)明一種流數(shù)據(jù)分類方法的流程圖。
[0032] 附圖標(biāo)號(hào)說明
[0033] S10?S90方法步驟
【具體實(shí)施方式】
[0034] 以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書 所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的具體實(shí) 施方式加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離 本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施 例中的特征可以相互組合。
[0035] 本發(fā)明以樸素貝葉斯方法為基礎(chǔ),利用Storm和SAMOA平臺(tái)構(gòu)建了一個(gè)分布式水 平并行樸素貝葉斯流數(shù)據(jù)分類模型。該模型不同于傳統(tǒng)的樸素貝葉斯分類方法,傳統(tǒng)的分 類算法,需要將數(shù)據(jù)集切分為訓(xùn)練集和測(cè)試集,而且訓(xùn)練集的數(shù)據(jù)一般不參與模型的性能 測(cè)試。分布式水平并行樸素貝葉斯分類模型采用了流數(shù)據(jù)處理中典型的先測(cè)試再訓(xùn)練的方 法來進(jìn)行數(shù)據(jù)的測(cè)試和訓(xùn)練。該方法也不同于典型的流數(shù)據(jù)處理平臺(tái)Μ0Α中的樸素貝葉斯 分類方法,因?yàn)棣?Α是一個(gè)非分布式的流數(shù)據(jù)處理平臺(tái),Μ0Α中的樸素貝葉斯分類器僅適用 于非分布式的流數(shù)據(jù)分類。分布式水平樸素貝葉斯流數(shù)據(jù)分類模型采用數(shù)據(jù)水平并行化 方法來進(jìn)行數(shù)據(jù)的并行處理,水平并行化就是將大的數(shù)據(jù)集等量地分割到對(duì)應(yīng)的數(shù)據(jù)子集 中,并交由系統(tǒng)的相應(yīng)的子處理單元進(jìn)行數(shù)據(jù)的處理。在本文提出流數(shù)據(jù)分類模型中,采用 了 SAMOA中的Prequential評(píng)價(jià)任務(wù)的數(shù)據(jù)源處理模塊進(jìn)行外部流數(shù)據(jù)的接收和發(fā)射,使 用分類評(píng)價(jià)模塊對(duì)分布式樸素貝葉斯分類模型的輸出結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)。使用Storm作 為分布式水平并行樸素貝葉斯模型的底層處理平臺(tái)。實(shí)驗(yàn)結(jié)果表明,基于Storm和SAMOA 的水平樸素貝葉斯流數(shù)據(jù)分類模型不僅滿足了流數(shù)據(jù)處理的基本要求,而且分類效果幾乎 接近傳統(tǒng)的樸素貝葉斯方法和經(jīng)典的非分布式流數(shù)據(jù)處理平臺(tái)Μ0Α中樸素貝葉斯分類方 法的效果。
[0036] Storm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)流計(jì)算系統(tǒng),可以方便地在一個(gè)計(jì)算機(jī)集群中 編寫與擴(kuò)展復(fù)雜的實(shí)時(shí)計(jì)算,Storm之于實(shí)時(shí)處理,就好比Hadoop之于批處理。Storm保證 每個(gè)消息都會(huì)得到處理,而且它的處理速度很快,在一個(gè)小集群中,每秒可以處理數(shù)以百萬 計(jì)的消息,而且可以使用任意編程語言來開發(fā)。
[0037] Storm的集群表面上看和Hadoop的集群非常相似。但是在Hadoop上運(yùn)行的是 MapReduce的Job,而在Storm上運(yùn)行的是Topology。它們根本的區(qū)別就是,一個(gè)MapReduce Job最終會(huì)結(jié)束,而一個(gè)Topology永遠(yuǎn)不會(huì)結(jié)束(除非顯式的終止)。Storm作為典型的流 處理引擎,它的應(yīng)用場(chǎng)景有實(shí)時(shí)分析、在線機(jī)器學(xué)習(xí)、連續(xù)計(jì)算、分布式RPC、分布式ETL等。
[0038] Storm采用的是主從系統(tǒng)架構(gòu),如圖1所示。在Storm的集群里面有兩種節(jié)點(diǎn):即 控制節(jié)點(diǎn)(master node)和工作節(jié)點(diǎn)(worker node)。其中,在控制節(jié)點(diǎn)上面運(yùn)行一個(gè)后臺(tái) 程序Nimbus,它的作用類似Hadoop里面的JobTracker。Nimbus負(fù)責(zé)全局的資源分配、任務(wù) 調(diào)度、狀態(tài)監(jiān)控和故障檢測(cè)等;而每一個(gè)工作節(jié)點(diǎn)上面運(yùn)行一個(gè)叫做Supervisor的節(jié)點(diǎn), Supervisor負(fù)責(zé)監(jiān)聽分配給它的那臺(tái)機(jī)器的工作,根據(jù)需要啟動(dòng)或者關(guān)閉工作進(jìn)程。每一 個(gè)工作進(jìn)程執(zhí)行一個(gè)Topology的一個(gè)子集;一個(gè)運(yùn)行的Topology由運(yùn)行在很多機(jī)器上的 很多工作進(jìn)程組成。Nimbus和Supervisor都能快速失敗,因?yàn)樗鼈兪菬o狀態(tài)的,系統(tǒng)的狀 態(tài)信息保存在Zookeeper或者磁盤設(shè)備上,這樣一來它們就變得十分健壯,兩者的協(xié)調(diào)工 作是由Zooke印er來完成的,ZooKeeper用于管理集群中的不同組件。
[0039] Topology是Storm的邏輯單元,所有組件的排列(Spouts和Bolts)及它們的連接 被稱為Topology。Storm中一個(gè)實(shí)時(shí)應(yīng)用的計(jì)算任務(wù)打包為Topology后發(fā)布,Topology - 旦提交永遠(yuǎn)運(yùn)行,除非顯式地去終止。一個(gè)Topology是由一系列Spout和Bolt構(gòu)成的有 向無環(huán)圖,通過數(shù)據(jù)流(stream)實(shí)現(xiàn)Spout和Bolt之間的關(guān)聯(lián),如圖2所示。其中,Spout 負(fù)責(zé)從外部數(shù)據(jù)源不間斷地讀取流數(shù)據(jù),并以Tuple元組的形式發(fā)送給相應(yīng)的Bolt,Bolt 負(fù)責(zé)對(duì)接收到的數(shù)據(jù)流進(jìn)行計(jì)算,實(shí)現(xiàn)過濾、聚合、查詢等具體功能,可以級(jí)聯(lián),也可以向外 發(fā)送數(shù)據(jù)流。
[0040] SAMOA (Scalable Advanced Massive Online Analysis)是由雅虎開源的流數(shù)據(jù) 在線機(jī)器學(xué)習(xí)的框架,和其它絕大多數(shù)大數(shù)據(jù)處理框架一樣,SAMOA也是用Java編寫的。 SAMOA使用了可插拔的體系架構(gòu),允許使用多種分布式流處理引擎,例如Storm和S4等。 SAMOA類似于運(yùn)行在Hadoop上的批處理機(jī)器學(xué)習(xí)工具M(jìn)ahout,只不過SAMOA用于在線的流 式機(jī)器學(xué)習(xí)。
[0041] SAMOA包含常用流處理引擎的抽象,允許開發(fā)人員方便地開發(fā)流處理和相關(guān)機(jī)器 學(xué)習(xí)的應(yīng)用,而無需關(guān)心具體的流處理引擎的底層邏輯細(xì)節(jié)。不僅如此,SAMOA允許開發(fā)人 員根據(jù)問題的需要集成新的流處理引擎或者其它流數(shù)據(jù)機(jī)器學(xué)習(xí)組件在系統(tǒng)中。這些功能 使得使用SAMOA開發(fā)的分布式流數(shù)據(jù)機(jī)器學(xué)習(xí)算法,可以根據(jù)實(shí)際需要可以運(yùn)行在多種流 處理引擎上。
[0042] 另外,見圖3,算法模塊包含了已經(jīng)集成在SAMOA中的分類和聚類算法,API部分用 于在SAMOA框架下開發(fā)新的算法和模型。機(jī)器學(xué)習(xí)接口模塊集成了 M0A(Massive Online Analysis)并且允許開發(fā)人員將其它機(jī)器學(xué)習(xí)系統(tǒng)集成到SAMOA框架中。API模塊和機(jī)器 學(xué)習(xí)接口模塊可以極大地提高開發(fā)人員的開發(fā)速度。流數(shù)據(jù)引擎接口模塊允許開發(fā)者集成 新的流數(shù)據(jù)引擎進(jìn)入SAMOA框架。為了集成新的流數(shù)據(jù)引擎,開發(fā)者必須使用SAMOA流數(shù) 據(jù)引擎模塊。當(dāng)前,在SAMOA中已經(jīng)集成了 SAM0A-S4,SAMOA-Storm和SAMOA-Samza等。 [0043] SAMOA的基本拓?fù)浣M件有:處理器、流、內(nèi)容事件和任務(wù)。在SAMOA中,處理器是 最基本的邏輯組件,所有的邏輯處理都在處理器中完成,處理器通常都包裝在處理器模塊 PI (Processing Item)中,EPI是負(fù)責(zé)數(shù)據(jù)接收的PI。SAMOA拓?fù)浣Y(jié)構(gòu)如圖4所示,開發(fā)者 可以通過繼承處理器的方法實(shí)現(xiàn)自己的特定處理單元。SAMOA把信息或者事件定義為內(nèi)容 事件,顧名思義,就是包含內(nèi)容的事件,內(nèi)容事件通過處理器包裝在流中,然后通過流傳遞 給其它的處理器進(jìn)行后續(xù)的處理。流是連接處理器的組件,流可以由產(chǎn)生它的處理器連接 到多個(gè)處理器。任務(wù)類似于Hadoop中的工作。任務(wù)是系統(tǒng)執(zhí)行的實(shí)體,拓?fù)浔仨毝x在任 務(wù)中。
[0044] 本發(fā)明以樸素貝葉斯方法為基礎(chǔ),利用Storm和SAMOA平臺(tái)來實(shí)現(xiàn)對(duì)流數(shù)據(jù)進(jìn)行 分布式水平并行的分類。本發(fā)明不同于傳統(tǒng)的樸素貝葉斯分類方法,傳統(tǒng)的分類算法,需 要將數(shù)據(jù)集切分為訓(xùn)練集和測(cè)試集,而且訓(xùn)練集的數(shù)據(jù)一般不參與分類方法的性能測(cè)試。 而本發(fā)明則采用了流數(shù)據(jù)處理中典型的先測(cè)試再訓(xùn)練的方法來進(jìn)行數(shù)據(jù)的測(cè)試和訓(xùn)練;同 時(shí),本發(fā)明也不同于典型的流數(shù)據(jù)處理平臺(tái)Μ0Α中的樸素貝葉斯分類方法,因?yàn)棣?Α是一個(gè) 非分布式的流數(shù)據(jù)處理平臺(tái),Μ0Α中的樸素貝葉斯分類器僅適用于非分布式的流數(shù)據(jù)分類, 而本發(fā)明則是通過Storm流處理引擎來實(shí)現(xiàn)流數(shù)據(jù)的分布式處理分類;另外,本發(fā)明還采 用數(shù)據(jù)水平并行化方法來進(jìn)行數(shù)據(jù)的并行處理,水平并行化就是將大的數(shù)據(jù)集(也即流數(shù) 據(jù))等量地分割到對(duì)應(yīng)的數(shù)據(jù)子集中,并交由系統(tǒng)的相應(yīng)的子處理單元進(jìn)行數(shù)據(jù)的處理。 經(jīng)過實(shí)驗(yàn)結(jié)果表明,本發(fā)明不僅滿足了流數(shù)據(jù)處理的基本要求,而且分類效果也接近傳統(tǒng) 的樸素貝葉斯方法和經(jīng)典的非分布式流數(shù)據(jù)處理平臺(tái)M0A中樸素貝葉斯分類方法的效果 (因?yàn)?,在目前技術(shù)大背景下,流數(shù)據(jù)機(jī)器學(xué)習(xí)的效果只能無限接近傳統(tǒng)機(jī)器學(xué)習(xí)方法,而 無法等價(jià)齊觀)D [0045] 實(shí)施例一
[0046]請(qǐng)參見圖5,示出了本發(fā)明一種流數(shù)據(jù)分類裝置的原理圖,從示圖來看,所述流數(shù) 據(jù)分類裝置包括:
[0047]分布處理器模塊,用于接收包括內(nèi)容事件的流數(shù)據(jù),并將所述流數(shù)據(jù)分別標(biāo)記為 測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去;
[0048]屬性統(tǒng)計(jì)處理器模塊,用于將接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容 事件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng) 計(jì)信息實(shí)時(shí)地更新輸出;
[0049]聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng) 計(jì)信息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判 定的所述測(cè)試數(shù)據(jù)的分類判定并予以輸出。
[0050] 具體地,所述分布處理器模塊用于接收數(shù)據(jù)流,并且將訓(xùn)練數(shù)據(jù)隨機(jī)分發(fā)到多個(gè) 屬性統(tǒng)計(jì)處理器模塊中,同時(shí)還將測(cè)試數(shù)據(jù)隨機(jī)分發(fā)到多個(gè)聚合處理器模塊,以進(jìn)行實(shí)時(shí) 的數(shù)據(jù)分類預(yù)測(cè)。其中,分布處理器模塊將以隨機(jī)的方式將數(shù)據(jù)流發(fā)送出去,即將測(cè)試數(shù)據(jù) 隨機(jī)均衡的發(fā)送到N個(gè)獨(dú)立的聚合處理器模塊中,以及將訓(xùn)練數(shù)據(jù)隨機(jī)均衡的發(fā)送到N個(gè) 獨(dú)立的屬性統(tǒng)計(jì)處理器模塊中。另外,所述數(shù)據(jù)流既是訓(xùn)練數(shù)據(jù)也是測(cè)試數(shù)據(jù),g卩訓(xùn)練數(shù)據(jù) 和測(cè)試數(shù)據(jù)屬于同一數(shù)據(jù),只不過測(cè)試數(shù)據(jù)先進(jìn)入系統(tǒng),訓(xùn)練數(shù)據(jù)后進(jìn)入系統(tǒng)。需要理解的 是,屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊的數(shù)量是根據(jù)用戶數(shù)據(jù)處理需要來進(jìn)行設(shè)定, 且多個(gè)所述屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊是彼此獨(dú)立工作的。
[0051]具體地,所述屬性統(tǒng)計(jì)處理器模塊用于接收來自分布處理器模塊的訓(xùn)練數(shù)據(jù)流, 屬性統(tǒng)計(jì)處理器模塊對(duì)數(shù)據(jù)的所有屬性信息進(jìn)行統(tǒng)計(jì),主要是利用MOA(Massive Online Analysis)的 Attribute Observer 進(jìn)行屬性信息的統(tǒng)計(jì),AttributeClassObserver 是 Μ0Α中用獲得屬性信息統(tǒng)計(jì)和分布的組件,統(tǒng)計(jì)信息被用來計(jì)算先驗(yàn)概率,例如,使用 NominalAttributeClassOberver 來進(jìn)行標(biāo)稱屬性的統(tǒng)計(jì),使用 GaussianNumericAttribut eClassObserver來進(jìn)行數(shù)值型屬性的統(tǒng)計(jì)。統(tǒng)計(jì)信息包括每一條訓(xùn)練數(shù)據(jù)的每一個(gè)屬性 的屬性值、類標(biāo)記及權(quán)重。并且,根據(jù)獲得的屬性統(tǒng)計(jì)信息,按照系統(tǒng)的設(shè)計(jì)要求將屬性統(tǒng) 計(jì)信息實(shí)時(shí)地更新到聚合處理器模塊。需要注意的是,屬性統(tǒng)計(jì)處理器模塊會(huì)把每一條數(shù) 據(jù)發(fā)送給所有的后續(xù)鏈接組件(例如聚合處理器模塊),而不是隨機(jī)發(fā)給其中一個(gè),即屬性 統(tǒng)計(jì)處理器模塊會(huì)將所述屬性統(tǒng)計(jì)信息流數(shù)據(jù)發(fā)送到N個(gè)聚合處理器模塊中,而非其中一 個(gè)。這樣的目的是為了保證每個(gè)聚合處理器模塊里面的統(tǒng)計(jì)信息是一致的,否則無法保證 預(yù)測(cè)結(jié)果和合理性和一致性,或者說,如果不采用這種方式而是隨機(jī)(Shuffle)地發(fā)送方 式的話,則每個(gè)聚合處理器模塊里面的信息都是不完整的。
[0052] 進(jìn)一步地,所述用戶可以根據(jù)問題需要水平擴(kuò)展N個(gè)聚合處理器模塊,每個(gè)聚合 處理器模塊相互獨(dú)立工作,且每個(gè)聚合處理器模塊的處理模式可以參見圖6,每個(gè)聚合處 理器模塊包括:多個(gè)本地機(jī)器學(xué)習(xí)模塊,分別用于對(duì)應(yīng)接收所述訓(xùn)練數(shù)據(jù),并對(duì)所接收到的 所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性 統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息予以輸出;全局機(jī)器學(xué)習(xí)模塊,用于接收所述屬性統(tǒng)計(jì)信 息,并將予以實(shí)時(shí)地輸出。
[0053]具體地,聚合處理器模塊接收來自屬性統(tǒng)計(jì)處理器模塊的屬性統(tǒng)計(jì)信息和來自分 布處理器模塊的測(cè)試數(shù)據(jù)流,并且將最終分類的結(jié)果輸出或者對(duì)分類的結(jié)果進(jìn)行實(shí)時(shí)的評(píng) 價(jià)。聚合處理器模塊根據(jù)從屬性統(tǒng)計(jì)處理器模塊獲得的屬性統(tǒng)計(jì)信息計(jì)算屬性在類條件下 的后驗(yàn)概率(PUi/Ci))和先驗(yàn)概率(p( Ci))。當(dāng)有測(cè)試數(shù)據(jù)流需要被實(shí)時(shí)分類判定的時(shí)候 就可以根據(jù)獲得的屬性信息計(jì)算后驗(yàn)概率(即p(c」x)),然后選取最大的后驗(yàn)概率作為對(duì) 測(cè)試數(shù)據(jù)的分類判定輸出到系統(tǒng)的輸出模塊或者對(duì)分類結(jié)果的準(zhǔn)確率進(jìn)行實(shí)時(shí)的統(tǒng)計(jì)輸 出。
[0054] 實(shí)施例二
[0055]進(jìn)一步地,請(qǐng)參見圖7,本發(fā)明還提供了一種流數(shù)據(jù)分類系統(tǒng),從示圖來看,所述流 數(shù)據(jù)分類系統(tǒng)包括數(shù)據(jù)源處理器模塊、流數(shù)據(jù)分類裝置及評(píng)價(jià)處理器模塊,其中,所述數(shù)據(jù) 源處理器模塊接收外部數(shù)據(jù)流并將數(shù)據(jù)流實(shí)時(shí)地發(fā)送到流數(shù)據(jù)分類裝置中進(jìn)行分類判定, 所述評(píng)價(jià)處理器模塊用于對(duì)所述分類判定結(jié)果進(jìn)行在線評(píng)價(jià)以得到的所述分類判定結(jié)果 正確率并予以輸出。具體地,所述流數(shù)據(jù)分類裝置與上述實(shí)施例一中一樣,故所述流數(shù)據(jù)分 類系統(tǒng)具體包括:
[0056]數(shù)據(jù)源處理器模塊,用于接收外部數(shù)據(jù)流,且將所述數(shù)據(jù)流包裝成包括多個(gè)內(nèi)容 事件的流數(shù)據(jù),并予以實(shí)時(shí)輸出;
[0057]分布處理器模塊,用于接收包括多個(gè)內(nèi)容事件的所述流數(shù)據(jù),并將所述流數(shù)據(jù)分 別標(biāo)記為測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出 去;
[0058]屬性統(tǒng)計(jì)處理器模塊,用于接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事 件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì) 信息實(shí)時(shí)地更新輸出;
[0059]聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng) 計(jì)信息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判 定的所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出;
[0060]評(píng)價(jià)處理器模塊,用于接收所述分類判定結(jié)果,并利用時(shí)間窗的方法對(duì)所述分類 判定結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷,以得到所述分類判定結(jié)果的正確率并予以輸出。
[0061]進(jìn)一步地,應(yīng)當(dāng)理解,上述流數(shù)據(jù)分類系統(tǒng)也可不用評(píng)價(jià)處理器模塊對(duì)分類判定 結(jié)果進(jìn)行評(píng)價(jià),而直接予以輸出。在SAMOA中,評(píng)價(jià)處理器模塊的評(píng)價(jià)任務(wù)就是一個(gè)先測(cè)試 再訓(xùn)練的任務(wù)。
[0062]具體地,所述分布處理器模塊用于接收數(shù)據(jù)流,并且將訓(xùn)練數(shù)據(jù)隨機(jī)分發(fā)到多個(gè) 屬性統(tǒng)計(jì)處理器模塊中,同時(shí)還將測(cè)試數(shù)據(jù)隨機(jī)分發(fā)到多個(gè)聚合處理器模塊,以進(jìn)行實(shí)時(shí) 的數(shù)據(jù)分類預(yù)測(cè)。其中,分布處理器模塊將以隨機(jī)的方式將數(shù)據(jù)流發(fā)送出去,即將測(cè)試數(shù)據(jù) 隨機(jī)均衡的發(fā)送到N個(gè)獨(dú)立的聚合處理器模塊中,以及將訓(xùn)練數(shù)據(jù)隨機(jī)均衡的發(fā)送到n個(gè) 獨(dú)立的屬性統(tǒng)計(jì)處理器模塊中。另外,所述數(shù)據(jù)流既是訓(xùn)練數(shù)據(jù)也是測(cè)試數(shù)據(jù),g卩訓(xùn)練數(shù)據(jù) 和測(cè)試數(shù)據(jù)屬于同一數(shù)據(jù),只不過測(cè)試數(shù)據(jù)先進(jìn)入系統(tǒng),訓(xùn)練數(shù)據(jù)后進(jìn)入系統(tǒng)。需要理解的 是,屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊的數(shù)量是根據(jù)用戶數(shù)據(jù)處理需要來進(jìn)行設(shè)定, 且多個(gè)所述屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊是彼此獨(dú)立工作的。
[0063] 具體地,所述屬性統(tǒng)計(jì)處理器模塊用于接收來自分布處理器模塊的訓(xùn)練數(shù)據(jù)流, 屬性統(tǒng)計(jì)處理器模塊對(duì)數(shù)據(jù)的所有屬性信息進(jìn)行統(tǒng)計(jì),主要是利用MOA(Massive Online Analysis)的 Attribute Observer 進(jìn)行屬性 ?目息的統(tǒng)計(jì),AttributeClassObserver 是 MOA中用獲得屬性信息統(tǒng)計(jì)和分布的組件,統(tǒng)計(jì)信息被用來計(jì)算先驗(yàn)概率,例如,使用 NominalAttributeClassOberver 來進(jìn)行標(biāo)稱屬性的統(tǒng)計(jì),使用 GaussianNumericAttribut eClassObserver來進(jìn)行數(shù)值型屬性的統(tǒng)計(jì)。統(tǒng)計(jì)信息包括每個(gè)屬性的屬性值、類標(biāo)記和權(quán) 重。并且,根據(jù)獲得的屬性統(tǒng)計(jì)信息,按照系統(tǒng)的設(shè)計(jì)要求將屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新到聚 合處理器模塊。需要注意的是,屬性統(tǒng)計(jì)處理器模塊會(huì)把每一條數(shù)據(jù)發(fā)送給所有的后續(xù)鏈 接組件(例如聚合處理器模塊),而不是隨機(jī)發(fā)給其中一個(gè),即屬性統(tǒng)計(jì)處理器模塊會(huì)將所 述屬性統(tǒng)計(jì)信息流數(shù)據(jù)發(fā)送到N個(gè)聚合處理器模塊中,而非其中一個(gè)。
[0064] 進(jìn)一步地,所述用戶可以根據(jù)問題需要水平擴(kuò)展N個(gè)聚合處理器模塊,每個(gè)聚合 處理器模塊相互獨(dú)立工作,每個(gè)聚合處理器模塊包括:多個(gè)本地機(jī)器學(xué)習(xí)模塊,分別用于對(duì) 應(yīng)接收所述訓(xùn)練數(shù)據(jù),并對(duì)所接收到的所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì) 以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息予以輸出;全局機(jī) 器學(xué)習(xí)模塊,用于接收所述屬性統(tǒng)計(jì)信息,并將予以實(shí)時(shí)地輸出。
[0065] 具體地,聚合處理器模塊接收來自屬性統(tǒng)計(jì)處理器模塊的屬性統(tǒng)計(jì)信息和來自 分布處理器模塊的測(cè)試數(shù)據(jù)流,并且將最終分類的結(jié)果輸出或者對(duì)分類的結(jié)果進(jìn)行實(shí)時(shí) 的評(píng)價(jià)。聚合處理器模塊根據(jù)從屬性統(tǒng)計(jì)處理器模塊獲得的屬性統(tǒng)計(jì)信息計(jì)算P(Xi/Ci) 和P(Ci)。當(dāng)有測(cè)試數(shù)據(jù)流需要被實(shí)時(shí)分類判定的時(shí)候就可以根據(jù)獲得的屬性信息計(jì)算 P(C」X)(即后驗(yàn)概率),然后選取最大的后驗(yàn)概率作為對(duì)測(cè)試數(shù)據(jù)的分類判定輸出到系統(tǒng) 的輸出模塊或者對(duì)分類結(jié)果的準(zhǔn)確率進(jìn)行實(shí)時(shí)的統(tǒng)計(jì)輸出。
[0066] 具體地,評(píng)價(jià)處理器模塊接收來自聚合處理器模塊的分類結(jié)果輸出數(shù)據(jù)流,對(duì)分 類結(jié)果輸出數(shù)據(jù)流利用時(shí)間窗的方法進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷并給出分類的正確率。其中, 滑動(dòng)窗口(Sliding Window Model)是一種流數(shù)據(jù)處理方法?;瑒?dòng)窗口是指該窗口的起始 和結(jié)束時(shí)間戳都可以變化,新的數(shù)據(jù)進(jìn)入滑動(dòng)窗口,而舊的數(shù)據(jù)則不斷被刪除。由于滑動(dòng)窗 口是現(xiàn)有的技術(shù),這里就不再贅述。
[0067] 另外,在上述實(shí)施例二中,應(yīng)當(dāng)理解屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊的個(gè) 數(shù)可以根據(jù)具體問題的需要進(jìn)行并行化設(shè)定,根據(jù)并行化設(shè)定的情況,進(jìn)行相應(yīng)的水平數(shù) 據(jù)分割。
[0068] 實(shí)施例三
[0069]本發(fā)明另外還提供了 一種流數(shù)據(jù)分類方法,請(qǐng)參考圖8,示出了所述流數(shù)據(jù)分類方 法的流程圖,從圖示來看,所述流數(shù)據(jù)分類方法包括:
[0070] 步驟S10,接收外部數(shù)據(jù)流,且將所述數(shù)據(jù)流包裝成包括多個(gè)內(nèi)容事件的流數(shù)據(jù), 并予以實(shí)時(shí)輸出;
[0071]步驟S30,將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),并將所述測(cè)試數(shù)據(jù)和訓(xùn) 練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去;
[0072]步驟S50,對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì),以得到所述每個(gè) 所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新輸出;
[0073]步驟S7〇,根據(jù)所述屬性統(tǒng)計(jì)信息計(jì)算得到所述訓(xùn)練數(shù)據(jù)的后驗(yàn)概率,并選取其中 最大的后驗(yàn)概率作為待實(shí)時(shí)分類判定的所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出;
[0074]步驟S9〇,利用時(shí)間窗的方法對(duì)所述分類判定結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷,以得到 所述分類判定結(jié)果的正確率并予以輸出。
[0075] 進(jìn)步地,應(yīng)當(dāng)理解,上述步驟S90的目的在于對(duì)對(duì)所述分類判定結(jié)果進(jìn)行實(shí)時(shí)的 評(píng)價(jià)和判斷,在所述流數(shù)據(jù)分類方法也可以省略該步驟,即步驟S90可以作為優(yōu)選方案來 予以實(shí)施。
[0076]具體地,在步驟S70中,是利用貝葉斯公式計(jì)算得到所述訓(xùn)練數(shù)據(jù)的后驗(yàn)概率,并 假設(shè)所述每個(gè)所述內(nèi)容事件的屬性值對(duì)給定類的影響?yīng)毩⒂谄渌鼘傩缘闹怠?br>
[0077] 更進(jìn)一步地,所述測(cè)試數(shù)據(jù)和所述訓(xùn)練數(shù)據(jù)為同一流數(shù)據(jù)。
[0078]綜合上述所有實(shí)施例來看,本發(fā)明通過以Storm作為底層的流處理引擎,基于 SAMOA提供的在線流數(shù)據(jù)機(jī)器學(xué)習(xí)架構(gòu),來進(jìn)行流數(shù)據(jù)的水平分割和模型設(shè)計(jì)。將以往僅僅 用在批處理或者非分布式流處理系統(tǒng)上的樸素貝葉斯方法應(yīng)用到了基于Storm和SAMOA的 分布式流處理平臺(tái)中。并利用SAMOA API中的Prequential評(píng)價(jià)任務(wù)和模型結(jié)構(gòu)設(shè)計(jì)實(shí)現(xiàn) 了不同于傳統(tǒng)機(jī)器學(xué)習(xí)的先測(cè)試再訓(xùn)練的流數(shù)據(jù)分類裝置及方法。而且實(shí)驗(yàn)結(jié)果也表明, 基于Storm和SAMOA的本發(fā)明不僅滿足了流數(shù)據(jù)處理的基本要求,而且分類效果幾乎接近 傳統(tǒng)的樸素貝葉斯方法和經(jīng)典的非分布式流數(shù)據(jù)處理平臺(tái)Μ0Α中樸素貝葉斯分類方法的 效果。其重要有以下優(yōu)點(diǎn):
[0079]第一,本發(fā)明提出的一種流數(shù)據(jù)的分類方法及其裝置和系統(tǒng)與現(xiàn)有的技術(shù)相比具 有可以在線處理高速流數(shù)據(jù)的特性和先測(cè)試再訓(xùn)練的特點(diǎn)。Storm和SAMOA是流數(shù)據(jù)處理 架構(gòu),數(shù)據(jù)水平擴(kuò)展的加入可以使得模型適用于高速數(shù)據(jù)的處理。雖然Prequential評(píng)價(jià) 本身提供了先測(cè)試再訓(xùn)練的功能,但是在流數(shù)據(jù)分類系統(tǒng)中,通過在分布處理器模塊中令 測(cè)試數(shù)據(jù)流和訓(xùn)練數(shù)據(jù)流都為源數(shù)據(jù)流,只不過先處理測(cè)試數(shù)據(jù)流,而后處理訓(xùn)練數(shù)據(jù)流, 而且訓(xùn)練數(shù)據(jù)流要經(jīng)過屬性統(tǒng)計(jì)處理器模塊后轉(zhuǎn)化為屬性流進(jìn)入聚合處理器模塊,由此而 實(shí)現(xiàn)了先測(cè)試在訓(xùn)練的架構(gòu)。
[0080] 第二,本發(fā)明與經(jīng)典的流數(shù)據(jù)處理平臺(tái)Μ0Α的樸素貝葉斯分類方法相比具有分布 式的特性,分布式首先體現(xiàn)在數(shù)據(jù)的底層處理平臺(tái)Storm是分布式處理架構(gòu),另外,體現(xiàn)在 該模型采用的SAMOA架構(gòu)是分布式的,而且,利用數(shù)據(jù)水平擴(kuò)展實(shí)現(xiàn)了相關(guān)組建的分布式 快速處理。
[0081] 第三,本發(fā)明采用了數(shù)據(jù)的水平化分割方法,實(shí)現(xiàn)了數(shù)據(jù)的橫向擴(kuò)展,數(shù)據(jù)的水平 擴(kuò)展體現(xiàn)在屬性統(tǒng)計(jì)處理器模塊和聚合處理器模塊中,用戶可以根據(jù)任務(wù)問題的需要進(jìn)行 相關(guān)處理器模塊的擴(kuò)展來實(shí)現(xiàn)高速流數(shù)據(jù)的分類。所以,本發(fā)明有效克服了現(xiàn)有技術(shù)中的 種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。
[0082] 上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟 悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因 此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完 成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1. 一種流數(shù)據(jù)分類裝置,其特征在于,包括: 分布處理器模塊,用于接收包括內(nèi)容事件的流數(shù)據(jù),并將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試 數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去; 屬性統(tǒng)計(jì)處理器模塊,用于將接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件 的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信 息實(shí)時(shí)地更新輸出; 聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng)計(jì)信 息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判定的 所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出。
2. 根據(jù)權(quán)利要求1所述的流數(shù)據(jù)分類裝置,其特征在于,所述測(cè)試數(shù)據(jù)和所述訓(xùn)練數(shù) 據(jù)為同一流數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的流數(shù)據(jù)分類裝置,其特征在于,所述屬性統(tǒng)計(jì)處理器模塊包 括: 多個(gè)本地機(jī)器學(xué)習(xí)模塊,分別用于對(duì)應(yīng)接收所述訓(xùn)練數(shù)據(jù),并對(duì)所接收到的所述訓(xùn)練 數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息, 并將所述屬性統(tǒng)計(jì)信息予以輸出; 全局機(jī)器學(xué)習(xí)模塊,用于接收所述屬性統(tǒng)計(jì)信息,并將予以實(shí)時(shí)地輸出。
4. 根據(jù)權(quán)利要求1所述的流數(shù)據(jù)分類裝置,其特征在于,包括一個(gè)或者至少多個(gè)所述 聚合處理器模塊,且每個(gè)所述聚合處理器模塊彼此獨(dú)立。
5. 根據(jù)權(quán)利要求1-4任一項(xiàng)所述的流數(shù)據(jù)分類裝置,其特征在于,所述屬性統(tǒng)計(jì)信息 包括:所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性值、及其類標(biāo)記和權(quán)重。
6. -種流數(shù)據(jù)分類系統(tǒng),其特征在于,包括: 數(shù)據(jù)源處理器模塊,用于接收外部數(shù)據(jù)流,且將所述數(shù)據(jù)流包裝成包括多個(gè)內(nèi)容事件 的流數(shù)據(jù),并予以實(shí)時(shí)輸出; 分布處理器模塊,用于接收包括多個(gè)內(nèi)容事件的所述流數(shù)據(jù),并將所述流數(shù)據(jù)分別標(biāo) 記為測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),及將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予以隨機(jī)均衡地分發(fā)出去; 屬性統(tǒng)計(jì)處理器模塊,用于接收所述訓(xùn)練數(shù)據(jù),并對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的 屬性信息進(jìn)行統(tǒng)計(jì)以得到所述每個(gè)所述內(nèi)容事件的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息 實(shí)時(shí)地更新輸出; 聚合處理器模塊,用于接收所述屬性統(tǒng)計(jì)信息和所述測(cè)試數(shù)據(jù),根據(jù)所述屬性統(tǒng)計(jì)信 息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概率作為待實(shí)時(shí)分類判定的 所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出。
7. 根據(jù)權(quán)利要求6所述的流數(shù)據(jù)分類系統(tǒng),其特征在于,所述流數(shù)據(jù)分類系統(tǒng)還包括: 評(píng)價(jià)處理器模塊,用于接收所述分類判定結(jié)果,并利用時(shí)間窗的方法對(duì)所述分類判定 結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷,以得到所述分類判定結(jié)果的正確率并予以輸出。
8. -種流數(shù)據(jù)分類方法,其特征在于,包括: 接收外部數(shù)據(jù)流,且將所述數(shù)據(jù)流包裝成包括多個(gè)內(nèi)容事件的流數(shù)據(jù),并予以實(shí)時(shí)輸 出; 將所述流數(shù)據(jù)分別標(biāo)記為測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù),并將所述測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)依次予 以隨機(jī)均衡地分發(fā)出去; 對(duì)所述訓(xùn)練數(shù)據(jù)中每個(gè)內(nèi)容事件的屬性信息進(jìn)行統(tǒng)計(jì),以得到所述每個(gè)所述內(nèi)容事件 的屬性統(tǒng)計(jì)信息,并將所述屬性統(tǒng)計(jì)信息實(shí)時(shí)地更新輸出; 根據(jù)所述屬性統(tǒng)計(jì)信息計(jì)算得到所述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并選取其中最大的后驗(yàn)概 率作為待實(shí)時(shí)分類判定的所述測(cè)試數(shù)據(jù)的分類判定結(jié)果并予以輸出。
9. 根據(jù)權(quán)利要求8所述的流數(shù)據(jù)分類方法,其特征在于,所述流數(shù)據(jù)分類方法還包括: 利用時(shí)間窗的方法對(duì)所述分類判定結(jié)果進(jìn)行實(shí)時(shí)的評(píng)價(jià)和判斷,以得到所述分類判定 結(jié)果的正確率并予以輸出。
10. 根據(jù)權(quán)利要求8所述的流數(shù)據(jù)分類方法,其特征在于,利用貝葉斯公式計(jì)算得到所 述測(cè)試數(shù)據(jù)的后驗(yàn)概率,并假設(shè)所述每個(gè)所述內(nèi)容事件的屬性值對(duì)給定類的影響?yīng)毩⒂谄?它屬性的值。
【文檔編號(hào)】G06F17/30GK104268260SQ201410530955
【公開日】2015年1月7日 申請(qǐng)日期:2014年10月10日 優(yōu)先權(quán)日:2014年10月10日
【發(fā)明者】李廣砥, 王國(guó)胤, 張學(xué)睿, 張帆, 封雷, 席大超, 鄧偉輝, 郭義帥, 謝亮 申請(qǐng)人:中國(guó)科學(xué)院重慶綠色智能技術(shù)研究院