楊小琴,朱玉全
(1. 南京工業大學浦江學院,江蘇 南京 211134;2. 江蘇大學,江蘇 鎮江 212013)
智能分類技術是一種非常重要的大數據管理技術,目前已經成功的使用到了各個領域,但傳統大數據分類時會出現的方法占用率較高、分類效率低的問題還是很難解決,針對上述現象,國內外學者提出了以下解決方法。
文獻[1]首先分析用戶的反饋數據文本,再對大數據使用半自動建造的語義映射進行幾率計算,從而形成有效的屬性類別,并把該方法運用到云計算中,可以更針對性的分類大數據屬性類別。但該方法在進行映射時會出現大量的冗余數據,導致在分類完成后,冗余數據會占據云計算空間。文獻[2]分析大數據的各項指標說明,依據指標分析數據的特性,然后對其進行檢索,將檢索獲取的結果進行特征提取,遵照其特點利用模糊分類對大數據進行智能分類,但是該方法在對數據檢索時,需要進行的步驟較為復雜,導致其后續的智能分類,需要花費大量的時間計算,分類結果的精準性較低。文獻[3]首先使用沖突數據檢測方法判定數據的分類是否存在沖突。如果存在沖突,就將其變換為約束滿足問題,經過分析分類問題的約束變量,確準分類其中含有處理沖突的內容,構建海量數據分類中沖突判別表現形式,從而實現大數據智能分類的目的。但該方法只能針對沖突數據進行有效分類,而存儲在云空間內的大數據種類復雜繁多,該方法存在較大的局限性,實用性差,難以應對現實需求。
為解決上述問題,本文提出了一種云計算下低占用率大數據智能分類方法,通過樸素貝葉斯智能分類器,計算過程簡單、效率快,能夠有效解決后續分類較慢問題,并且適用于各類系統,同時訓練模型還能夠使智能分類后的大數據不會出現冗余噪聲,大幅度降低云空間占用率。
大數據預處理的重點就是為樸素貝葉斯分類做準備,其具體工作要依據實際情況選擇特征屬性,再對所有特征屬性進行分類,使連續的特征屬性變成離散化狀態,從而取得人類需要的數據。比如某種特征屬性的取值就是離散化的,那就不用在對其進行離散化處理。該階段的輸入為每一種包括連續的特征屬性大數據測試集和大數據訓練,輸出如果是離散化的屬性值。那么在分類過程中其質量會起到非常重要的作用,并且特征屬性的分割、訓練樣本與為特征屬性決定分類器質量的關鍵。所以需要對大數據樣本屬性并行計算最優質分割區域,實現將連續屬性進行離散化,預處理階段能夠實現Ma-pReduce并行化。
通常情況下利用NBS算法對大數據進行智能分類里,使用初始數據作為特征,但對大數據的樣本而言,數據之間所表示的權重都各不相同,即,不同的源數據[4]中的區分程度也各不相同,本文在特征選取方面進行了一些改進,改進后的結果如式(1)所示

(1)
式中tfik代表樣本xi第k中元數據的頻率,fik代表元數據在樣本中出現的次數。

(2)
式中,N代表樣本點的總數,nk表示源數據樣本的出現次數。最后的權重計算如式(3)所示

(3)
因大多數頻率都含有非零權值,因此本文將初始數據設置為1。
在云計算中大多使用VSM模型[5]來標引大數據,就是大數據名稱能夠直接使用詞條T表示。但大數據名稱中存在大量的特征點,然而其中的部分高維特征對智能分類未必都是有用的,并且高維特征會使云計算空間被大量占用。因此本文首先對大數據的特征進行降維操作,剔除部分冗余向量。
在特征降維中,特征選擇是較為重要的,就是把大數據中不重要的數據和數據量較小的特征從云計算中消除,從而減少特征的數量,它是大數據智能分類的關鍵步驟。
特征選擇方法大多都是通過對特征中含有的信息進行估算,獲得可以映射特征信息含量的數值,或是特征區分實例的能力值。為了便于描述,本文簡要寫出特征選擇的經典過程。擬定T={t1,t2,t3,…,tn}是對大數據做分詞后獲得的特征全集,使用M代表權重集合{1,2,3,…,m}。其特征選擇是確定從T到M的一種投影,即
F-Selection:T→M
(4)
這種投影函數[6]是特征權值計算的函數,隨后取一種N值,認為T中某些權值大于N的特征是選取的特征,記作Ts,在隨后智能分類過程中,就是以Ts為基本參照標準特征對大數據進行VSM模型表示。根據某種算法來較比待測實例向量與特征樣本向量中的關聯度,取關聯度最高的樣本為待測實例的類別。
因為大數據所在的空間是以云計算為基礎存在的,其屬于一種文本表達方式,所以能夠借助文本分類算法進行智能分類。
目前較為流行的文本分類算法有很多,其中含有K進鄰算法、NB算法、支持向量機算法、潛在語義索引、神經算法[7]與決策樹算法。下面就集中常見的分類算法分析:
1)K近鄰算法:是一種傳統基于統計的分類方法,它是從樣本特征空間中找到K個長度最近的樣本,再通過多數樣本的類型進行分類預測的一種方式。比如:對一個待測實例x,分類器在特征集中找到和該實例長度最近的k種樣本,如果這k種樣本多數為cj類,那么待測實例x為類別cj的可能性就較大。計算公式如下

