劉曦元,周忠超
(國家無線電監測中心云南監測站,昆明 650031)
數據挖掘的目的是把隱沒在大量看起來雜亂無章的數據中的信息集中、萃取和提煉出來,以找出所研究對象的內在規律。隨著無線電監測事業的發展及監測技術的革新,無線電監測數據被源源不斷的記錄下來,對記錄下來的數據進行科學的分析及合理的統計,可獲得更為準確的信號發射規律,進而深入研究監測數據背后所蘊含的意義,為無線電監測提供數據輔助,探索新形勢下的短波監測方法。
因此,本文針對短波無線電監測數據結合軟件開發技術,進行多角度、多維度的數據挖掘應用設計,希望為短波無線電監測提供更為強而有力的技術支持,為無線電短波頻譜管理提供數據保障,為今后更科學、合理的進行短波監測工作提供數據依據。
監測數據的數據挖掘是一個較為復雜且繁瑣的過程,其涉及復雜算法和龐大數據,同時,其使用的數據可能存在敏感性,因此,本軟件設計使用了桌面客戶端的形式,提供強大的可移植性,并使用MVC的設計模式,即模型-視圖-控制的形式,提供簡易的操作。系統的總體設計結構如圖1所示。
圖1 數據挖掘軟件系統架構圖
本系統的設計目標如下:通過讀入外部數據(excel表格數據或xml數據)進行短波無線電監測數據的數據建模,然后按照數據的有效性定義進行數據清洗過濾,剩下的有效數據進行統計分析,達到數據挖掘的目的。
備注:①信號分析在本文中含義為對信號的分析,即分析信號的頻率、帶寬、調制模式和發射時間等。②短波無線電監測數據挖掘指通過對信號分析產生的數據進行統計分析,得到有用數據的過程。③數據的有效性定義為規定目標數據的有效屬性,例如短波信號頻率在3-3 0MHz之間,超出頻率范圍則被視為無效數據。
本設計使用短波監測數據進行數據挖掘,短波監測數據包含信號的頻率、帶寬、調制模式、監測時間等數據,其每一項均稱為數據項。本設計使用的數據項的數據類型包含雙精度浮點數字類型,例如頻率和帶寬;字符串文本類型,例如調制模式;時間類型,例如監測時間等。
備注:雙精度浮點數(double)是計算機使用的一種數據類型,使用64位(8字節)來存儲一個浮點數。它可以表示十進制的15或16位有效數字,其可以表示的數字的絕對值范圍大約是:
2.23*10 ^-308~1.79*10^308。
圖2 軟件流程圖
軟件啟動后,提示人工選擇數據源,按照每條屬性逐一選擇過濾條件,之后選擇算法,選擇統計的數據項,最后將由軟件給出對應的統計圖,參照統計圖可得出本次數據挖掘的信息。
對單項為數字項的數據進行統計可采用頻率分布直方圖來顯示頻率分布及正態分布曲線算法來計算和表示數據的分布規律。
頻率分布直方圖的一般畫法:
(1)先求出極差
極差公式為:
極差=組數據中的最大值-組數據中的最小值
(2)決定組數和組距
式中,N為組中數據的個數,公式的值均四舍五入向上取整。組距公式為:即極差除以分組數。
(3)根據以上公式,按照組號、組坐標、頻數統計出列表:
組號可從1開始依次增加,組坐標除第一組為Xmin+ι(即組數據中的最小值加組距),其余組坐標均為上一組坐標加組距。頻數除第一組為開區間,其余組為左閉右開的半開半閉區間。由此可形成頻率分布直方圖,可直觀顯示頻率分布。在此基礎上,可增加正態分布曲線來探究數據的分布規律。
正態分布曲線的公式為:
式中,x為本組數據的頻數;μ為中心值(均數);σ為標準差。中心值(均數)公式為:
中心值=一組數據之和/數據的個數。
標準差也被稱為標準偏差,或者實驗標準差,公式如下所示:
標準差=方差的算術平方根(即所有數減去其均值的平方和,所得結果除以該組數之個數(或個數減一,即變異數),再把所得值開根號,所得之數就是這組數據的標準差)。
正態分布曲線是一種概率分布。生產與科學實驗中很多隨機變量的概率分布都可以近似地用正態分布來描述。從理論上看,正態分布具有很多良好的性質,許多概率分布可以用它來近似表示。
單項分析中對時間屬性進行分析,其意義在于分析探究信號出現的規律,因此,可將信號出現的時間進行計數統計。將時間信息做標準化轉換,形成如“yyyy-MM-dd-HH-mm-ss”的形式即“年-月-日-時-分-秒”的時間格式。將總數據規范化,存入鏈表中,對鏈表進行迭代從而遍歷所有數據。在迭代中,首先檢查當前數據的時間屬性是否為空,為空則跳過此條數據,不為空則提取當前時間,進行標準格式轉換,然后截取所需時間的文本段,例如:
需要統計每年每月所產生多少數據則可截取“yyyy-MM”為key,將其放入一個map集合中,當map集合中已有當前key則key對應的數值+1,反之則建立當前key所對應的數據并將計數存為1。當迭代結束后,map集合中所存儲的數據即為每年每月所產生數據的二維集合,再次將map集合轉為鏈表可得到形如xxxx年xx月有xx條數據的表格信息。鏈表迭代的流程圖如圖3所示。
圖3 對數據的時間信息進行迭代的流程圖
備注:鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,但是并不會按線性的順序存儲數據,而是在每一個節點里存到下一個節點的指針(Pointer)。由于鏈表可以不按順序存儲,鏈表在插入的時候可以達到O(1)的復雜度,比另一種線性表順序表快得多,但是查找一個節點或者訪問特定編號的節點則需要O(n)的時間,而順序表相應的時間復雜度分別是O(logn)和O(1)。Map集合提供了key到value的映射,Map中不能包含相同的key值,每個key只能影射一個相同的value。key值還決定了存儲對象在映射中的存儲位置。但不是key對象本身決定的,而是通過散列技術進行處理,可產生一個散列碼的整數值,散列碼通常用作一個偏移量,該偏移量對應分配給映射的內存區域的起始位置,從而確定存儲對象在映射中的存儲位置。
在多項分析中,對數字項和文本項的統計基本上是單項數據分析的拓展,對數字與數字項、數字與文本項的聯合分析,主要依托于對數據的分類提取,例如信號頻率與調制方式的聯合分析:將頻率數據按照解調方式分成若干組,在對每組進行單項數據分析,可得到諸如FM調制模式下,信號在頻譜上的分布規律等分析結果。特別要提到的是對于數字與數字項進行分析時,可先計算其相關性。計算兩組數字項的相關性可使用皮爾遜相關系數來表示,一般情況下,相關系數R>0.9為高度相關,0.75<R<0.9為顯著相關,0.5<R<0.75為一般相關,R<0.5為不相關。相關系數的結果小,并不一定表示不相關。相關系數計算的應該是線性相關系數,相關系數是用以反映變量之間相關關系密切程度的統計指標。
相關系數的簡單公式為:
式中,Cov(X,Y)為X集合與Y集合的協方差;D(x)為X集合的方差;D(y)為Y集合的方差。
協方差Cov(X,Y)公式為:
Cov(X,Y)=E(xy)-E(x)E(y)
式中,E(x)為X集合的期望;E(y)為Y集合的期望,等同于各集合的平均數。E(xy)公式為:
式中,n為數據的個數。方差公式為:
式中,x為X集合的均數。通過上述描述的公式,計算可得兩個集合的相關系數。
通過上述的軟件算法應用,進行短波監測數據的數據挖掘:單項數據分析,主要計算本項數據的分布概率及期望,可實際運用于對短波數據的頻率進行數據分析,可得出頻率分布直方圖及頻率分布的正態曲線圖,通過觀察正態曲線圖,可得出頻率的實際使用情況。多項數據分析在單項數據分析的基礎上加入了分類,可實際運用于頻率與調制模式的綜合分析,例如將FM調制模式的頻率提取出來進行單項數據分析可得知FM調制模式下信號的常用頻率。對以上簡述的單項或多項數據統計按照時間分類,又可得到數據的時間變化情況,例如對頻率單項分析后按照時間分類則可得知某年某月的頻率使用情況。以上算法可根據需求及數據挖掘研究的深入再進行拓展。
本文從軟件開發的角度,結合統計學算法對短波無線電監測數據進行數據挖掘應用程序設計,并簡述了部分統計學算法在實際處理短波無線電監測數據過程中的作用,增強了短波無線電監測數據的可用性,為今后更科學、合理地進行短波監測工作提供數據依據,為短波無線電監測數據分析提供新的思路。