傳感器數據信息發掘
數據挖掘是信息發掘過程的關鍵部分(圖 1 ),它采用一套自動和半自動的方法進行關系建模,找到隱藏在大型數據庫中的模式 [2, 3] 。
|
該技術思想來源于多種學科,包括統計、機械學習、模式識別、數據基礎系統、信息理論和人工智能等。
數據挖掘曾成功的應用在傳感器數據分析上,例如人類活動監控 [4] 、車輛監控 [5] 、振動分析等 [6] 。本文對該技術進行簡要介紹,闡述挖掘傳感器數據時必須要克服的某些技術難題。
預處理步驟
在應用數據挖掘技術之前,必須先對原始數據進行一系列預處理,將其轉換為適用于后續處理的格式。典型的預處理步驟包括:
- 特征提取 ——使用事件探測、特征選擇、特征轉換等技術(包括歸一化和傅立葉或者小波變換應用等)來確定數據挖掘任務的相關屬性。
- 數據清潔 ——解決數據質量問題,例如,噪聲、溢出、遺漏以及失準誤差等。
- 數據縮減 ——為了縮短處理時間,降低數據易變性,采用了統計抽樣和數據集中等技術。
- 維數縮減 ——為減小數據挖掘算法中的特征數,常用的線性和非線性維數縮減技術包括主分量分析( PCA )、 ISOMAP 和局部線性埋入( LLE )等。
數據挖掘大致可以分成四個不同的任務,在下面的四節中分別進行討論。
預測建模
預測建模的目的是根據目標屬性過去采樣樣本值,建立能夠預測目標屬性未來數值的模型。預測建模的方法較多,包括樹、規則、最近鄰域、邏輯回歸、人工神經網絡、圖形方法和支撐矢量機等 [2] 。這些方法用于解決兩類預測建模任務:分類和回歸。分類處理離散值目標屬性;而回歸處理連續值目標屬性。例如,可以認為檢測生產線上的產品合格與否屬于分類任務,而預測夏天的降雨總量則是回歸任務。
圖 2 所示為分類的 2D 數據曲線實例。
A |
每一數據點代表車輛發動機上溫度和振動傳感器測量的數值。顯示為十字叉的數據是在發動機正常工作時測得的,而正方形數據則是發動機將要出現故障時測得的。可以訓練一個分類機來預測發動機是否會正常工作,是否需要維修。訓練分類機意味著掌握屬于不同類別、各個測量數據的判決邊界。因此,落在圖 2 中邊界之內的任何測量數據都分類為正常工作,邊界之外的則表明為故障狀態。
注意,每一種分類方法都有自己的表征方式,以及掌握判決邊界位置的方式。某些技術(例如,人工神經網絡和最近領域分類等)能夠產生非常靈活的邊界,可以對任何類型的分類問題進行建模。有些技術會產生非常嚴格的邊界,例如判決樹分類法產生的超矩形等。有的技術試圖擬合以前所有觀察到的樣本(包括噪聲),結果導致出現稱為 過度適配 的問題。因此,需要認真選擇分類技術,確保產生的邊界不會出現訓練數據的過度適配。
聚類分析
聚類分析將數據集分成幾個組,與不同組的數據點相比,屬于同一組的數據點更具有相似性。聚類分析常用的方法包括 k 平均、自組織映射、高斯混合模型、分層聚類、子空間聚類、圖形算法(例如, Chameleon 和頻域聚類),以及密度算法等(例如, Denclue 和 DBScan ) [2] 。
這些方法的差別在于怎樣計算數據點之間的距離,以及怎樣確定數據點的分組。 K 平均使用歐幾里德距離作為基本測量,將距離中心位置最近的數據點放入分組中。圖 3 所示為地球科學領域中,對測量數據采用 k 平均分類后的結果。
|
> 圖 3. 地球科學數據的 k 平均分類 |
地圖上的每一位置由天氣和地理特征進行表征,例如,溫度、降雨、土壤濕度和植被等。科學家使用聚類分析可以確定在天氣和地理樣本上相似的地區。
聯合分析
聯合分析意在發掘從數據中提取的事件之間較強的共生關系。對發掘到的關系以邏輯標準進行編碼。例如,從穿戴式人體監控設備收集到的傳感器數據中產生以下標準,顯示了人睡覺時傳感器的典型讀數:
(熱通量 ∈ [4.48, 12.63] AND 加速計 ∈ [0.86, 1.04]) _ 活動 = 睡眠(精度 = 99.94% )
圖 4 顯示了人睡覺(紅色)或者進行其他活動(藍色)時的熱通量和加速計測量數據的分布情況。
|
> 圖 4. 人體被試的熱通量和加速計讀數分布;紅色點表示被試睡眠時的測量結果,藍色點表示被試進行其他活動時的測量結果。 |
注意,前面標準得出的紅色點密集區是該領域專家很容易理解的邏輯描述。盡管這一標準并沒有涵蓋所有的睡眠情況,但是其準確度非常高( >99% )。聯合分析算法還會產生許多其他標準,涉及到特征空間的其他區域,為方便闡述,這里只介紹了其中之一。
聯合分析還可以發掘更復雜的結構,包括順序和子圖模式等。例如,最近開發了一種順序模式發掘算法,用于挖掘通用汽車公司車間組裝線上產生的事件記錄 [7] 。采用這種方法,可以獲得組裝線上與不同狀態碼相關的模式。這些信息能夠幫助提高生產線的吞吐量。
異常檢測
異常檢測也稱為溢出或者偏移檢測,用于找到數據中不正常的情況。常用方法是建立數據正常情況的特征參數(圖 5 ),利用它來計算其他觀察點的不正常數值。
![]() |
> 圖 5. 從時間片斷上檢測不正常情況;左上角的時間片斷是正常情況,而其他曲線均含有某些不正常情況。 |
異常檢測最常用的方法是 Grubbs 測試、 boxplots 、距離、密度和分組等統計方法。在基于距離的方法中,正常情況是每一觀察點與其相應 k 階最近鄰域保持平均距離。如果某一觀察點與其 k 階最近鄰域的距離明顯大于總平均值,那么可以認為該觀察點情況不正常。
異常檢測算法的關鍵問題是要維持較高的檢出率,同時又要保持較低的誤報率。這就需要對正常情況建立精確而又典型的特征描述,這在大規模傳感器網絡應用中較難實現。
需要考慮的問題
在傳感器數據處理上應用數據挖掘技術時必須考慮幾個問題。首先,我們要確定合適的計算模型。有兩種常用的計算模型:中心式和分布式(點對點) [8] 。在中心式模型中,每一個傳感器將其采集到的數據傳送給一個中心服務器,服務器匯總傳感器讀數,對匯總數據進行詳細分析。這種方法的一個顯著缺點是能量消耗大,帶寬占用也較大。而且,它無法靈活處理大量傳感器的情況。另一方面,分布式模型要求每一個傳感器在本地完成一些計算,然后將部分結果傳送給其他節點,得到全局結果。這種方法更合適一些,但是要求每一個傳感器都有處理器,支持一定的存儲和計算功能。
傳感器數據表征是數據挖掘算法面臨的另一難題。這些數據噪聲較大,具有較大的不確定性。基于概率的算法比較適合處理這類問題。另一問題是由傳感器故障導致的數據丟失。有多種途徑可以解決這一問題,例如,在預處理或者挖掘階段,丟掉觀察數據或者根據其他數據的分布來估算真實數值等。某些應用中產生大量傳感器數據,很難采用需要將全部數據存儲到主存儲器中的算法。在處理大量數據問題上,在線算法可以很好的替代普通的批處理算法。最后,數據挖掘算法必須考慮概念偏離的影響,被監控過程的特征隨時間而變,致使已有模型過時。可以采用能夠幫助模型“忘記”以前信息的機制來解決這一問題。
總之,數據挖掘為科學家和工程師提供了一系列自動工具,幫助他們發現隱藏在大量傳感器數據中的有用信息。該技術也為數據挖掘研究人員提供了機會,使他們能夠開發更高級的方法來處理傳感器數據涉及到的某些特定問題。關于商用和已公開數據挖掘軟件包的情況,請訪問 www.kdnuggets.com/software/index.html 。
文章版權歸西部工控xbgk所有,未經許可不得轉載。