(5)
式中,x表示為待測實例的向量表示:d代表數據集中樣本的向量表示,y(x,cj)是關聯度計算公式,也是待測實例和數據集樣本之間的長度,依據關聯度結果,從數據集中取出和待測實例最為關聯的k中樣本。利用其關聯度對數據進行壓縮,以減少數據所占內存,提高空間使用率,其數據壓縮計算公式如下

(6)
2)決策樹算法:決策樹是一種近似于流程圖的樹形結構,其中所有的內部節點都分別代表一種屬性測試,所有分支都分別代表一種輸出,而所有的樹葉節點都分別代表屬性的種類。
決策樹算法使用貪心思想,經過對訓練數據的學習,制作出一般化規則,再使用該規則解決問題。它是訓練集以上至下方式為預先設定的所有屬性種類建造的一顆決策樹,然后將獲得的待測實例屬性在決策樹上進行測試。路徑是分解節點到葉節上,最后獲得該實例所屬的種類。
3)支持向量機:SVM首先經過非線性轉換將輸入數據融入到一個高維空間,再新空間中計算最優質線性分類面,而這個非線性轉換的前提是經過適當的內積函數實現的。
SVM以構建風險最小化為基礎,經過選擇合適的函數子集和該子集的辨別函數使學習機的實際風險到達最小化,確保經過有限訓練的樣本得到的分類器對單獨測試集的測試誤差達到最小化,但SVM需要對實例進行大量實驗,導致需要太長的訓練時間[8]。
4)貝葉斯定理:概率論中貝葉斯定理是一種較為重要的公式理論,通過新樣本數據中獲取新知識[9-11]。本文依據其融合統計原理和大數據樣本歸類到某種類別的先驗知識,來完成云計算下大數據智能分類。
經過上述過程,完成大數據的獲取及預處理,為實現數據的特征分類,本文將引入NBC處理方法進行分類。
本文將貝葉斯定理融合到大數據的分類模型中,從而生成貝葉斯智能分類算法,該算法利用概率統計知識對大數據樣本進行分類,其同樣看可作為一種統計學智能分類算法[12]。擬定訓練樣本集與它每一種分類構成的結合是T,設一個類別c∈C,樣本數據中包含n種屬性A1,A2,A3,…,An,測試樣本x=(a1,a2,…,an)∈X,根據設定含有多種屬性的樣本集,開始計算p(x|c)的運算量較為廣泛。為了可以對p(x|c)的有效計算,貝葉斯智能分類器大多會擬定所有屬性間都為互相獨立的狀態。針對某種特定的類別,并且該類別的屬性都是互相獨立的,就會產生

(7)
融合貝葉斯公式,可得

(8)
式(8)對每一種類別p(x)是相同的。所以NBC分類器能夠使用下列公式表示

(9)
式(9)代表NBC模型,該模型是一種比較簡單、有效的智能分類模型,其分類性能相比神經網絡、決策樹等智能分類器效果要更好。
經過式(9)可以得出,在通過將大數據的集中樣本分割到某一種類的過程中,只要求出N(c)與N(c,ak)就可以了,很大程度的簡化了求出后驗幾率所需要的計算過程。已知測試大數據集中某條樣本數據A的所有維屬性Ai。
for(測試大數據中某種記錄A);
for(類別cj);
for(樣本A的屬性Ai)catePro*=N(cj,ai);
catePro/=N(c)n-1。
最后,本文對輸出的N種幾率值進行排序,最大幾率值所相應的類別就是該測試的所屬類別。
NBC的分類原理:經過對大數據樣本的數量統計,并計算出樣本的先驗幾率,再通過貝葉斯公式得出樣本要統一到那種類別的后驗幾率,然后在選擇出后驗幾率值較大的一個,當做大數據樣本的類別。通過上述能夠得出,樸素貝葉斯智能分類器為一個能夠很大程度節省分類時間,且容錯率較小的分類器,擬定源組被分割為m種類別:c1,c2,…,cj,…,cm相對于要把測試數據劃分到m種類別的問題,能夠經過構建下列分類模型計算。有式(10)推理可得

