商俊燕,丁 輝,胡學龍
(1.常州工業職業技術學院 信息工程學院,江蘇 常州 213164;2.揚州大學信息工程學院,江蘇 揚州 225127)
無線傳感器網絡憑借其傳輸數據量大且速度較快的優勢,廣泛地應用于不同研究領域[1]。但由于無線傳感器網絡的節點分布較為密集,節點與節點之間覆蓋區域出現大量交疊情況,節點工作時會出現大量的冗余數據,造成能耗較大,消耗網絡生存時間,消減網絡使用壽命[2]。為此,對無線傳感器網絡開展有效的冗余數據檢測,是網絡管理部門亟待解決的問題。
文獻[3]提出基于加權社會網絡的低維冗余數據挖掘算法。該方法首先建立網絡的加權社會模型,對網絡采集數據展開可視化分析;依據分析結果提取數據冗余特征,計算數據的低維冗余支持度,并依據計算結果對低維數據的關聯規則實施評價;最后通過數據關聯規則對數據進行聚類處理,實現網絡冗余數據的檢測。該方法的檢測耗時較短,但檢測正確率較低。文獻[4]對無線傳感器網絡中的冗余流量進行了研究。基于節點的剩余能量執行多跳路由,利用短信標消息處理基于區域的路由中產生的冗余數據包。較低區域的節點以最少的跳數將較高區域的數據路由到基站,并且僅利用路徑上的那些節能且位于基站附近的節點。中繼節點使用無線廣播優勢來確認源節點,而不向發送方發送任何特殊的ACK 包,這減少了路由過程中的控制開銷。該方法具有較高的數據吞吐量,但存在檢測召回率較低的問題。
為解決上述網絡冗余數據檢測過程中存在的問題,提出基于XGBoost 的無線傳感器網絡冗余數據檢測算法。
為了有效實現無線傳感器網絡冗余數據檢測,針對無線傳感器網絡缺失數據實施插補處理,從而有效預處理無線傳感器網絡數據。利用局部近鄰算法,建立無線傳感器網絡數據辨識矩陣,降維無線傳感器網絡數據,由此提高無線傳感器網絡冗余數據檢測正確率。
在無線傳感器網絡數據預處理過程中,需要使用相關算法對無線傳感器網絡中的缺失數據實施缺失值插補處理[5-6]。
通過數據采集器對無線傳感器網絡數據展開采集處理,建立無線傳感器網絡數據集A,并將其劃分成測試集B 和檢測集C。無線傳感器網絡缺失數據缺失值插補處理流程如下:
①確定無線傳感器網絡數據中的自變量與因變量。
在無線傳感器網絡數據集中確定缺失數據為因變量mi,未缺失數據為自變量ni。
②明確數據缺失值上、下限。
通過最近鄰算法獲取網絡缺失值的上下限,并將其設定為[msi,mxi],缺失插補過程中迭代值不可超出該閾值。
③網絡數據缺失值隨機插補。
在設定的缺失值上下限閾值之間隨機選取數據,初次對無線傳感器網絡[7]中的缺失數據開展缺失值插補處理。
④尋找最優復雜度模型。
通過構建具有傳感器網絡缺失數據的分組處理模型,以此來尋求數據最優復雜度。數據最優復雜度確定后,依據數據的分組插補方法計算網絡數據缺失值的誤差。
⑤開展缺失值插補處理。
重復上述流程對網絡數據迭代計算,直至完成所有數據的插補處理。
無線傳感器網絡完成數據缺失值插補后,通過Z-score 算法完成無線傳感器網絡數據的標準化處理[8],結果如下式所示:

式中,n為無線傳感器網絡的數據總量,man,I為實際數據值,An為數據平均值。Sn為數據標準差,數man為據的標準化處理結果。
無線傳感器網絡數據在完成缺失值插補后,通過局部近鄰算法[9]對網絡數據實施降維處理。
1.2.1 建立辨識矩陣
設定無線傳感器網絡數據中有a個訓練樣本數據,根據數據集高維空間樣本的局部近鄰關系,構造了一個網絡數據的近鄰矩陣為:

式中,G為建立的近鄰矩陣,網絡數據樣本xi與xj之間互為近鄰關系,As為數據近鄰樣本集合。
設定近鄰矩陣中任意向量為gij,依據網路數據的類別標簽,建立網絡數據的辨識矩陣,結果如下式所示:

式中,‖xi-xj‖為樣本數據xi與xj之間的歐氏距離,o為調節常數,exp 為指數函數,B為建立的辨識矩陣。
1.2.2 數據降維
依據傳感器網絡數據近鄰點數量建立數據的局部近鄰圖,再通過建立的近鄰圖,構建數據局部散度矩陣以及全局散度矩陣,過程如下式所示:

式中,K為拉普拉斯矩陣,Bk為建立的網絡數據局部散度矩陣,BA為全局散度矩陣,T為逼近系數,i為矩陣行向量,j為列向量,X為網絡樣本數據集,m為常數,Bij為在i行j列的數據。
通過建立的數據散度矩陣[10]獲取無線傳感器網絡數據的辨識向量c,以此建立無線傳感器網絡數據的變換函數模型,結果如下式所示:

式中,J(C)為建立的變換函數,C為辨識向量集合,JA(C)、Jk(C)為矩陣辨識系數,tr 為矩陣對角函數。
柑橘產量與氣溫、降水量呈顯著正相關;與日照時數呈極顯著負相關。需要加強研究柑橘各發育期氣象因子與柑橘產量的關系,掌握柑橘生長發育期對氣溫、降水、日照的需求,有效利用氣象條件,防范氣象災害,結合生產實際,加強果園管理,提高柑橘產量與品質。
模型建立后,通過模型的正交化約束,計算數據正交向量值,建立模型的正交函數計算模型的特征向量值,過程如下式所示:

式中,δm為變換函數模型正交特征向量,argmin 為對數函數?;谏鲜霁@取變換函數模型的正交基特征向量,獲取模型目標函數解,實現無線傳感器網絡數據的降維,過程如下式所示:

式中,φ為模型目標函數解[11],s.t.為模型約束條件。
在上述無線傳感器網絡數據預處理的基礎上,設計XGBoost 檢測算法。采用XGBoost 算法,提取無線傳感器網絡數據冗余特征。利用決策樹,建立無線傳感器網絡數據分類模型,分類無線傳感器網絡數據冗余特征,由此實現無線傳感器網絡的冗余數據檢測,從而有效提高無線傳感器網絡冗余數據檢測召回率。
使用XGBoost 算法,基于數據降維后的無線傳感器網絡數據樣本以及冗余類別,建立無線傳感器網絡數據的目標函數,結果如下式所示:

式中,ei為數據i的目標實際值,ej為目標預測值,l(ei,ej)為二者之間的差異,m為樣本數量,?(fk)為數據樣本k的特征參數,fk為分裂樹的模型復雜度,K為數據樣本的特征參數總量,U為建立的目標函數。

式中,U(t)為冗余數據的分裂樹節點累加值,ωi為節點輸出分數,I為分類樹葉子上的樣本集合,Ij為分裂樹結構函數,T為葉子節點,gi、hi為數據冗余系數,γ、λ為權重因子。
分裂樹建立后,依據冗余數據特征編碼形式確定無線傳感器網絡數據的特征。設定網絡數據訓練樣本集為{x1,x2,…,xn},數據樣本在第K棵冗余數據分裂樹上的對應節點位置為βnk,以此建立樣本數據的索引向量矩陣,過程如下式所示:

式中,Z為建立的樣本索引向量矩陣,K為分裂樹數量。n為樣本數量。
最后依據無線傳感器網絡數據樣本索引向量矩陣計算結果,完成數據冗余特征的提取。
由于提取出的數據冗余特征包含多個類別,因此,依據建立的決策樹對無線傳感器網絡數據實施分類處理,完成無線傳感器網絡冗余數據的檢測。
基于提取的數據冗余特征建立無線傳感器網絡數據分類模型[12],過程如下式所示:

式中,M為建立的分類模型,η為網絡數據的分類算子,t為樣本標簽,X為訓練數據集。最后依據下式完成無線傳感器網絡冗余數據的分類,實現無線傳感器網絡冗余數據的檢測,過程如下式所示:

式中,R為數據分類結果,loss 為分類模型的模型誤差,Xbest為測試數據集,Ctest為分類標簽。
為了驗證基于XGBoost 的無線傳感器網絡冗余數據檢測算法的有效性,需要對此方法進行仿真分析對比測試。采用NSL-KDD 數據集,基于MATLAB 2016a 軟件進行了仿真分析。設定樣本數據量為6 000 個,仿真參數迭代數量為150,學習率為0.1。XGBoost 算法實現的偽代碼如下:


分別采用基于XGBoost 的無線傳感器網絡冗余數據檢測算法(所提方法)、加權社會網絡低維冗余數據快速挖掘算法仿真(文獻[3]方法)、無線傳感器網絡區域路由中處理冗余流量的節能技術(文獻[4]方法)展開測試。
選取檢測正確率、召回率以及F1 值作為檢測效果測試指標,以此測試上述3 種方法的冗余數據檢測效果。
①檢測正確率測試:檢測正確率是指正確檢測樣本數據量占樣本數據量總數的百分比。冗余數據檢測正確率測試中,檢測正確率越高,說明冗余數據檢測效果越好;檢測正確率越低,說明冗余數據的檢測效果越差。對3 種方法的檢測正確率展開測試,測試結果如圖1 所示。

圖1 不同方法的檢測正確率測試結果
由圖1 可知,樣本數據量與3 種冗余數據檢測方法的檢測正確率呈負相關趨勢。當樣本數據量達到6 000 個時,文獻[3]方法和文獻[4]方法的檢測正確率分別為90.45%和89.43%,而所提方法的檢測正確率為97.59%。由此可知,所提方法測試出的檢測正確率是3 種方法中最高的,由此可證明,所提方法在冗余數據檢測時的檢測效果較好。
②檢測召回率測試:檢測召回率是指檢測為正確的檢測樣本數據量占實際的檢測樣本數據量的百分比。冗余數據檢測召回率測試時,測試出的召回率越高,說明冗余數據的檢測效果越好,反之則越差。對3 種方法的召回率展開測試,測試結果如圖2 所示。

圖2 不同方法的檢測召回率測試結果
由圖2 可知,樣本數據量與3 種方法測試出的召回率呈負相關趨勢。當樣本數據量達到6 000 個時,文獻[3]方法和文獻[4]方法的檢測召回率分別為84.45%和75.43%,而所提方法的檢測召回率為95.00%。由此可知,所提方法的檢測召回率較高,可證明所提方法在開展冗余數據檢測時,具備有效性。
③檢測F1 值測試:檢測F1 值是指檢測正確率和檢測召回率的調和平均數。采用F1 值測試指標對所提方法、文獻[3]方法以及文獻[4]方法的冗余數據檢測結果展開測試,測試過程中,F1 值測試結果越高,說明檢測方法的檢測效果越好,反之則越差。以此測試3 種方法冗余數據檢測效果。測試結果如圖3 所示。

圖3 不同方法的檢測F1 值測試結果
由圖3 可知,樣本數據量與檢測方法的F1 值呈負相關趨勢。當樣本數據量達到6 000 個時,文獻[3]方法和文獻[4]方法的檢測F1 值分別為60.96%和59.84%,而所提方法的檢測F1 值為65.87%。由此可知,所提方法的F1 值測試結果較高,說明所提方法的檢測效果較好。這主要是因為所提方法在冗余數據檢測前,使用局部近鄰算法對網絡數據實施降維處理,所以該方法在開展冗余數據檢測時的F1 值較高。
綜上所述,所提方法在開展無線傳感器網絡冗余數據檢測時,檢測的正確率、召回率和F1 值較高。由此可證明,所提方法在冗余數據檢測時的檢測效果好。
隨著傳感器網絡使用范圍的增加,傳感器網絡冗余數據檢測就變得尤為重要。針對傳統冗余數據檢測方法中存在的問題,提出基于XGBoost 的無線傳感器網絡冗余數據檢測算法。該方法依據數據的降維結果,提取網絡的冗余數據特征,建立無線傳感器網絡數據分類模型;最后依據建立的數據分類模型完成網絡數據的分類,實現冗余數據的檢測。該方法具有較好的檢測效果,能夠有效提升無線傳感器網絡的運行安全性。