霍磊 王志良



摘 要: 智能家居的關鍵在于在不需要用戶干預的條件下,針對不同的用戶生成個性化的服務規則。用戶習慣的主觀性造成了服務規則不能預先定義,需要在家居系統運行過程中提取。粗糙集是一種處理不完備信息的工具,適合在大量復雜數據中發現潛在規律。把智能家居看成是一個狀態驅動的環境,建立狀態控制的家居控制系統平臺,同時提出了一種基于粗糙集的智能家居個性化規則提取方法,把家庭歷史狀態記錄看作挖掘對象,對狀態值進行離散化,通過屬性約簡,找出影響決策的關鍵因素,再進行值約簡,得出決策規則。智能家居實驗室的實驗表明,該種方法具有實用價值。
關鍵詞: 粗糙集; 智能家居; 規則提??; 屬性約簡; 數據挖掘
中圖分類號: TN92?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2016)05?0038?04
0 引 言
隨著物聯網的不斷發展,人們對智能家居的研究越來越深入[1]。智能家居設備的多樣性和服務對象的個性化增加了家居系統建模的困難,目前的智能家居服務活動需要人的參與,由于用戶習慣的分散性和主觀性,在很多情況下無法使用預定義的智能空間控制模式?,F有的智能家居系統都沒有實現智能服務的有效個性化[2]。本文探討了一種基于粗糙集的規則提取與驅動模型,來自學習智能家居中的規則。
粗糙集理論是由波蘭學者 Pawlak在1982年提出的[3]一種刻畫不完整和不確定性信息的數學工具, 能有效地分析和處理不精確、不一致、不完整等各種不完備的信息,并從中發現隱含的知識,揭示潛在的規律[4]。目前,粗糙集已經在模式識別、知識發現與機器學習、決策支持、數據挖掘等許多科學與工程領域得到了成功的應用,不少學者將其用于醫療信息處理[5]、汽車數據采集[6]、感性規則挖掘[7]等領域。
由于不需要先驗知識,粗糙集很適合智能家局的規則提取。為了提高智能控制的效率,增強規則之間的數據共享,智能家居的知識規則應遵循最簡原則。粗糙集分為屬性約簡和屬性值約簡,屬性約簡的目的就是得到能夠區分樣本的最小的屬性子集。
1 狀態驅動的異構智能家居系統平臺
智能家居由傳感和控制終端組成的外圍系統和服務中心組成。由于智能家居系統中存在多種控制協議,具有很強的異構性[8],本文的智能家居中采用中間件的形式分離底層硬件和上層應用。智能家居的系統結構如圖1所示。
其中,不同通信介質和通信協議的設備通過適配層,接入到家庭狀態信息總線中,轉換為設備狀態隊列。各個設備根據總線中要求的設備狀態值做相應的控制動作。
智能控制系統檢查設備的狀態請求信息和環境信息。當系統發現設備狀態請求信息發生變化時,通過中間件請求物理設備操作,以同步設備狀態保證設備狀態和設備狀態信息的一致性,進而實現基于設備狀態驅動的智能家居控制,依靠狀態驅動的架構,能夠與狀態隊列有很好的結合,免去設備同時被多個操作源操作而產生的沖突;當系統發現環境狀態信息發生變化時,將信息輸入到規則引擎Drools中去,以實現規則驅動的設備控制。
Drools是用Java語言編寫的開放源碼規則引擎,使用Rete算法對所編寫的規則求值。Drools允許使用聲明方式表達業務邏輯。可以使用非XML的本地語言編寫規則,從而便于學習和理解。并且,還可以將Java代碼直接嵌入到規則文件中[9]。
當設備狀態發生變化時,系統會把當前所有感知設備狀態和受控設備的狀態變化寫入歷史數據庫。隨著用戶在智能環境中生活時間的增加,會產生大量家居空間狀態數據,為系統能夠自動學習用戶的行為模式提供數據來源。每一條記錄都會被作為粗糙集的一個決策記錄,參與到知識約簡中。
2 基于粗糙集的規則提取系統
為了有較好的用戶體驗,系統不應主動請求用戶干預,而應該在后臺靜默運行,從用戶的行為中覺察其個性與喜好。因此,智能家居中環境與設備的狀態成為規則提取的主要來源。
在智能家居空間中,感知信息由多個環境狀態組合而成,例如S={溫度,濕度,亮度,音量,煙霧濃度,空氣質量}。面對復雜的環境,智能家居中的用戶可能會要求不同的處理方法。例如,用戶可能在溫度較高的情況下打開窗戶或者空調,或者并采取任何措施,這可能取決于室內的濕度、亮度等環境因素和用戶自身的耐熱程度和用戶對節電的渴望等心理因素。
為了能夠更好地適應智能空間中用戶的需求,需要對這些感知信息進行綜合考量,挖掘其中的潛在聯系,提取規則。用戶的歷史數據可以看作最初的規則集,由于家居環境中設備種類多,信息量大,會產生噪聲屬性信息,影響系統運行,需要使用粗糙集理論能夠剔除數據集中的冗余屬性和數據,實現智能家居規則的動態生成。
2.1 粗糙集的相關定義
粗糙集可以從大量的數據中挖掘潛在的、有利用價值的知識,它與概率方法、模糊集方法和證據理論方法等其他處理不確定性問題理論的最顯著區別在于:其無需提供問題所需處理的數據集合之外的任何先驗信息,因此無需人為制定隸屬度或隸屬度函數,從而避免了主觀因素的影響[10]。粗糙集相關定義如下:
定義1 設[U={x1,x2,…,xn}]為論域,[A={a1,a2,…,am}]為屬性集 ,[R]為[U]上的等價關系,[[X]R]表示包含元素[X∈U]的[R]的等價類,[K=(U,R)]為知識庫。若[P?R]且[P≠?,][?P]([P]中所有等價關系的交集)也是一個等價關系,稱為[P]上不可區分關系,記為[IND(P)]。
定義2 在一族等價關系[R]中,[r∈R,]如果[IND(R)=IND(R-{r})][IND(R)=IND(R-{r}),]則稱[r]為[R]中不必要的,否則稱[r]為[R]中必要的。如果每個[r∈R]都為[R]中必要的,則稱[R]為獨立的。設[Q?P,]如果[Q]是獨立的,且[IND(Q)=IND(P),]則稱[Q]為[P]的一個約減,[P]中所有必要關系的集合稱為[P]的核,記為[CORE(P)]。核與約減的關系可以表示為:[CORE(P)=?RED(P),]其中[RED(P)]表示[P]的所有約減。
定義3 在信息表[T=(U,A)]中,[U]為對象集,[A=C?D,][C]為一系列的條件屬性,[D]為決策屬性,集合[D]引入分區將[U]分成不同的決策類。
最終的決策規則則體現了知識的表現形式,其表示方法為[A→B],其中[A]為規則前件,[B]為規則后件,是對決策屬性[d]的描述。選擇粗糙集理論規則提取即利用粗糙集對歷史記錄進行化簡的過程。
2.2 粗糙集信息系統
系統的條件屬性記錄來自系統的感知器信息,決策屬性來自設備狀態變化時的狀態值,為了離散化狀態信息,需要先把狀態值聚類為符合狀態物理屬性的值,并對每個分類進行正態分布擬合;同時把設備操作值變換成設備狀態變化值。對系統粗糙集矩陣建立如下:
[RS= CC1C2...Cnc1c2...cnc1c2...cnc1c2...cnDD1D2...Dmd1d2...dmd1d2...dmd1d2...dm]
其中:[C,D]分別表示條件屬性和決策屬性;[C1,C2,…,Cn]表示條件屬性(環境狀態)的[n]個維度;[ci]表示第[i]維屬性中的某個類的分類值;[D1,D2,…,Dm]表示動作語義(執行器狀態)的[m]個分量;[di]表示某個環境語義分量取值,只能取[di∈{0,1}],分別對應環境語義的正向、逆向(例如:溫度的上升和下降)。
由于感知信息的[n]個維度并不是相互獨立的,而且存在著大量的冗余的,不確定的信息,屬性約減就是要去掉這些對決策屬性沒有影響的冗余的條件屬性維度,精簡決策規則。
由于粗糙集一般只適用于一個決策屬性的情況,而在這里建立的粗糙集擁有[m]個決策屬性,所以在這里將一行中決策屬性的不同組合作為決策屬性的分類,即[D=d1d2…dm,]于是[RS]只有一個決策屬性,可以使用一般的粗糙集約減步驟來處理。
2.3 算法過程
首先要去掉無關屬性,屬性約簡算法步驟如下:
輸入:條件屬性集合[C={C1,C2,…,Cn},]決策屬性為[D。]
輸出:約減后的屬性集合[RED(C)]。
步驟1:提取用戶記錄,合并所有相同的記錄。
步驟2:計算條件屬性[C]相對于決策屬性[D]的正域[posC(D)]。
步驟3:對[C]的每一個分量[Di,]計算除去[Di]所得到的條件屬性[C-{Di}]相對于決策屬性[D]的正域[posC-{Di}(D)]。
步驟4:若[posC-{Di}(D)=posC(D),]說明[Di]對于決策屬性[D]是不必要的,于是令[C=C-{Di},]然后轉步驟(2);否則[RED(C)=C,]計算結束。
經過條件屬性約減以后,得到的粗糙集中已經不存在冗余的條件屬性。但在剩下的條件屬性值中,針對每個決策分類而言還有可能存在冗余的情況,為了得到最精簡的規則,就需要針對每種決策屬性分類進行規則提取。提取的步驟如下:
步驟1:為每種決策屬性分類分組,并在每個組中合并相同條件屬性的記錄,同時記下個數權重。
步驟2:對每一條記錄的全部條件屬性,若存在于其他決策屬性分組記錄集中,則該記錄所表示的規則為模糊規則,計算其出現概率,否則為確定規則,概率為1。
步驟3:對每一條記錄的條件屬性進行從1~n(n為條件屬性的個數)的排列,若僅取該排列的條件屬性記錄不存在于其他決策分組中,那么該排列的條件屬性記為該條記錄的最簡條件屬性集合;反之則繼續計算直到找到該組合為止。
最終的規則集合形如[if C then D,]其中[C]為條件屬性集合,[D]為決策屬性集合。
3 家居實驗
3.1 實驗環境
基于北京科技大學物聯網系的樣板間體驗平臺進行了實驗,該平臺集成了環境感知、家電控制、健康采集、視頻監控等一系列的設備狀態實現。本文以環境溫度、濕度、煙霧、污染、噪音為環境因素,空調、加濕器、窗戶和排風扇為執行設備,具體設備信息如表1所示。
溫度分成3個類{溫度低,溫度高,-},溫度低類的正態分布擬合參數為[(μ=17.8,σ=2.5)];溫度高的擬合參數為[(μ=30.2,σ=2.7)];都不屬于這兩類的數據使用“-”表示。把濕度分成3個類{濕度低,濕度高,-},濕度低類的正態分布擬合參數為[(μ=22.4,σ=5.6)];濕度高類的擬合參數為[(μ=73.4,σ=8.1)];都不屬于這兩類的數據使用“-”表示時間維度和其他連續值類型的環境因素不同,相比于正態分布而言更合適使用均勻分布進行擬合,因此這里對時間的分類擬合采用均勻分布。音量被分成2個類 {正常,-}。正常類的擬合參數為[(μ=33.5,σ=5.1)]。另外兩個環境維度:煙霧和污染的值類型為布爾型,不需要聚類以及擬合處理。
由于不同的月份用戶的需求表現出較大的差異,故規則庫的生成是以月為單位的,表2記錄了5月份智能家居中某用戶產生的狀態變化結果。
于是記錄表為粗糙集矩陣[RS=[C D]]。其中[U={1,2,3,…,325}]為論域;[C={C1,C2,C3,C4,C5,C6}]為條件屬性,分別對應時間、溫度、煙霧、污染、音量;[D={D1,D2,D3,D4,D5,D6},]為決策屬性,分別對應溫升、溫降、濕升、濕降、通風、排風。
4 結 語
由于用戶個人行為主觀性的存在,很多情況下智能家居中無法使用預定義的規則。本文利用了粗糙集不需要先驗知識和支持多維條件集合的優點,使用歷史操作數據作為信息源,在處理了其中離散化的數據前提下,對歷史記錄表進行屬性約減,提煉出簡明、準確的規則。實驗表明,本方法可以有效從用戶歷史中提取用戶個性化需求,減少規則數量,針對不同的環境情況,做出適合用戶習慣的反應,提供個性化的家庭規則控制方法,適用于個體數字家庭系統使用。但是,未來的家居智能控制環境可能是云端的方式,條件屬性過多,規則提取過程中的計算量會過大。如何簡化計算過程,使其使用與云中心方式工作的智能家居系統,是接下來需要考慮的問題。
參考文獻
[1] 邵鵬飛,王喆,張寶儒.面向移動互聯網的智能家居系統研究[J].計算機測量與控制,2012,20(2):474?479.
[2] 王志良,王粉花.物聯網工程概論[M].北京:機械工業出版社,2011:18?30.
[3] PAWLAK Z. Rough set theory and its applications to data ana?lysis [J]. Cybernetics and systems, 1998, 29(7): 661?668.
[4] 鄂旭,邵良杉,張毅智,等.一種基于粗糙集理論的規則提取方法[J].計算機科學,2011,38(1):232?235.
[5] 劉洋,張卓,周清雷.醫療健康數據的模糊粗糙集規則挖掘方法研究[J].計算機科學,2014,41(12):164?167.
[6] 陳超,陳性元,汪永偉,等.基于粗糙集理論的冗余規則處理方法[J].計算機工程與設計,2014,35(1):21?25.
[7] 石夫乾,孫守遷,徐江.基于粗糙集的感性知識關聯規則挖掘研究[J].計算機集成制造系統,2008,14(2):407?416.
[8] 楊溢,王志良,王魯,等.面向智能空間的異構網絡同構化通信框架[J].計算機科學,2012,39(4):240?245.
[9] 朱呂,姚錫凡,徐川.基于JBoss Drools的車間調度[J].組合機床與自動化加工技術,2014,6(6):131?134.
[10] 苗奪謙,李道國.粗糙集理論、算法與應用[M].北京:清華大學出版社,2008:210?233.