商俊燕,丁 輝,胡學(xué)龍
(1.常州工業(yè)職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,江蘇 常州 213164;2.揚(yáng)州大學(xué)信息工程學(xué)院,江蘇 揚(yáng)州 225127)
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)憑借其傳輸數(shù)據(jù)量大且速度較快的優(yōu)勢(shì),廣泛地應(yīng)用于不同研究領(lǐng)域[1]。但由于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)分布較為密集,節(jié)點(diǎn)與節(jié)點(diǎn)之間覆蓋區(qū)域出現(xiàn)大量交疊情況,節(jié)點(diǎn)工作時(shí)會(huì)出現(xiàn)大量的冗余數(shù)據(jù),造成能耗較大,消耗網(wǎng)絡(luò)生存時(shí)間,消減網(wǎng)絡(luò)使用壽命[2]。為此,對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)開(kāi)展有效的冗余數(shù)據(jù)檢測(cè),是網(wǎng)絡(luò)管理部門(mén)亟待解決的問(wèn)題。
文獻(xiàn)[3]提出基于加權(quán)社會(huì)網(wǎng)絡(luò)的低維冗余數(shù)據(jù)挖掘算法。該方法首先建立網(wǎng)絡(luò)的加權(quán)社會(huì)模型,對(duì)網(wǎng)絡(luò)采集數(shù)據(jù)展開(kāi)可視化分析;依據(jù)分析結(jié)果提取數(shù)據(jù)冗余特征,計(jì)算數(shù)據(jù)的低維冗余支持度,并依據(jù)計(jì)算結(jié)果對(duì)低維數(shù)據(jù)的關(guān)聯(lián)規(guī)則實(shí)施評(píng)價(jià);最后通過(guò)數(shù)據(jù)關(guān)聯(lián)規(guī)則對(duì)數(shù)據(jù)進(jìn)行聚類(lèi)處理,實(shí)現(xiàn)網(wǎng)絡(luò)冗余數(shù)據(jù)的檢測(cè)。該方法的檢測(cè)耗時(shí)較短,但檢測(cè)正確率較低。文獻(xiàn)[4]對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的冗余流量進(jìn)行了研究?;诠?jié)點(diǎn)的剩余能量執(zhí)行多跳路由,利用短信標(biāo)消息處理基于區(qū)域的路由中產(chǎn)生的冗余數(shù)據(jù)包。較低區(qū)域的節(jié)點(diǎn)以最少的跳數(shù)將較高區(qū)域的數(shù)據(jù)路由到基站,并且僅利用路徑上的那些節(jié)能且位于基站附近的節(jié)點(diǎn)。中繼節(jié)點(diǎn)使用無(wú)線(xiàn)廣播優(yōu)勢(shì)來(lái)確認(rèn)源節(jié)點(diǎn),而不向發(fā)送方發(fā)送任何特殊的ACK 包,這減少了路由過(guò)程中的控制開(kāi)銷(xiāo)。該方法具有較高的數(shù)據(jù)吞吐量,但存在檢測(cè)召回率較低的問(wèn)題。
為解決上述網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)過(guò)程中存在的問(wèn)題,提出基于XGBoost 的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)算法。
為了有效實(shí)現(xiàn)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè),針對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)缺失數(shù)據(jù)實(shí)施插補(bǔ)處理,從而有效預(yù)處理無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)。利用局部近鄰算法,建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)辨識(shí)矩陣,降維無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù),由此提高無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)正確率。
在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理過(guò)程中,需要使用相關(guān)算法對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的缺失數(shù)據(jù)實(shí)施缺失值插補(bǔ)處理[5-6]。
通過(guò)數(shù)據(jù)采集器對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)展開(kāi)采集處理,建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)集A,并將其劃分成測(cè)試集B 和檢測(cè)集C。無(wú)線(xiàn)傳感器網(wǎng)絡(luò)缺失數(shù)據(jù)缺失值插補(bǔ)處理流程如下:
①確定無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)中的自變量與因變量。
在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)集中確定缺失數(shù)據(jù)為因變量mi,未缺失數(shù)據(jù)為自變量ni。
②明確數(shù)據(jù)缺失值上、下限。
通過(guò)最近鄰算法獲取網(wǎng)絡(luò)缺失值的上下限,并將其設(shè)定為[msi,mxi],缺失插補(bǔ)過(guò)程中迭代值不可超出該閾值。
③網(wǎng)絡(luò)數(shù)據(jù)缺失值隨機(jī)插補(bǔ)。
在設(shè)定的缺失值上下限閾值之間隨機(jī)選取數(shù)據(jù),初次對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)[7]中的缺失數(shù)據(jù)開(kāi)展缺失值插補(bǔ)處理。
④尋找最優(yōu)復(fù)雜度模型。
通過(guò)構(gòu)建具有傳感器網(wǎng)絡(luò)缺失數(shù)據(jù)的分組處理模型,以此來(lái)尋求數(shù)據(jù)最優(yōu)復(fù)雜度。數(shù)據(jù)最優(yōu)復(fù)雜度確定后,依據(jù)數(shù)據(jù)的分組插補(bǔ)方法計(jì)算網(wǎng)絡(luò)數(shù)據(jù)缺失值的誤差。
⑤開(kāi)展缺失值插補(bǔ)處理。
重復(fù)上述流程對(duì)網(wǎng)絡(luò)數(shù)據(jù)迭代計(jì)算,直至完成所有數(shù)據(jù)的插補(bǔ)處理。
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)完成數(shù)據(jù)缺失值插補(bǔ)后,通過(guò)Z-score 算法完成無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)化處理[8],結(jié)果如下式所示:
式中,n為無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的數(shù)據(jù)總量,man,I為實(shí)際數(shù)據(jù)值,An為數(shù)據(jù)平均值。Sn為數(shù)據(jù)標(biāo)準(zhǔn)差,數(shù)man為據(jù)的標(biāo)準(zhǔn)化處理結(jié)果。
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)在完成缺失值插補(bǔ)后,通過(guò)局部近鄰算法[9]對(duì)網(wǎng)絡(luò)數(shù)據(jù)實(shí)施降維處理。
1.2.1 建立辨識(shí)矩陣
設(shè)定無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)中有a個(gè)訓(xùn)練樣本數(shù)據(jù),根據(jù)數(shù)據(jù)集高維空間樣本的局部近鄰關(guān)系,構(gòu)造了一個(gè)網(wǎng)絡(luò)數(shù)據(jù)的近鄰矩陣為:
式中,G為建立的近鄰矩陣,網(wǎng)絡(luò)數(shù)據(jù)樣本xi與xj之間互為近鄰關(guān)系,As為數(shù)據(jù)近鄰樣本集合。
設(shè)定近鄰矩陣中任意向量為gij,依據(jù)網(wǎng)路數(shù)據(jù)的類(lèi)別標(biāo)簽,建立網(wǎng)絡(luò)數(shù)據(jù)的辨識(shí)矩陣,結(jié)果如下式所示:
式中,‖xi-xj‖為樣本數(shù)據(jù)xi與xj之間的歐氏距離,o為調(diào)節(jié)常數(shù),exp 為指數(shù)函數(shù),B為建立的辨識(shí)矩陣。
1.2.2 數(shù)據(jù)降維
依據(jù)傳感器網(wǎng)絡(luò)數(shù)據(jù)近鄰點(diǎn)數(shù)量建立數(shù)據(jù)的局部近鄰圖,再通過(guò)建立的近鄰圖,構(gòu)建數(shù)據(jù)局部散度矩陣以及全局散度矩陣,過(guò)程如下式所示:
式中,K為拉普拉斯矩陣,Bk為建立的網(wǎng)絡(luò)數(shù)據(jù)局部散度矩陣,BA為全局散度矩陣,T為逼近系數(shù),i為矩陣行向量,j為列向量,X為網(wǎng)絡(luò)樣本數(shù)據(jù)集,m為常數(shù),Bij為在i行j列的數(shù)據(jù)。
通過(guò)建立的數(shù)據(jù)散度矩陣[10]獲取無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的辨識(shí)向量c,以此建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的變換函數(shù)模型,結(jié)果如下式所示:
式中,J(C)為建立的變換函數(shù),C為辨識(shí)向量集合,JA(C)、Jk(C)為矩陣辨識(shí)系數(shù),tr 為矩陣對(duì)角函數(shù)。
柑橘產(chǎn)量與氣溫、降水量呈顯著正相關(guān);與日照時(shí)數(shù)呈極顯著負(fù)相關(guān)。需要加強(qiáng)研究柑橘各發(fā)育期氣象因子與柑橘產(chǎn)量的關(guān)系,掌握柑橘生長(zhǎng)發(fā)育期對(duì)氣溫、降水、日照的需求,有效利用氣象條件,防范氣象災(zāi)害,結(jié)合生產(chǎn)實(shí)際,加強(qiáng)果園管理,提高柑橘產(chǎn)量與品質(zhì)。
模型建立后,通過(guò)模型的正交化約束,計(jì)算數(shù)據(jù)正交向量值,建立模型的正交函數(shù)計(jì)算模型的特征向量值,過(guò)程如下式所示:
式中,δm為變換函數(shù)模型正交特征向量,argmin 為對(duì)數(shù)函數(shù)?;谏鲜霁@取變換函數(shù)模型的正交基特征向量,獲取模型目標(biāo)函數(shù)解,實(shí)現(xiàn)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的降維,過(guò)程如下式所示:
式中,φ為模型目標(biāo)函數(shù)解[11],s.t.為模型約束條件。
在上述無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理的基礎(chǔ)上,設(shè)計(jì)XGBoost 檢測(cè)算法。采用XGBoost 算法,提取無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)冗余特征。利用決策樹(shù),建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)分類(lèi)模型,分類(lèi)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)冗余特征,由此實(shí)現(xiàn)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的冗余數(shù)據(jù)檢測(cè),從而有效提高無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)召回率。
使用XGBoost 算法,基于數(shù)據(jù)降維后的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)樣本以及冗余類(lèi)別,建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的目標(biāo)函數(shù),結(jié)果如下式所示:
式中,ei為數(shù)據(jù)i的目標(biāo)實(shí)際值,ej為目標(biāo)預(yù)測(cè)值,l(ei,ej)為二者之間的差異,m為樣本數(shù)量,?(fk)為數(shù)據(jù)樣本k的特征參數(shù),fk為分裂樹(shù)的模型復(fù)雜度,K為數(shù)據(jù)樣本的特征參數(shù)總量,U為建立的目標(biāo)函數(shù)。
式中,U(t)為冗余數(shù)據(jù)的分裂樹(shù)節(jié)點(diǎn)累加值,ωi為節(jié)點(diǎn)輸出分?jǐn)?shù),I為分類(lèi)樹(shù)葉子上的樣本集合,Ij為分裂樹(shù)結(jié)構(gòu)函數(shù),T為葉子節(jié)點(diǎn),gi、hi為數(shù)據(jù)冗余系數(shù),γ、λ為權(quán)重因子。
分裂樹(shù)建立后,依據(jù)冗余數(shù)據(jù)特征編碼形式確定無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)的特征。設(shè)定網(wǎng)絡(luò)數(shù)據(jù)訓(xùn)練樣本集為{x1,x2,…,xn},數(shù)據(jù)樣本在第K棵冗余數(shù)據(jù)分裂樹(shù)上的對(duì)應(yīng)節(jié)點(diǎn)位置為βnk,以此建立樣本數(shù)據(jù)的索引向量矩陣,過(guò)程如下式所示:
式中,Z為建立的樣本索引向量矩陣,K為分裂樹(shù)數(shù)量。n為樣本數(shù)量。
最后依據(jù)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)樣本索引向量矩陣計(jì)算結(jié)果,完成數(shù)據(jù)冗余特征的提取。
由于提取出的數(shù)據(jù)冗余特征包含多個(gè)類(lèi)別,因此,依據(jù)建立的決策樹(shù)對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)實(shí)施分類(lèi)處理,完成無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)的檢測(cè)。
基于提取的數(shù)據(jù)冗余特征建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)分類(lèi)模型[12],過(guò)程如下式所示:
式中,M為建立的分類(lèi)模型,η為網(wǎng)絡(luò)數(shù)據(jù)的分類(lèi)算子,t為樣本標(biāo)簽,X為訓(xùn)練數(shù)據(jù)集。最后依據(jù)下式完成無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)的分類(lèi),實(shí)現(xiàn)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)的檢測(cè),過(guò)程如下式所示:
式中,R為數(shù)據(jù)分類(lèi)結(jié)果,loss 為分類(lèi)模型的模型誤差,Xbest為測(cè)試數(shù)據(jù)集,Ctest為分類(lèi)標(biāo)簽。
為了驗(yàn)證基于XGBoost 的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)算法的有效性,需要對(duì)此方法進(jìn)行仿真分析對(duì)比測(cè)試。采用NSL-KDD 數(shù)據(jù)集,基于MATLAB 2016a 軟件進(jìn)行了仿真分析。設(shè)定樣本數(shù)據(jù)量為6 000 個(gè),仿真參數(shù)迭代數(shù)量為150,學(xué)習(xí)率為0.1。XGBoost 算法實(shí)現(xiàn)的偽代碼如下:
分別采用基于XGBoost 的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)算法(所提方法)、加權(quán)社會(huì)網(wǎng)絡(luò)低維冗余數(shù)據(jù)快速挖掘算法仿真(文獻(xiàn)[3]方法)、無(wú)線(xiàn)傳感器網(wǎng)絡(luò)區(qū)域路由中處理冗余流量的節(jié)能技術(shù)(文獻(xiàn)[4]方法)展開(kāi)測(cè)試。
選取檢測(cè)正確率、召回率以及F1 值作為檢測(cè)效果測(cè)試指標(biāo),以此測(cè)試上述3 種方法的冗余數(shù)據(jù)檢測(cè)效果。
①檢測(cè)正確率測(cè)試:檢測(cè)正確率是指正確檢測(cè)樣本數(shù)據(jù)量占樣本數(shù)據(jù)量總數(shù)的百分比。冗余數(shù)據(jù)檢測(cè)正確率測(cè)試中,檢測(cè)正確率越高,說(shuō)明冗余數(shù)據(jù)檢測(cè)效果越好;檢測(cè)正確率越低,說(shuō)明冗余數(shù)據(jù)的檢測(cè)效果越差。對(duì)3 種方法的檢測(cè)正確率展開(kāi)測(cè)試,測(cè)試結(jié)果如圖1 所示。
圖1 不同方法的檢測(cè)正確率測(cè)試結(jié)果
由圖1 可知,樣本數(shù)據(jù)量與3 種冗余數(shù)據(jù)檢測(cè)方法的檢測(cè)正確率呈負(fù)相關(guān)趨勢(shì)。當(dāng)樣本數(shù)據(jù)量達(dá)到6 000 個(gè)時(shí),文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的檢測(cè)正確率分別為90.45%和89.43%,而所提方法的檢測(cè)正確率為97.59%。由此可知,所提方法測(cè)試出的檢測(cè)正確率是3 種方法中最高的,由此可證明,所提方法在冗余數(shù)據(jù)檢測(cè)時(shí)的檢測(cè)效果較好。
②檢測(cè)召回率測(cè)試:檢測(cè)召回率是指檢測(cè)為正確的檢測(cè)樣本數(shù)據(jù)量占實(shí)際的檢測(cè)樣本數(shù)據(jù)量的百分比。冗余數(shù)據(jù)檢測(cè)召回率測(cè)試時(shí),測(cè)試出的召回率越高,說(shuō)明冗余數(shù)據(jù)的檢測(cè)效果越好,反之則越差。對(duì)3 種方法的召回率展開(kāi)測(cè)試,測(cè)試結(jié)果如圖2 所示。
圖2 不同方法的檢測(cè)召回率測(cè)試結(jié)果
由圖2 可知,樣本數(shù)據(jù)量與3 種方法測(cè)試出的召回率呈負(fù)相關(guān)趨勢(shì)。當(dāng)樣本數(shù)據(jù)量達(dá)到6 000 個(gè)時(shí),文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的檢測(cè)召回率分別為84.45%和75.43%,而所提方法的檢測(cè)召回率為95.00%。由此可知,所提方法的檢測(cè)召回率較高,可證明所提方法在開(kāi)展冗余數(shù)據(jù)檢測(cè)時(shí),具備有效性。
③檢測(cè)F1 值測(cè)試:檢測(cè)F1 值是指檢測(cè)正確率和檢測(cè)召回率的調(diào)和平均數(shù)。采用F1 值測(cè)試指標(biāo)對(duì)所提方法、文獻(xiàn)[3]方法以及文獻(xiàn)[4]方法的冗余數(shù)據(jù)檢測(cè)結(jié)果展開(kāi)測(cè)試,測(cè)試過(guò)程中,F(xiàn)1 值測(cè)試結(jié)果越高,說(shuō)明檢測(cè)方法的檢測(cè)效果越好,反之則越差。以此測(cè)試3 種方法冗余數(shù)據(jù)檢測(cè)效果。測(cè)試結(jié)果如圖3 所示。
圖3 不同方法的檢測(cè)F1 值測(cè)試結(jié)果
由圖3 可知,樣本數(shù)據(jù)量與檢測(cè)方法的F1 值呈負(fù)相關(guān)趨勢(shì)。當(dāng)樣本數(shù)據(jù)量達(dá)到6 000 個(gè)時(shí),文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的檢測(cè)F1 值分別為60.96%和59.84%,而所提方法的檢測(cè)F1 值為65.87%。由此可知,所提方法的F1 值測(cè)試結(jié)果較高,說(shuō)明所提方法的檢測(cè)效果較好。這主要是因?yàn)樗岱椒ㄔ谌哂鄶?shù)據(jù)檢測(cè)前,使用局部近鄰算法對(duì)網(wǎng)絡(luò)數(shù)據(jù)實(shí)施降維處理,所以該方法在開(kāi)展冗余數(shù)據(jù)檢測(cè)時(shí)的F1 值較高。
綜上所述,所提方法在開(kāi)展無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)時(shí),檢測(cè)的正確率、召回率和F1 值較高。由此可證明,所提方法在冗余數(shù)據(jù)檢測(cè)時(shí)的檢測(cè)效果好。
隨著傳感器網(wǎng)絡(luò)使用范圍的增加,傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)就變得尤為重要。針對(duì)傳統(tǒng)冗余數(shù)據(jù)檢測(cè)方法中存在的問(wèn)題,提出基于XGBoost 的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)冗余數(shù)據(jù)檢測(cè)算法。該方法依據(jù)數(shù)據(jù)的降維結(jié)果,提取網(wǎng)絡(luò)的冗余數(shù)據(jù)特征,建立無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)分類(lèi)模型;最后依據(jù)建立的數(shù)據(jù)分類(lèi)模型完成網(wǎng)絡(luò)數(shù)據(jù)的分類(lèi),實(shí)現(xiàn)冗余數(shù)據(jù)的檢測(cè)。該方法具有較好的檢測(cè)效果,能夠有效提升無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的運(yùn)行安全性。