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