(10)
式中,N代表樣本總數,是可以忽略的常數。N(c)是c類的樣本總數,N(c,ak)是c類中屬性為ak出現的數量。經過上述完成基于NBC的大數據特征分類模型的建立,為檢驗本文方法的有效性,需進行仿真。
仿真環境為Intel Celeron Tulatin1GHz CPU和384MB SD內存的硬件環境和MATLAB6.1的軟件環境。仿真系統中包含數據干擾模塊、資源調度模塊以及任務產生模塊,基于上述部分的組成,以MS-COCO數據集作為數據獲取來源,并在該數據集中任意采取1000個任務數據,同時將任務數據擬存于仿真系統中,數據字節控制在[256~568kb]之間,實驗終止條件設置為300次,將本文方法分別與文獻[1]以及文獻[2]進行對比。本文仿真算法參數如表1所示。

表1 仿真算法參數
為實現低占用率大數據的智能分類,需建立智能分類模型,訓練任務數據。訓練的工作就是將樣本數據進行訓練,并獲取靜態值,其目的就是為了獲取測試樣本數據的某種類別幾率做準備。通過NBS算法能夠看出,把訓練樣本分配到Map任務節點上,會干擾最后結果,所以該階段能夠實現Ma-pReduce并行化,使其在分類過后,并不會占用太多的云計算空間。
Map函數輸入的是Ma-pReduce的輸入模式。key代表樣本數據對于大數據起始初始位置的偏移量,value的形式是x=(c,a1,a2,a3,…,ai,…,an)的樣本數據。通過Map函數處理后生成中間結果建值對,其中key1含有兩個類型:attrIndex,attrVal-ue,category和category。前者代表統計特定類別時每種屬性值出現的數量,后者用在統計各類別的樣本數量。Valuel都是統計其個數。
將value中取得訓練樣本數據:Value起始為1。
取得樣本數據x的類標簽categort當做key1,建造字符串,含有其樣本的屬性值、樣本類標簽categort和樣本的序列號。
當做key1,輸出(key1,valel),把Map輸出的不相同的key1經過上述投影到狀況不同的Reduce任務節點上。通過對應的處理,key1不變,對同種key1值的balue1進行疊加,所以能夠獲取每一種類別的樣本總數與特征類別中不同列的每一種屬性數量。
通過對大數據樣本進行某種類別的歸屬測試和對模型訓練,從而獲取大數據的靜態值。然而對大數據樣本進行測試的時候,在算法計算之前,要獲取模型在訓練后的結果和其中含有的路徑,就需要將該結果與HashMap、Array-List進行融合,這樣就測試階段的結果獲取就變得非常簡單。
在最終測試中,Map函數的輸入值與模型的訓練階段是一樣的。所以在不同的樣本中測試可以完整并獨立的獲取訓練完成后的完整靜態數據,使測試樣本階段擁有并行性。首先將大數據樣本的測試集在特征類別的狀態下每一種取值都概率累乘,在算出最終的概率catePm。對每一種大數據樣本的測試,都需要將所有種類c進行計算,并獲取屬于特征種類c的概率。
從value中算出大數據樣本測試數據x;
原始化變量lvalue,將在記錄c的所有變量屬性值;
原始化變量catePro,記錄屬于某種特定類c的幾率。原始值是1,0,對某種特征類c;
lvalue=lvalue.nextTokems
從訓練階段取得的靜態數據中提取出該類別c中屬性列中取值是lvalue的數量num:
把特定類c當做key1;
把所求的幾率catePro當做valuel;
輸出(key1,valel)。
通過上述完成分類模型數值的訓練,并輸出k值。
3.3.1 分類時長開銷
為了證明本文方法的分類性能,首先給出本文方法和傳統方法,在云計算下不同的數據量的智能分類時間比較。
如圖1所示能夠看出本文方法從時間的消耗上遠遠優于傳統方法,能夠得出本文所提出的樸素貝葉斯模型能夠有效減少了方法的計算量,從而簡化了方法的分類效率。

圖1 不同方法的智能分類時間對比
3.3.2 分類數據的壓縮處理效率
以上述處理結果為基礎,進行分類數據的壓縮處理效率分析。效率分析過程為:將本文算法輸入至仿真系統中,同時,將獲取的1000條數據發送到MATLAB6.1系統中,檢測本文方法的壓縮處理效率,處理結果如圖2所示。

圖2 數據分類的處理效率
通過分析圖2可知本文方法的處理效率能力高,對于大小為2GB的分類數據進行壓縮時僅需3分零9秒,具有高效的壓縮能力。
3.3.3 分類精準度
經過擬定不同的k值進行實驗,對比傳統方法和本文方法在不同k值下的分類精準度,如圖2所示。

圖3 不同方法的準確度和占用率對比
通過上述實驗能夠看出,在云計算下的大數據智能分類上,本文方法較比傳統方法,有著分類效率高、數據分類精準高的優點。
本文針對云計算下大數據智能分類效率低和占用空間較大的問題,提出了一種云計算下低占用率大數據智能分類。本文主要內容及過程為:
1)通過構建智能分類模型,對大數據進行進行特征選擇;
2)將構建的樸素貝葉斯智能分類模型進行訓練,并對選擇出的特征進行智能分類;
3)進行仿真,證明本文方法在云計算下大數據智能分類方面,有著分類效率高和占用率低的優點。