江 桃,張 珣
(杭州電子科技大學(xué)電子信息學(xué)院,浙江杭州 310018)
近年來我國(guó)老齡化人口比例不斷增加,獨(dú)生子女因工作等原因無法照顧老人,居家養(yǎng)老[1]是大部分老人的選擇,但護(hù)理人員緊缺,老年人對(duì)常規(guī)的智能家居使用方式難以適應(yīng)。在物聯(lián)網(wǎng)技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)以及數(shù)據(jù)挖掘技術(shù)跨越式發(fā)展的大背景下,智能家居發(fā)展呈現(xiàn)出突飛猛進(jìn)態(tài)勢(shì)[2],智能家居系統(tǒng)向更高級(jí)的具有學(xué)習(xí)能力的自主操控方向發(fā)展。
智能家居系統(tǒng)研究較多,如英國(guó)的“智能家居交互屋系統(tǒng)”[3],通過與日常生活數(shù)據(jù)對(duì)比來檢測(cè)老年人健康狀況,有異常時(shí)自主向外界求救;芬蘭的“活躍家庭生活”居家養(yǎng)老科技產(chǎn)品,在各個(gè)房間安裝傳感器,通過傳感器數(shù)據(jù)分析老年人的位置信息,監(jiān)測(cè)活動(dòng)信息有無異常;我國(guó)“基于物聯(lián)網(wǎng)ZigBee 技術(shù)的智能社區(qū)居家養(yǎng)老系統(tǒng)”[4],利用物聯(lián)網(wǎng)ZigBee 技術(shù)實(shí)現(xiàn)對(duì)老人的身體狀況、居家安全、環(huán)境能耗等方面的智能監(jiān)測(cè),可實(shí)時(shí)將監(jiān)測(cè)數(shù)據(jù)傳輸?shù)缴鐓^(qū)監(jiān)護(hù)中心。以上技術(shù)在一定程度上對(duì)老人健康與生活行為數(shù)據(jù)進(jìn)行異常分析,但是忽略了老年人的認(rèn)知特點(diǎn),即他們對(duì)高智能設(shè)備的學(xué)習(xí)能力以及接受能力不及年輕人。另外,健康數(shù)據(jù)獲取一般通過佩戴相應(yīng)的檢測(cè)模塊,增加了老人的心理負(fù)擔(dān)。
本文對(duì)數(shù)據(jù)挖掘算法進(jìn)行優(yōu)化改進(jìn),挖掘和識(shí)別用戶多種生活行為,得出用戶的習(xí)慣模型,根據(jù)用戶的偏好自動(dòng)調(diào)控設(shè)備參數(shù),或者根據(jù)環(huán)境因素變化,按照用戶在不同環(huán)境的使用習(xí)慣自動(dòng)調(diào)控,以及對(duì)多個(gè)設(shè)備聯(lián)動(dòng)調(diào)控,為老年人提供精準(zhǔn)的智能服務(wù)。
本系統(tǒng)架構(gòu)采用B/S 模式即瀏覽器/服務(wù)器模式。系統(tǒng)前端頁面采用HTML、CSS、JavaScript 等技術(shù)設(shè)計(jì),前后端交換數(shù)據(jù)通信時(shí)采用Ajax 技術(shù)使頁面不跳轉(zhuǎn),響應(yīng)速度加快,在Web 客戶端處理少量簡(jiǎn)單的業(yè)務(wù)邏輯和數(shù)據(jù)操作。服務(wù)端利用SSM(Spring,Spring MVC,Mybatis)等開源框架技術(shù),在阿里云平臺(tái)搭建Tomcat web 服務(wù)器、Hadoop+MySQL 數(shù)據(jù)庫(kù),解決智能家居用戶海量的數(shù)據(jù)存儲(chǔ)問題。而復(fù)雜的業(yè)務(wù)邏輯和數(shù)據(jù)分析通過在服務(wù)端MySQL 數(shù)據(jù)庫(kù)采集智能網(wǎng)關(guān)的傳感器數(shù)據(jù)以及無線智能設(shè)備使用的歷史數(shù)據(jù),進(jìn)行大數(shù)據(jù)分析,獲得用戶習(xí)慣模式,與當(dāng)前模式進(jìn)行匹配從而實(shí)現(xiàn)系統(tǒng)的智能控制。系統(tǒng)框圖如圖1 所示。
Fig.1 System architecture圖1 系統(tǒng)架構(gòu)
老年人的認(rèn)知特點(diǎn):①感官能力(視覺、聽覺、嗅覺等)逐漸衰退,身體的協(xié)調(diào)性、靈活性也相應(yīng)下降;②注意力不易集中,警覺性較低,在異常情況中的應(yīng)變能力降低;③記憶力下降,學(xué)習(xí)能力也大幅降低。
面向老年人的系統(tǒng)需求:操作簡(jiǎn)便實(shí)用、舒適的家居環(huán)境、智能化的設(shè)備、安全保障。
(1)數(shù)據(jù)采集與傳輸需求。對(duì)家庭環(huán)境參數(shù)如溫度、濕度、光照等諸多模擬量的采集,智能家電以及燈具的開關(guān)量采集。因?yàn)椴杉臄?shù)據(jù)要供后續(xù)的行為分析預(yù)測(cè)及建立行為偏好模型,所以要進(jìn)行數(shù)據(jù)預(yù)處理,剔除孤立、敏感的數(shù)據(jù)點(diǎn);要保證同步采集的數(shù)據(jù)能夠完整存入服務(wù)器平臺(tái)數(shù)據(jù)庫(kù),以供后續(xù)分析預(yù)測(cè)。
(2)服務(wù)器數(shù)據(jù)平臺(tái)需求。服務(wù)器數(shù)據(jù)平臺(tái)主要由Web 訪問頁和數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)成。Web 頁面提供基本的用戶和設(shè)備信息操作,數(shù)據(jù)庫(kù)管理系統(tǒng)主要負(fù)責(zé)用戶和設(shè)備歷史操控信息,以及傳感器獲取的上下文信息存儲(chǔ)與管理。
(3)服務(wù)器數(shù)據(jù)分析模塊需求。對(duì)數(shù)據(jù)進(jìn)行挖掘,實(shí)現(xiàn)行為分析與預(yù)測(cè),建立偏好模型,根據(jù)歷史信息推斷老人的異常行為,推送異常信息。
(4)用戶信息模塊需求。服務(wù)器平臺(tái)用戶分為使用設(shè)備的老人、老人子女和系統(tǒng)管理員3 類。注冊(cè)老人基本信息、子女信息包括注冊(cè)登錄、個(gè)人信息修改和設(shè)備運(yùn)行結(jié)果查詢。系統(tǒng)管理員則登錄至系統(tǒng)后臺(tái),對(duì)設(shè)備、平臺(tái)以及用戶數(shù)據(jù)進(jìn)行管理。
智能家居數(shù)據(jù)非常龐大,可能涉及數(shù)百萬條記錄,每個(gè)記錄通常達(dá)到數(shù)百個(gè)屬性[13]?;贖adoop 的數(shù)據(jù)處理平臺(tái)對(duì)大量傳感信息進(jìn)行分布式并行處理,并根據(jù)處理結(jié)果向底層設(shè)備發(fā)送指令實(shí)現(xiàn)智慧化服務(wù)[14]。
Hadoop 是對(duì)大量數(shù)據(jù)進(jìn)行分布式處理的軟件框架,以可靠、高效、可伸縮的方式進(jìn)行大數(shù)據(jù)處理,以并行的方式工作,通過并行處理加快處理速度,具有高可靠性、高擴(kuò)展性、高效性、高容錯(cuò)性的優(yōu)點(diǎn)。
Hadoop 框架核心是HDFS 和MapReduce。HDFS 為海量的數(shù)據(jù)提供存儲(chǔ),而MapReduce 至少包含Map 函數(shù)、Re?duce 函數(shù)。Map 函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為鍵值對(duì)列表,輸入域中的每個(gè)元素對(duì)應(yīng)一個(gè)鍵值對(duì)。Reduce 函數(shù)接受Map 函數(shù)生成的列表,根據(jù)它們的鍵縮小為鍵值對(duì)[9]。Hadoop 框架數(shù)據(jù)存儲(chǔ)與處理框架如圖2 所示。
Fig.2 Hadoop framework data storage and processing framework圖2 Hadoop 框架數(shù)據(jù)存儲(chǔ)與處理框架
聚類分析屬于無監(jiān)督學(xué)習(xí)任務(wù),在學(xué)習(xí)過程中不需要知道目標(biāo)值,也不需要輸入每條數(shù)據(jù)的標(biāo)簽。聚類分析主要任務(wù)就是從大量的無標(biāo)簽數(shù)據(jù)中分析出數(shù)據(jù)的共同特征,并嘗試為每個(gè)數(shù)據(jù)分配一個(gè)比較合適的標(biāo)簽??赏诰蛴脩舻哪承傩赃M(jìn)行聚類,得到用戶對(duì)某一設(shè)備的控制習(xí)慣,從而建立用戶偏好模型。傳統(tǒng)K-means 聚類算法由于其簡(jiǎn)潔和高效的特性被廣泛使用,K-means 聚類算法步驟如下:
(1)為每個(gè)聚類確定一個(gè)初始凝聚點(diǎn)。可選擇K 個(gè)樣品作為初始凝聚點(diǎn),或者將所有樣品分成K 個(gè)初始類,然后將K 個(gè)類的重心(均值)作為初始凝聚點(diǎn)。
(3)將計(jì)算得到的類內(nèi)樣本均值作為新的凝聚點(diǎn)。
(4)重復(fù)步驟(2)和(3),直到聚類中心位置幾乎不變。
(5)輸出:含有K 個(gè)M 維質(zhì)心向量的集合。
由以上步驟可知,K-means 聚類算法選取的質(zhì)心是隨機(jī)的,生成的K 個(gè)類別簇也是人為選定的,而且對(duì)噪聲和孤立的數(shù)據(jù)點(diǎn)異常敏感,這些都會(huì)導(dǎo)致聚類結(jié)果不穩(wěn)定。為減少選取類別簇的數(shù)量K 的影響,提高算法自組織能力,提出融合自組織神經(jīng)網(wǎng)絡(luò)SOM 算法對(duì)數(shù)據(jù)特征向量進(jìn)行訓(xùn)練,將此作為K-means 聚類算法的K 個(gè)初始聚類中心,得出最終的行為偏好模型。
SOM 算法可以最大限度地保障訓(xùn)練不會(huì)陷入局部最優(yōu)解,其代價(jià)是訓(xùn)練時(shí)間較長(zhǎng),而K-means 算法聚類時(shí)間短但是易陷入局部最優(yōu)解。結(jié)合SOM 的優(yōu)點(diǎn)可先將數(shù)據(jù)輸入SOM 網(wǎng)絡(luò)進(jìn)行初始聚類,再將這些結(jié)果作為K-means 算法的初始聚類中心,從而得到最終的聚類結(jié)果[10-12]。實(shí)現(xiàn)框圖如圖3 所示,具體步驟如下:
Fig.3 Clustering process圖3 聚類流程
(1)對(duì)每個(gè)神經(jīng)元隨機(jī)初始化,參考權(quán)值向量wj(j=1,2,……p)。
(2)尋找獲勝的神經(jīng)元。求出輸入樣本與所有神經(jīng)元所對(duì)應(yīng)的參考權(quán)值向量的歐式距離,與最小距離對(duì)應(yīng)的即為獲勝神經(jīng)元。
兩個(gè)m 維類別向量Xi,Xj的歐氏距離如下:
Wj中優(yōu)勝者權(quán)值向量與輸入樣本Xi的距離為:
更新獲勝神經(jīng)元的鄰域函數(shù)及其它神經(jīng)元權(quán)值:
其中,i是輸入的第i個(gè)神經(jīng)元,j是第j個(gè)競(jìng)爭(zhēng)神經(jīng)元;wj(t)是在t次迭代后的權(quán)值更新;wj(t-1)是在前一次迭代的權(quán)值更新;β(t)是隨著迭代t變化的學(xué)習(xí)率變化;NS(d,t)是鄰域強(qiáng)度,由在迭代t時(shí)刻從獲勝者到一個(gè)鄰點(diǎn)神經(jīng)元的距離d的函數(shù)表示;x(t)是在第t次迭代所表示的輸入向量。
(3)迭代足夠的次數(shù)獲得最終的聚類中心。
(4)將SOM 算法得到的聚類中心作為K-means 算法的初始聚類中心和K 的數(shù)值。
(5)計(jì)算簇中數(shù)據(jù)對(duì)象到初始聚類中心的距離,所得距離靠近的劃分為一個(gè)簇:
(6)將所得簇的均值作為新的聚類中心重新聚類,直到所得聚類中心不再改變。
為讓老年人群更加適應(yīng)智能家居環(huán)境,本文采用關(guān)聯(lián)分析算法Apriori 利用用戶的歷史設(shè)備使用信息分析多個(gè)設(shè)備控制模式之間的關(guān)聯(lián)性,并將這個(gè)關(guān)聯(lián)性轉(zhuǎn)換為智能家居情景自動(dòng)生成模式。
在大規(guī)?;祀s的數(shù)據(jù)集中尋找出一些具有較強(qiáng)關(guān)聯(lián)性的規(guī)則即關(guān)聯(lián)規(guī)則。在智能家居領(lǐng)域挖掘出隱含在多個(gè)智能家居設(shè)備操作之間的相互關(guān)系可實(shí)現(xiàn)用戶的“關(guān)聯(lián)操控習(xí)慣”,對(duì)多個(gè)家居設(shè)備進(jìn)行集成控制。
常用的頻繁項(xiàng)集評(píng)估標(biāo)準(zhǔn)有支持度、置信度,流程框圖如圖4 所示,實(shí)現(xiàn)步驟如下:
(1)輸入界定頻繁與非頻繁的最小支持度事物集T。
(2)從事件集合E 中抽取若干個(gè)事件組合生成多個(gè)元素互不完全相同的候選集合C。
(3)遍歷所有的候選集,計(jì)算候選集的支持度support(包含X 和Y 的事件數(shù)與所有事件數(shù)之比)。
Support(X=>Y)=P(X∪Y)=count(X ∪Y)/|T|(5)
(4)如果支持度大于最小支持度,則將該集合認(rèn)定為頻繁項(xiàng)集保存到結(jié)果中。
(5)關(guān)聯(lián)規(guī)則生成:從頻繁項(xiàng)集中提取所有高置信度的規(guī)則,即一個(gè)事件出現(xiàn)后另一個(gè)事件出現(xiàn)的概率。
Fig.4 Flow of association analysis algorithm圖4 關(guān)聯(lián)分析算法流程
在一個(gè)復(fù)雜的智能家居環(huán)境中,通過組建的無線傳感器網(wǎng)絡(luò)收集環(huán)境數(shù)據(jù)與設(shè)備的使用日志,即在服務(wù)端記錄的設(shè)備和服務(wù)端交互通信產(chǎn)生的數(shù)據(jù)。數(shù)據(jù)對(duì)象對(duì)應(yīng)于傳感器和設(shè)備的狀態(tài)和功能,用戶活動(dòng)標(biāo)識(shí)符(ID)由該活動(dòng)執(zhí)行的服務(wù)ID 以及相關(guān)的對(duì)象ID 按時(shí)間順序存儲(chǔ)在數(shù)據(jù)庫(kù)中。為老年用戶提供傳感器網(wǎng)絡(luò)與家庭環(huán)境有效的智能交互,如用戶在不同位置、不同的時(shí)間時(shí)的行為數(shù)據(jù)。傳感器會(huì)獲取當(dāng)前環(huán)境的上下文信息,如時(shí)間、位置、溫度、設(shè)備狀態(tài)、壓力等。以燈光為例日志數(shù)據(jù)如表1 所示。
Table 1 Log data generated by control lights表1 控制燈光產(chǎn)生的日志數(shù)據(jù)
對(duì)采集的數(shù)據(jù)進(jìn)行清洗、去噪等操作,減少數(shù)據(jù)冗余,方便數(shù)據(jù)分析。將經(jīng)過數(shù)據(jù)挖掘分析出的用戶活動(dòng)標(biāo)識(shí)與設(shè)備使用習(xí)慣等行為特征作為活動(dòng)唯一標(biāo)識(shí),ID 作為key,行為特征作為value,值之間用逗號(hào)隔開,以鍵值形式存儲(chǔ)。
數(shù)據(jù)分析模塊利用基于自組織神經(jīng)網(wǎng)絡(luò)SOM 改進(jìn)的K-means 聚類算法,挖掘老年用戶在不同時(shí)間段、不同位置對(duì)某一設(shè)備的使用習(xí)慣屬性值,即聚類中的特征值,如用戶在不同房間、不同時(shí)間段對(duì)燈光亮度的習(xí)慣使用屬性值。臥房接近睡覺時(shí)間段的燈光亮度要柔和,在客廳活動(dòng)的時(shí)段燈光要亮等,對(duì)其進(jìn)行聚類分析,燈光控制參數(shù)可表示為Xi向量,其中包括時(shí)間段、位置、時(shí)間、亮度等p種屬性,表示為{X1,Xi2,…,Xip}。將設(shè)備的歷史使用信息數(shù)據(jù)采用基于SOM 改進(jìn)的k-means 算法聚類。
服務(wù)端的數(shù)據(jù)分析模塊利用關(guān)聯(lián)規(guī)則算法Apriori 挖掘在同一時(shí)間段內(nèi)多個(gè)設(shè)備使用的相互關(guān)系,以時(shí)間戳序列記錄已經(jīng)使用過的設(shè)備數(shù)據(jù),從而得到用戶關(guān)聯(lián)操控?cái)?shù)據(jù)。對(duì)用戶在某一時(shí)間段的行為進(jìn)行識(shí)別,對(duì)下一個(gè)行為進(jìn)行預(yù)測(cè),為老年用戶提供基于其習(xí)慣的關(guān)聯(lián)操控以及家居活動(dòng)軌跡預(yù)測(cè)。如將設(shè)備使用進(jìn)行事務(wù)序列化,不同設(shè)備用不同的字母表示,A、B、C…,同一設(shè)備的不同時(shí)間段用字母表示為:[A1,A2,A3…],[B1,B2,B3…]等。
利用數(shù)據(jù)聚類確定設(shè)備與時(shí)間和環(huán)境因素的關(guān)聯(lián),然后應(yīng)用頻繁模式挖掘發(fā)現(xiàn)設(shè)備與設(shè)備的關(guān)聯(lián),通過這兩個(gè)過程提取不同設(shè)備按時(shí)間序列以及按區(qū)域劃分的使用模式,將這些模式存入數(shù)據(jù)庫(kù)中進(jìn)行活動(dòng)預(yù)測(cè)[13]。當(dāng)系統(tǒng)無法判斷當(dāng)前新產(chǎn)生的模式時(shí),先反饋給用戶,由用戶決定這一模式是否安全,作為新的模式存入數(shù)據(jù)庫(kù)。模型建立流程如圖5 所示。
Fig.5 Process of behavior analysis model establishment圖5 行為分析模型建立流程
本文基于SOM 算法改進(jìn)的K-means 算法和Apriori 算法,結(jié)合大數(shù)據(jù)分析、無線傳感器網(wǎng)絡(luò)等技術(shù),在傳統(tǒng)居家智能家居系統(tǒng)基礎(chǔ)上研究適合老年人生活的康養(yǎng)型智能住宅。簡(jiǎn)化智能家居設(shè)備的控制指令,通過關(guān)聯(lián)規(guī)則分析,將某一時(shí)間的多個(gè)設(shè)備進(jìn)行關(guān)聯(lián)以推測(cè)老人當(dāng)時(shí)的活動(dòng)類型,為居家養(yǎng)老提供更加舒適智能的生活。