徐 曄,史婷婷(中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)
信號的威脅等級是信號的重要參數之一,它指明了信號在當前態勢中對本方系統的威脅程度,是作戰決策的重要依據之一。當信號被識別為已知類型時,通常可在數據庫中找到該信號的威脅等級;而對未被識別的信號,則一般由指揮人員通過經驗積累,根據一定的準則對信號的威脅程度進行判定。當前對未知信號威脅程度的判定準則基本來源于過往數據的積累和對常用雷達參數的總結,這造成了數據的碎片化程度較高,同時由于判定條件多且分散,使得編程難度較大,易在實際使用中產生錯誤。
決策樹作為一種廣泛應用的歸納推理算法,是一種逼近離散值函數的方法。該方法對噪聲數據有很好的健壯性。決策樹可以用多個if-then-else進行表示,既可以提高程序的可讀性,也可降低實現難度。本文展示了如何使用ID3決策樹學習算法結合已有經驗數據編程實現決策樹,從而對未知信號的威脅等級進行判定[1]。
決策樹顧名思義即構造樹的結構來進行數據劃分,它通過將數據從根節點輸入,到某個葉子節點作為輸出來對數據進行劃分,樹上的的每個節點都是對輸入數據的某一屬性的測試,并且該節點的每個后續子節點都對應該屬性的一種取值。當對某一輸入的特定值進行分類時,先將數據輸入樹的根節點,并測試該節點指定的屬性,然后根據給定的實例在該節點屬性上的取值,沿分支向子樹移動,并在子樹上重復上述過程。最終以樹葉節點的分類作為該實例的分類。一棵典型的決策樹如圖1所示。該樹的每條路徑代表了一種屬性的取值組合。

圖1 決策樹示例
決策樹較適合有以下特征的問題,首先,實例可以由“屬性-值”的對表示,而最終的分析結果則是由離散的輸出值表示的,如布爾值等。同時,決策樹可以處理包含錯誤的訓練數據和缺少某些特定屬性值的訓練數據。
ID3算法是一種基本的構造決策樹的算法,它的基本思想是自根節點向下用貪婪法搜索可能的決策樹空間,這里的貪婪法指算法不會回溯使用已考慮過的屬性參數。該算法的描述如下:ID3{E,A,T},E為訓練樣本,A為屬性,T為結果分類。

圖2 ID3算法描述
由此可看出,決策樹學習算法的關鍵在于如何選擇區分度最好的劃分屬性,即找出當前數據集上在劃分數據集時起決定性作用的特征。而隨著遞歸過程的進行,希望決策樹中剩余的樣本盡可能地歸于同一類別。計算劃分屬性的區分度有多種方法,如基尼系數等。這里使用一個特定的參數——信息增益來確定劃分屬性。為了計算信息增益,首先說明信息論中一個重要的指標“信息熵”。“熵”是用來度量任意信息集合純度的方式,其定義如下:
(1)
當熵越小時,說明該信息集合的純度越高,而用來選擇劃分屬性的信息增益的定義為:
(2)
式中:a為屬性;v為a的可能取值;Sv是屬性S中取值為v的子集;Sv/S為Sv樣本占所有樣本的比例,稱為權值。
上述式中的熵值為每個子集的熵的加權和。即信息增益是使用特定屬性進行類別劃分后所能導致的樣本數據信息熵的降低值。因此,信息增益越大,樣本的純度提升越大。
現以表1數據作為輸入。

表1 原始數據
由于以上的輸入值為具體的連續值,可以將各值格式化為布爾型的離散值以方便計算,處理方法是:射頻在0~2 GHz之間為0,在2~18 GHz之間為1,在18 GHz以上為2;重復間隔在0~100 μs間為0,在100以上為1;脈沖寬度在0~5 μs間為0,在5~10 μs間為1,大于10 μs為2;脈寬類型是普通時為0,特殊時為1。處理后的輸入如下:
當前訓練數據共有18組,用來標識一部信號是否為高威脅信號。構造決策樹時,共使用射頻值、重復間隔值、脈寬值、脈寬類型4種參數作為特征值,射頻、重頻及脈寬值作為雷達信號的基本參數比較全面地描述了一部雷達的信息,可以較好地對雷達進行區分,而脈寬類型則對特殊雷達的威脅度有較好的區分作用。而射頻類型、重頻類型、方位、脈內信息等參數由于在測量正確性和實時性上受到外部影響較大,不適于作為特征參數參與決策樹的構造。

表2 格式化后數據
用Python語言計算熵的算法流程圖如圖3所示[2]。

圖3 計算信息熵流程圖
根據以上輸入的參數,可構造決策樹如圖4所示。

圖4 生成的決策樹
該樹直觀地顯示了每一步驟時算法選擇的劃分屬性以及在該屬性取不同的值時后續程序給出的結論。由圖4可看出,當脈寬類型為特殊類型時,決策樹直接判斷該信號為高威脅信號,與人工分析數據得出的結論一致。根據樹的特性可知,遞歸算法是構造決策樹的常用算法。由于在每次使用決策樹時都進行實時構造將浪費大量時間,可以在空閑時利用已有數據構造完整的決策樹,構造完成后將決策樹作為對象保存在硬盤上,當使用時從硬盤讀出并恢復至內存中直接調用,這樣既可以節省時間,又可利用多種數據訓練不同的決策樹以應對不同的使用場景。
根據構造的決策樹,可以輸入表3所示數據進行分析。

表3 測試數據
將上述數據代入決策樹后得到3種信號的威脅等級分別為“高”“低”“高”,該結論與我們平時的經驗相一致。
威脅等級作為一種常用的情報參數在電子對抗作戰中有重要的參考意義。當前對未知信號威脅等級的判定主要依靠專家及一線作戰人員對各類環境下歷史數據的解讀。這種方法有2個缺點:一是依賴于個人經驗而缺乏對數據系統化的分析;二是只能對有限量的數據進行分析,容易造成遺漏。為更快、更正確地判定未知信號的威脅等級,需要快速地在大量數據中找到最具代表性的特征來分類數據,而這正是決策樹算法所擅長的。使用決策樹可以從大量數據中快速、準確地提取出有效特征值,并使用這些特征值完成對未知信號的威脅等級判定。本文所取特征值只是比較富有代表性的一部分參數,在實際的訓練過程中,可以根據不同的環境,取不同的特征值構造符合自身要求的決策樹,并在平時的訓練過程中對輸入數據進行補充、糾錯以完成對決策樹更好的迭代。在實際使用時根據特定的環境使用已經構造好的決策樹,可以省去生成樹的時間并取得較好的識別效果。
[1] 周志華.機器學習[M].2版.北京:清華大學出版社,2016.
[2] DOWNEY A R.貝葉斯思維:統計建模的Python學習法[M].許楊毅譯.北京:人民郵電出版社,2015.