本發(fā)明屬于智能家居環(huán)境下的用戶行為分析技術(shù)領(lǐng)域,具體涉及一種殘疾人智能操作的數(shù)據(jù)填補與行為預(yù)測的方法。
背景技術(shù):
當(dāng)前的智能家居環(huán)境下殘疾人用戶在發(fā)起對智能家居設(shè)備的操作控制過程中存在幾個問題:(1)智能家居環(huán)境下殘疾人的操作行為存在顯著的缺失現(xiàn)象,具體表現(xiàn)為當(dāng)殘疾人獨自在家時,其使用智能家居系統(tǒng)控制設(shè)備的次數(shù)較多,而當(dāng)其家屬在家時,其對智能家居系統(tǒng)的依賴程度顯著降低,因為很多操作是由家屬手動完成的,系統(tǒng)無法記錄這樣的手動操作,因此造成數(shù)據(jù)缺失。(2)殘疾人由于存在先天或后天的肢體障礙,行動不便,因此其對智能家居設(shè)備的控制代價勢必會比普通人高得多,而隨著智能家居設(shè)備種類和數(shù)目的增加,操作指令的數(shù)量和復(fù)雜程度也隨之增加,這無疑又增加了殘疾人對家居設(shè)備的操作難度。
因此,本發(fā)明提出了一種殘疾人智能操作的數(shù)據(jù)填補與行為預(yù)測方法,該方法一方面能填補殘疾人用戶在智能家居環(huán)境中產(chǎn)生的缺失數(shù)據(jù),另一方面能自主學(xué)習(xí)用戶的行為習(xí)慣,根據(jù)學(xué)習(xí)結(jié)果預(yù)測用戶將來的行為操作。
技術(shù)實現(xiàn)要素:
為了解決智能家居環(huán)境下殘疾人的肢體障礙性與家居設(shè)備復(fù)雜性之間的矛盾,本發(fā)明分析了殘疾人用戶的操作行為特征,提出了一個殘疾人智能操作的數(shù)據(jù)填補與行為預(yù)測的方法。
本發(fā)明提出的殘疾人智能操作的數(shù)據(jù)填補與行為預(yù)測的方法,主要包括兩個部分,一個操作的數(shù)據(jù)填補部分,用于填補殘疾人用戶產(chǎn)生的缺失操作;一個操作的行為預(yù)測部分,用于預(yù)測給定操作序列的下一步最有可能的操作。
一、操作的數(shù)據(jù)填補部分,采用基于k最近鄰(knn)的缺失操作填補算法
本發(fā)明使用k最近鄰算法填補殘疾人用戶產(chǎn)生的缺失操作,k最近鄰算法(knn)是機器學(xué)習(xí)中最常見的分類算法,該算法的原理是在一個特征空間中,如果一個樣本的k個最相似的樣本屬于同一類,那么該樣本也屬于該類。也就是說,決策某一樣本屬于什么分類時,只關(guān)注與其最近的有限個樣本(假設(shè)都已正確分類)所屬的類別。k最近鄰算法的實現(xiàn)過程大致可以表示為:輸入訓(xùn)練樣本集(包含各個樣本及其所屬的類別),待確定的樣本,通過一定的算法規(guī)則,輸出目標(biāo)樣本所屬的類別。
本發(fā)明中,該操作填補技術(shù)主要是通過改進(jìn)jaccard相似度計算方法,獲取用戶不完整操作序列的相似序列集,根據(jù)相似序列集中缺失操作所處的位置來確定該缺失操作在目標(biāo)序列中應(yīng)處的位置,最終完成數(shù)據(jù)的填補。
具體地,基于knn的數(shù)據(jù)填補的具體步驟為:
(一)準(zhǔn)備階段:
1:定義缺失操作
定義1(不完整序列):如果某個操作序列中接連(可不連續(xù))出現(xiàn)兩個或以上的相同操作x,則相應(yīng)子序列段必定缺失對應(yīng)操作x,那么,整個序列為不完整序列。
定義1.1(嵌套缺失):一個序列中存在缺失操作,而在其對應(yīng)的不完整子序列中還存在一個或多個其他的不完整子序列。形如sequence={...,x,...,y,...,y...,x,...}。
定義1.2(并列缺失):同一個序列中不同位置存在多個并列的缺失操作。形如sequence={...,x,...,x,...,y...,y,...}。
2:定義序列相似度
jaccard系數(shù)是一種測量樣本集合之間的相似性(差異性)的統(tǒng)計方法,表示為兩個集合的交集與并集的比,公式如下:
其中,|a∩b|表示集合a和集合b的交集,|a∪b|表示兩者的并集。jaccard(a,b)的取值范圍為0≤jaccard(a,b)≤1。
假設(shè)存在序列seq1={a,d,d,a,c,e,c,c},序列seq2={d,d,a,a,d,d,b,c},考慮到兩個序列中存在重復(fù)的屬性,本發(fā)明對jaccard相似性計算方法進(jìn)行了改進(jìn),得到如下公式:
其中,count(seq1(ok))表示序列seq1中操作符ok出現(xiàn)的次數(shù),k取值為1到n,n為操作種類。而min()和max()函數(shù)分別取最小值和最大值。至此,得到了一個改進(jìn)的基于jaccard系數(shù)的操作序列相似性計算方法。
(二)實現(xiàn)階段:
步驟1:針對形如seq={x,...,x}的單一不完整序列,計算該不完整序列與完整序列集中對應(yīng)的各個完整序列(形如{x,...,x,...,x})的序列相似度(jaccard系數(shù))。
步驟2:將上述的完整序列按照相似度進(jìn)行降序排序,選取相似度最高的前n個序列作為seq的前n個最近鄰。
步驟3:對最近鄰集合中各個序列中的x的前一個操作進(jìn)行計數(shù)。
步驟4:對第三步的結(jié)果進(jìn)行整理,得到一個填補候選列表,該列表列出了各個操作出現(xiàn)在x前的次數(shù),對這些操作進(jìn)行降序排序,選取出現(xiàn)次數(shù)最高的操作(稱為目標(biāo)操作),將待填補操作x插入到序列seq中第一個目標(biāo)操作出現(xiàn)位置的后一個位置即可。
步驟5:如果seq中不存在目標(biāo)操作,則選取出現(xiàn)次數(shù)次之的操作為目標(biāo)操作,以此類推。最后將該不完整序列填補為完整序列。
二、操作的行為預(yù)測部分,采用基于隱馬爾可夫模型(hmm)的操作預(yù)測算法
本發(fā)明使用隱馬爾可夫模型(hmm)來建模智能家居環(huán)境下的殘疾人用戶行為,將殘疾人所處環(huán)境中的溫度建模為hmm中的隱含狀態(tài),將殘疾人對設(shè)備的操作建模為hmm中的觀察狀態(tài),訓(xùn)練出符合每個殘疾人用戶行為特征的隱馬爾可夫模型,后續(xù)即可利用該模型去預(yù)測給定殘疾人操作序列的下一步最有可能的操作。
具體地,基于隱馬爾可夫的操作行為預(yù)測方法的具體步驟為:
步驟1:訓(xùn)練hmm
隱馬爾可夫的訓(xùn)練過程可以這樣表示:給定可觀察狀態(tài)序列o=o1o2...ot,找到一個最優(yōu)的參數(shù)模型λ(a,b,π),使得p(o|λ)最大。一般地,baum-welch算法是目前使用最廣泛的hmm訓(xùn)練算法。它的基本思想就是首先初始化一個hmm,該初始值可以是一個錯誤的猜測,然后利用梯度下降的思想,通過已知的訓(xùn)練集不斷地去減小該初始值的誤差,使之更精確地描述訓(xùn)練樣本,最后得到一個穩(wěn)定且收斂的hmm。每次迭代過程中,更新hmm中的三個參數(shù):
其中,ξt(i,j)表示在t時刻隱含狀態(tài)為si,且下一時刻轉(zhuǎn)移到sj的概率。γt(i)表示在t時刻隱含狀態(tài)為si,則下一時刻從si轉(zhuǎn)移到所有狀態(tài)的概率之和。
hmm訓(xùn)練算法的過程如下:
步驟1.1:初始化模型λ(π,a,b),隨機給定參數(shù)πi,αij,bjk,使這些參數(shù)滿足條件
步驟1.2:當(dāng)?shù)螖?shù)小于指定閾值,每次根據(jù)公式3,公式4,公式5更新參數(shù),得到
步驟1.3:當(dāng)?shù)螖?shù)達(dá)到指定次數(shù)時,停止迭代過程,返回模型λ*。
步驟2:預(yù)測
利用hmm預(yù)測殘疾人操作行為的過程主要分為兩步,一是計算所有可能的新序列在該hmm中出現(xiàn)的概率,該概率通過前向算法計算得到,其基本思路是依次計算各個局部序列的前向概率,累積,最后計算整個候選序列的前向概率;二是選取概率最大的序列所對應(yīng)的操作,就是預(yù)測的下一步操作。
假設(shè)給定一個序列seq={abddebec},序列長度為t=8,預(yù)測該序列的下一步操作的基本步驟如下:
步驟2.1:根據(jù)下一步可能的操作(假設(shè)有n種),產(chǎn)生n個新序列。每一個新序列都由原序列seq加上一種可能的操作拼接而成。
步驟2.2:對于每一個新序列,計算其在步驟一訓(xùn)練好的hmm中的出現(xiàn)的概率(前向概率),具體地:
步驟2.2.1:計算t=1時局部序列seq={a}的前向概率,即計算在該時刻各個隱含狀態(tài)下該操作出現(xiàn)的概率。
步驟2.2.2:遞歸,在步驟2.2.1基礎(chǔ)上,計算t=2時刻的局部序列seq={ab}的概率,該時刻的概率可表示為上一步獲得的概率與這一時刻所有狀態(tài)下的概率的聯(lián)合概率。
步驟2.2.3:依次類推,根據(jù)t時刻的概率得到t+1時刻的概率,直到獲得t=9時刻的前向概率,即為該新序列在上述hmm中出現(xiàn)的概率。
步驟2.3:對于所有的新序列,選取前向概率最大的新序列所對應(yīng)的新操作,這個新操作就是下一步最有可能的操作。
本發(fā)明的有益效果是:
本發(fā)明結(jié)合實際應(yīng)用領(lǐng)域,相比現(xiàn)有的技術(shù)只考慮普通用戶的需求,本發(fā)明分析了智能家居環(huán)境下殘疾人用戶的行為特殊性,提出了一種殘疾人智能操作的數(shù)據(jù)填補與行為預(yù)測方法,用于解決智能家居環(huán)境下殘疾人肢體障礙性與家居復(fù)雜性之間的矛盾,降低了殘疾人在智能家居環(huán)境下對設(shè)備的操作控制成本。
附圖說明
圖1是操作缺失示意圖。
圖2是數(shù)據(jù)填補過程示意圖。
圖3是hmm預(yù)測用戶操作的步驟圖。
圖4是殘疾人操作預(yù)測模型示意圖。
具體實施方式
為了使本發(fā)明解決的問題更加清楚明白,以下結(jié)合附圖和實施實例進(jìn)行詳細(xì)說明。本實施實例涉及上海市六家殘疾人家庭,本發(fā)明為這六家殘疾人家庭搭建了智能家居平臺,主要利用中控器將空調(diào)、電風(fēng)扇、窗戶、窗簾、電燈等五種家居設(shè)備聯(lián)結(jié)為一個智能家居網(wǎng)絡(luò),且每種設(shè)備都有開關(guān)(on-off)操作,表示為:{電燈:<開:a,關(guān):a>,窗戶:<開:b,關(guān):b>,空調(diào):<開:c,關(guān):c>,電扇:<開:d,關(guān):d>,窗簾:<開:e,關(guān):e>},殘疾人用戶可以使用智能手機去控制這些設(shè)備的開關(guān)。實驗環(huán)節(jié),收集這些用戶每天產(chǎn)生的操作數(shù)據(jù)形成操作序列,分析這些操作序列的特點,定義缺失類型,設(shè)計實驗驗證本發(fā)明的數(shù)據(jù)填補算法與行為預(yù)測算法是否有效。
具體地,圖1為操作缺失示意圖,圖中左側(cè)序列中出現(xiàn)了連續(xù)兩個相同操作a而沒有對應(yīng)的相反操作a,則說明這個序列缺失了對應(yīng)的操作a。因此該序列是不完整的,本發(fā)明的基于knn的數(shù)據(jù)填補技術(shù)可將缺失的操作a填補到該序列的正確位置中。
圖2是上述基于knn的數(shù)據(jù)填補技術(shù)的示意圖,對于圖中的任一不完整序列,都可將其拆分成若干個形如seq={x,...,x}的單一不完整子序列,針對每個單一不完整子序列的填補過程已在發(fā)明內(nèi)容部分詳細(xì)介紹,大致思路就是通過knn算法獲取每個不完整子序列的相似序列,根據(jù)這些相似序列中待填補操作的位置關(guān)系來確定每個缺失操作在對應(yīng)的不完整子序列中的位置,最終完成填補過程。
附圖3是隱馬爾可夫模型預(yù)測用戶操作行為的步驟示意圖,詳細(xì)過程已在發(fā)明內(nèi)容部分詳細(xì)介紹,基本思路即先根據(jù)每個用戶的行為歷史訓(xùn)練出符合該用戶特征的模型,對于某一待預(yù)測序列,計算由該序列產(chǎn)生的新序列在此hmm中出現(xiàn)的概率,其中概率最大的序列對應(yīng)的操作即為下一步最有可能的操作。
圖4是本發(fā)明的核心,即一個智能家居環(huán)境下的殘疾人行為預(yù)測模型示意圖。它主要由兩部分組成:基于knn的數(shù)據(jù)填補模塊和基于hmm操作預(yù)測模塊。具體過程為:將用戶產(chǎn)生的操作數(shù)據(jù)進(jìn)行初步的整理與清洗,然后進(jìn)入基于knn的數(shù)據(jù)填補模塊,填補不完整序列中的缺失操作,得到完整的數(shù)據(jù)集,并將之分為訓(xùn)練集與測試集,訓(xùn)練集進(jìn)入基于hmm的操作預(yù)測模塊進(jìn)行hmm訓(xùn)練,并用測試集的數(shù)據(jù)進(jìn)行實驗驗證,最后將預(yù)測結(jié)果返回給殘疾人用戶。在基于本實施實例的實驗表明,本發(fā)明中的基于knn的數(shù)據(jù)填補算法的準(zhǔn)確率在66%到76%之間,能有效地對殘疾人用戶產(chǎn)生的缺失操作進(jìn)行填補,而本發(fā)明的基于hmm的操作行為預(yù)測技術(shù)的準(zhǔn)確率在73%到77%之間,同等條件下相比傳統(tǒng)的hmm表現(xiàn)出了更好地預(yù)測效果。
以上所述僅為本發(fā)明的較佳實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的原則和精神之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均就包含在本發(fā)明的保護(hù)范圍之內(nèi)。