楊小琴,朱玉全
(1. 南京工業(yè)大學(xué)浦江學(xué)院,江蘇 南京 211134;2. 江蘇大學(xué),江蘇 鎮(zhèn)江 212013)
智能分類技術(shù)是一種非常重要的大數(shù)據(jù)管理技術(shù),目前已經(jīng)成功的使用到了各個領(lǐng)域,但傳統(tǒng)大數(shù)據(jù)分類時會出現(xiàn)的方法占用率較高、分類效率低的問題還是很難解決,針對上述現(xiàn)象,國內(nèi)外學(xué)者提出了以下解決方法。
文獻[1]首先分析用戶的反饋數(shù)據(jù)文本,再對大數(shù)據(jù)使用半自動建造的語義映射進行幾率計算,從而形成有效的屬性類別,并把該方法運用到云計算中,可以更針對性的分類大數(shù)據(jù)屬性類別。但該方法在進行映射時會出現(xiàn)大量的冗余數(shù)據(jù),導(dǎo)致在分類完成后,冗余數(shù)據(jù)會占據(jù)云計算空間。文獻[2]分析大數(shù)據(jù)的各項指標(biāo)說明,依據(jù)指標(biāo)分析數(shù)據(jù)的特性,然后對其進行檢索,將檢索獲取的結(jié)果進行特征提取,遵照其特點利用模糊分類對大數(shù)據(jù)進行智能分類,但是該方法在對數(shù)據(jù)檢索時,需要進行的步驟較為復(fù)雜,導(dǎo)致其后續(xù)的智能分類,需要花費大量的時間計算,分類結(jié)果的精準(zhǔn)性較低。文獻[3]首先使用沖突數(shù)據(jù)檢測方法判定數(shù)據(jù)的分類是否存在沖突。如果存在沖突,就將其變換為約束滿足問題,經(jīng)過分析分類問題的約束變量,確準(zhǔn)分類其中含有處理沖突的內(nèi)容,構(gòu)建海量數(shù)據(jù)分類中沖突判別表現(xiàn)形式,從而實現(xiàn)大數(shù)據(jù)智能分類的目的。但該方法只能針對沖突數(shù)據(jù)進行有效分類,而存儲在云空間內(nèi)的大數(shù)據(jù)種類復(fù)雜繁多,該方法存在較大的局限性,實用性差,難以應(yīng)對現(xiàn)實需求。
為解決上述問題,本文提出了一種云計算下低占用率大數(shù)據(jù)智能分類方法,通過樸素貝葉斯智能分類器,計算過程簡單、效率快,能夠有效解決后續(xù)分類較慢問題,并且適用于各類系統(tǒng),同時訓(xùn)練模型還能夠使智能分類后的大數(shù)據(jù)不會出現(xiàn)冗余噪聲,大幅度降低云空間占用率。
大數(shù)據(jù)預(yù)處理的重點就是為樸素貝葉斯分類做準(zhǔn)備,其具體工作要依據(jù)實際情況選擇特征屬性,再對所有特征屬性進行分類,使連續(xù)的特征屬性變成離散化狀態(tài),從而取得人類需要的數(shù)據(jù)。比如某種特征屬性的取值就是離散化的,那就不用在對其進行離散化處理。該階段的輸入為每一種包括連續(xù)的特征屬性大數(shù)據(jù)測試集和大數(shù)據(jù)訓(xùn)練,輸出如果是離散化的屬性值。那么在分類過程中其質(zhì)量會起到非常重要的作用,并且特征屬性的分割、訓(xùn)練樣本與為特征屬性決定分類器質(zhì)量的關(guān)鍵。所以需要對大數(shù)據(jù)樣本屬性并行計算最優(yōu)質(zhì)分割區(qū)域,實現(xiàn)將連續(xù)屬性進行離散化,預(yù)處理階段能夠?qū)崿F(xiàn)Ma-pReduce并行化。
通常情況下利用NBS算法對大數(shù)據(jù)進行智能分類里,使用初始數(shù)據(jù)作為特征,但對大數(shù)據(jù)的樣本而言,數(shù)據(jù)之間所表示的權(quán)重都各不相同,即,不同的源數(shù)據(jù)[4]中的區(qū)分程度也各不相同,本文在特征選取方面進行了一些改進,改進后的結(jié)果如式(1)所示
(1)
式中tfik代表樣本xi第k中元數(shù)據(jù)的頻率,fik代表元數(shù)據(jù)在樣本中出現(xiàn)的次數(shù)。
(2)
式中,N代表樣本點的總數(shù),nk表示源數(shù)據(jù)樣本的出現(xiàn)次數(shù)。最后的權(quán)重計算如式(3)所示
(3)
因大多數(shù)頻率都含有非零權(quán)值,因此本文將初始數(shù)據(jù)設(shè)置為1。
在云計算中大多使用VSM模型[5]來標(biāo)引大數(shù)據(jù),就是大數(shù)據(jù)名稱能夠直接使用詞條T表示。但大數(shù)據(jù)名稱中存在大量的特征點,然而其中的部分高維特征對智能分類未必都是有用的,并且高維特征會使云計算空間被大量占用。因此本文首先對大數(shù)據(jù)的特征進行降維操作,剔除部分冗余向量。
在特征降維中,特征選擇是較為重要的,就是把大數(shù)據(jù)中不重要的數(shù)據(jù)和數(shù)據(jù)量較小的特征從云計算中消除,從而減少特征的數(shù)量,它是大數(shù)據(jù)智能分類的關(guān)鍵步驟。
特征選擇方法大多都是通過對特征中含有的信息進行估算,獲得可以映射特征信息含量的數(shù)值,或是特征區(qū)分實例的能力值。為了便于描述,本文簡要寫出特征選擇的經(jīng)典過程。擬定T={t1,t2,t3,…,tn}是對大數(shù)據(jù)做分詞后獲得的特征全集,使用M代表權(quán)重集合{1,2,3,…,m}。其特征選擇是確定從T到M的一種投影,即
F-Selection:T→M
(4)
這種投影函數(shù)[6]是特征權(quán)值計算的函數(shù),隨后取一種N值,認(rèn)為T中某些權(quán)值大于N的特征是選取的特征,記作Ts,在隨后智能分類過程中,就是以Ts為基本參照標(biāo)準(zhǔn)特征對大數(shù)據(jù)進行VSM模型表示。根據(jù)某種算法來較比待測實例向量與特征樣本向量中的關(guān)聯(lián)度,取關(guān)聯(lián)度最高的樣本為待測實例的類別。
因為大數(shù)據(jù)所在的空間是以云計算為基礎(chǔ)存在的,其屬于一種文本表達(dá)方式,所以能夠借助文本分類算法進行智能分類。
目前較為流行的文本分類算法有很多,其中含有K進鄰算法、NB算法、支持向量機算法、潛在語義索引、神經(jīng)算法[7]與決策樹算法。下面就集中常見的分類算法分析:
1)K近鄰算法:是一種傳統(tǒng)基于統(tǒng)計的分類方法,它是從樣本特征空間中找到K個長度最近的樣本,再通過多數(shù)樣本的類型進行分類預(yù)測的一種方式。比如:對一個待測實例x,分類器在特征集中找到和該實例長度最近的k種樣本,如果這k種樣本多數(shù)為cj類,那么待測實例x為類別cj的可能性就較大。計算公式如下
(5)
式中,x表示為待測實例的向量表示:d代表數(shù)據(jù)集中樣本的向量表示,y(x,cj)是關(guān)聯(lián)度計算公式,也是待測實例和數(shù)據(jù)集樣本之間的長度,依據(jù)關(guān)聯(lián)度結(jié)果,從數(shù)據(jù)集中取出和待測實例最為關(guān)聯(lián)的k中樣本。利用其關(guān)聯(lián)度對數(shù)據(jù)進行壓縮,以減少數(shù)據(jù)所占內(nèi)存,提高空間使用率,其數(shù)據(jù)壓縮計算公式如下
(6)
2)決策樹算法:決策樹是一種近似于流程圖的樹形結(jié)構(gòu),其中所有的內(nèi)部節(jié)點都分別代表一種屬性測試,所有分支都分別代表一種輸出,而所有的樹葉節(jié)點都分別代表屬性的種類。
決策樹算法使用貪心思想,經(jīng)過對訓(xùn)練數(shù)據(jù)的學(xué)習(xí),制作出一般化規(guī)則,再使用該規(guī)則解決問題。它是訓(xùn)練集以上至下方式為預(yù)先設(shè)定的所有屬性種類建造的一顆決策樹,然后將獲得的待測實例屬性在決策樹上進行測試。路徑是分解節(jié)點到葉節(jié)上,最后獲得該實例所屬的種類。
3)支持向量機:SVM首先經(jīng)過非線性轉(zhuǎn)換將輸入數(shù)據(jù)融入到一個高維空間,再新空間中計算最優(yōu)質(zhì)線性分類面,而這個非線性轉(zhuǎn)換的前提是經(jīng)過適當(dāng)?shù)膬?nèi)積函數(shù)實現(xiàn)的。
SVM以構(gòu)建風(fēng)險最小化為基礎(chǔ),經(jīng)過選擇合適的函數(shù)子集和該子集的辨別函數(shù)使學(xué)習(xí)機的實際風(fēng)險到達(dá)最小化,確保經(jīng)過有限訓(xùn)練的樣本得到的分類器對單獨測試集的測試誤差達(dá)到最小化,但SVM需要對實例進行大量實驗,導(dǎo)致需要太長的訓(xùn)練時間[8]。
4)貝葉斯定理:概率論中貝葉斯定理是一種較為重要的公式理論,通過新樣本數(shù)據(jù)中獲取新知識[9-11]。本文依據(jù)其融合統(tǒng)計原理和大數(shù)據(jù)樣本歸類到某種類別的先驗知識,來完成云計算下大數(shù)據(jù)智能分類。
經(jīng)過上述過程,完成大數(shù)據(jù)的獲取及預(yù)處理,為實現(xiàn)數(shù)據(jù)的特征分類,本文將引入NBC處理方法進行分類。
本文將貝葉斯定理融合到大數(shù)據(jù)的分類模型中,從而生成貝葉斯智能分類算法,該算法利用概率統(tǒng)計知識對大數(shù)據(jù)樣本進行分類,其同樣看可作為一種統(tǒng)計學(xué)智能分類算法[12]。擬定訓(xùn)練樣本集與它每一種分類構(gòu)成的結(jié)合是T,設(shè)一個類別c∈C,樣本數(shù)據(jù)中包含n種屬性A1,A2,A3,…,An,測試樣本x=(a1,a2,…,an)∈X,根據(jù)設(shè)定含有多種屬性的樣本集,開始計算p(x|c)的運算量較為廣泛。為了可以對p(x|c)的有效計算,貝葉斯智能分類器大多會擬定所有屬性間都為互相獨立的狀態(tài)。針對某種特定的類別,并且該類別的屬性都是互相獨立的,就會產(chǎn)生
(7)
融合貝葉斯公式,可得
(8)
式(8)對每一種類別p(x)是相同的。所以NBC分類器能夠使用下列公式表示
(9)
式(9)代表NBC模型,該模型是一種比較簡單、有效的智能分類模型,其分類性能相比神經(jīng)網(wǎng)絡(luò)、決策樹等智能分類器效果要更好。
經(jīng)過式(9)可以得出,在通過將大數(shù)據(jù)的集中樣本分割到某一種類的過程中,只要求出N(c)與N(c,ak)就可以了,很大程度的簡化了求出后驗幾率所需要的計算過程。已知測試大數(shù)據(jù)集中某條樣本數(shù)據(jù)A的所有維屬性Ai。
for(測試大數(shù)據(jù)中某種記錄A);
for(類別cj);
for(樣本A的屬性Ai)catePro*=N(cj,ai);
catePro/=N(c)n-1。
最后,本文對輸出的N種幾率值進行排序,最大幾率值所相應(yīng)的類別就是該測試的所屬類別。
NBC的分類原理:經(jīng)過對大數(shù)據(jù)樣本的數(shù)量統(tǒng)計,并計算出樣本的先驗幾率,再通過貝葉斯公式得出樣本要統(tǒng)一到那種類別的后驗幾率,然后在選擇出后驗幾率值較大的一個,當(dāng)做大數(shù)據(jù)樣本的類別。通過上述能夠得出,樸素貝葉斯智能分類器為一個能夠很大程度節(jié)省分類時間,且容錯率較小的分類器,擬定源組被分割為m種類別:c1,c2,…,cj,…,cm相對于要把測試數(shù)據(jù)劃分到m種類別的問題,能夠經(jīng)過構(gòu)建下列分類模型計算。有式(10)推理可得
(10)
式中,N代表樣本總數(shù),是可以忽略的常數(shù)。N(c)是c類的樣本總數(shù),N(c,ak)是c類中屬性為ak出現(xiàn)的數(shù)量。經(jīng)過上述完成基于NBC的大數(shù)據(jù)特征分類模型的建立,為檢驗本文方法的有效性,需進行仿真。
仿真環(huán)境為Intel Celeron Tulatin1GHz CPU和384MB SD內(nèi)存的硬件環(huán)境和MATLAB6.1的軟件環(huán)境。仿真系統(tǒng)中包含數(shù)據(jù)干擾模塊、資源調(diào)度模塊以及任務(wù)產(chǎn)生模塊,基于上述部分的組成,以MS-COCO數(shù)據(jù)集作為數(shù)據(jù)獲取來源,并在該數(shù)據(jù)集中任意采取1000個任務(wù)數(shù)據(jù),同時將任務(wù)數(shù)據(jù)擬存于仿真系統(tǒng)中,數(shù)據(jù)字節(jié)控制在[256~568kb]之間,實驗終止條件設(shè)置為300次,將本文方法分別與文獻[1]以及文獻[2]進行對比。本文仿真算法參數(shù)如表1所示。
表1 仿真算法參數(shù)
為實現(xiàn)低占用率大數(shù)據(jù)的智能分類,需建立智能分類模型,訓(xùn)練任務(wù)數(shù)據(jù)。訓(xùn)練的工作就是將樣本數(shù)據(jù)進行訓(xùn)練,并獲取靜態(tài)值,其目的就是為了獲取測試樣本數(shù)據(jù)的某種類別幾率做準(zhǔn)備。通過NBS算法能夠看出,把訓(xùn)練樣本分配到Map任務(wù)節(jié)點上,會干擾最后結(jié)果,所以該階段能夠?qū)崿F(xiàn)Ma-pReduce并行化,使其在分類過后,并不會占用太多的云計算空間。
Map函數(shù)輸入的是Ma-pReduce的輸入模式。key代表樣本數(shù)據(jù)對于大數(shù)據(jù)起始初始位置的偏移量,value的形式是x=(c,a1,a2,a3,…,ai,…,an)的樣本數(shù)據(jù)。通過Map函數(shù)處理后生成中間結(jié)果建值對,其中key1含有兩個類型:attrIndex,attrVal-ue,category和category。前者代表統(tǒng)計特定類別時每種屬性值出現(xiàn)的數(shù)量,后者用在統(tǒng)計各類別的樣本數(shù)量。Valuel都是統(tǒng)計其個數(shù)。
將value中取得訓(xùn)練樣本數(shù)據(jù):Value起始為1。
取得樣本數(shù)據(jù)x的類標(biāo)簽categort當(dāng)做key1,建造字符串,含有其樣本的屬性值、樣本類標(biāo)簽categort和樣本的序列號。
當(dāng)做key1,輸出(key1,valel),把Map輸出的不相同的key1經(jīng)過上述投影到狀況不同的Reduce任務(wù)節(jié)點上。通過對應(yīng)的處理,key1不變,對同種key1值的balue1進行疊加,所以能夠獲取每一種類別的樣本總數(shù)與特征類別中不同列的每一種屬性數(shù)量。
通過對大數(shù)據(jù)樣本進行某種類別的歸屬測試和對模型訓(xùn)練,從而獲取大數(shù)據(jù)的靜態(tài)值。然而對大數(shù)據(jù)樣本進行測試的時候,在算法計算之前,要獲取模型在訓(xùn)練后的結(jié)果和其中含有的路徑,就需要將該結(jié)果與HashMap、Array-List進行融合,這樣就測試階段的結(jié)果獲取就變得非常簡單。
在最終測試中,Map函數(shù)的輸入值與模型的訓(xùn)練階段是一樣的。所以在不同的樣本中測試可以完整并獨立的獲取訓(xùn)練完成后的完整靜態(tài)數(shù)據(jù),使測試樣本階段擁有并行性。首先將大數(shù)據(jù)樣本的測試集在特征類別的狀態(tài)下每一種取值都概率累乘,在算出最終的概率catePm。對每一種大數(shù)據(jù)樣本的測試,都需要將所有種類c進行計算,并獲取屬于特征種類c的概率。
從value中算出大數(shù)據(jù)樣本測試數(shù)據(jù)x;
原始化變量lvalue,將在記錄c的所有變量屬性值;
原始化變量catePro,記錄屬于某種特定類c的幾率。原始值是1,0,對某種特征類c;
lvalue=lvalue.nextTokems
從訓(xùn)練階段取得的靜態(tài)數(shù)據(jù)中提取出該類別c中屬性列中取值是lvalue的數(shù)量num:
把特定類c當(dāng)做key1;
把所求的幾率catePro當(dāng)做valuel;
輸出(key1,valel)。
通過上述完成分類模型數(shù)值的訓(xùn)練,并輸出k值。
3.3.1 分類時長開銷
為了證明本文方法的分類性能,首先給出本文方法和傳統(tǒng)方法,在云計算下不同的數(shù)據(jù)量的智能分類時間比較。
如圖1所示能夠看出本文方法從時間的消耗上遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)方法,能夠得出本文所提出的樸素貝葉斯模型能夠有效減少了方法的計算量,從而簡化了方法的分類效率。
圖1 不同方法的智能分類時間對比
3.3.2 分類數(shù)據(jù)的壓縮處理效率
以上述處理結(jié)果為基礎(chǔ),進行分類數(shù)據(jù)的壓縮處理效率分析。效率分析過程為:將本文算法輸入至仿真系統(tǒng)中,同時,將獲取的1000條數(shù)據(jù)發(fā)送到MATLAB6.1系統(tǒng)中,檢測本文方法的壓縮處理效率,處理結(jié)果如圖2所示。
圖2 數(shù)據(jù)分類的處理效率
通過分析圖2可知本文方法的處理效率能力高,對于大小為2GB的分類數(shù)據(jù)進行壓縮時僅需3分零9秒,具有高效的壓縮能力。
3.3.3 分類精準(zhǔn)度
經(jīng)過擬定不同的k值進行實驗,對比傳統(tǒng)方法和本文方法在不同k值下的分類精準(zhǔn)度,如圖2所示。
圖3 不同方法的準(zhǔn)確度和占用率對比
通過上述實驗?zāi)軌蚩闯?,在云計算下的大?shù)據(jù)智能分類上,本文方法較比傳統(tǒng)方法,有著分類效率高、數(shù)據(jù)分類精準(zhǔn)高的優(yōu)點。
本文針對云計算下大數(shù)據(jù)智能分類效率低和占用空間較大的問題,提出了一種云計算下低占用率大數(shù)據(jù)智能分類。本文主要內(nèi)容及過程為:
1)通過構(gòu)建智能分類模型,對大數(shù)據(jù)進行進行特征選擇;
2)將構(gòu)建的樸素貝葉斯智能分類模型進行訓(xùn)練,并對選擇出的特征進行智能分類;
3)進行仿真,證明本文方法在云計算下大數(shù)據(jù)智能分類方面,有著分類效率高和占用率低的優(yōu)點。