孫齊鳴 莊大偉 曹昊敏 丁國良△ 戚文端 邵艷坡 鄭 雄 張 浩
(1.上海交通大學,上海;2.廣東美的制冷設備有限公司,順德)
隨著我國經(jīng)濟發(fā)展水平的提高,人們對建筑室內(nèi)環(huán)境的熱舒適性要求也越來越高[1]。在不同的環(huán)境條件下,空調(diào)器滿足用戶熱舒適性要求的設定參數(shù)是不一樣的。在環(huán)境條件變化時,用戶為了滿足舒適性,不得不相應地調(diào)整設定參數(shù),這會給用戶帶來不便。而根據(jù)用戶偏好自動化調(diào)整空調(diào)設定參數(shù)的方法可以免去用戶的操作。
現(xiàn)有的空調(diào)器自動化程度較低,需用戶手動輸入指令或定義設定參數(shù),不具備根據(jù)用戶偏好自動化調(diào)整空調(diào)設定參數(shù)的功能。為了自動化設定空調(diào)參數(shù),需要對設定參數(shù)的變化規(guī)律進行分析,這要求對空調(diào)運行的歷史設定數(shù)據(jù)進行學習。目前有關空調(diào)設定數(shù)據(jù)的研究涉及到大量的數(shù)據(jù)計算與分析,均需借助計算機的快速計算能力[2-4]。例如Zhou等人在高性能計算機上對收集的房間內(nèi)環(huán)境參數(shù)數(shù)據(jù)進行學習與分析,并以此識別了空調(diào)器的運行模式[2]。Zhao等人在計算機上運用神經(jīng)網(wǎng)路模型對房間內(nèi)環(huán)境參數(shù)進行了分析,實現(xiàn)了對空調(diào)能耗的準確預測[4]。而目前空調(diào)器單片機的存儲器寬度多為16位,處理能力不足,僅依靠空調(diào)器單片機無法完成學習和預測設定參數(shù)的任務[5-7]。
快速發(fā)展的云計算技術為分析處理大量數(shù)據(jù)提供了便捷的解決方法[8-9]。例如謝宜鑫使用云計算技術對空調(diào)能耗數(shù)據(jù)進行挖掘,從而實現(xiàn)空調(diào)能耗模式的預測[10]。如果將復雜的計算分析任務放在空調(diào)企業(yè)云端服務器上,空調(diào)器單片機則可以節(jié)省出空間執(zhí)行其常規(guī)任務。
為了能夠?qū)崿F(xiàn)空調(diào)器運行中參數(shù)的自動設定,本文擬基于云端學習與空調(diào)器本地計算相結(jié)合的思路,實現(xiàn)對于空調(diào)器運行中控制參數(shù)用戶偏好的預測。
針對空調(diào)器單片機計算能力不足導致無法自動化預測設定參數(shù)的問題,本文提出云端學習與空調(diào)器本地計算相結(jié)合的技術路線,如圖1所示。具體的做法是:在高計算能力的云端服務器上建立學習算法,用于解決復雜的數(shù)據(jù)分析和模型建立的任務;云端服務器將建立好的模型轉(zhuǎn)化為可供空調(diào)器單片機識別的多維矩陣格式;而在僅可執(zhí)行簡單命令的本地單片機上建立預測方法,用于識別云端服務器生成的多維矩陣;單片機下載包含關系模型信息的多維矩陣后即可計算出用戶設定參數(shù)的預測值。

圖1 空調(diào)云端服務器與本地單片機的交互流程圖
在上述方案中,需要解決的是“云端服務器上學習算法的開發(fā)”和“本地單片機上預測方法的開發(fā)”問題。云端學習算法的開發(fā),包括建立環(huán)境參數(shù)與用戶設定參數(shù)之間的關系模型,以及針對用戶高頻調(diào)節(jié)時關系模型的動態(tài)修正方法。本地預測方法的開發(fā)包括關系模型的讀取,關系模型向多維插值矩陣的轉(zhuǎn)化,以及多維插值矩陣預測值的計算。
云端學習算法和本地預測方法在實際應用過程中需要保證可靠性和準確率。為了驗證二者的可靠性與準確率,本文基于用戶歷史操作數(shù)據(jù)分別對算法和方法進行交叉驗證和測試驗證,操作數(shù)據(jù)中的一部分用于驗證云端服務器上開發(fā)的學習算法的可靠性,剩余的用于驗證本地單片機上建立的預測方法的準確率。
開發(fā)云端學習算法需要對用戶的歷史操作數(shù)據(jù)進行分析與學習,而分析與學習的效果取決于數(shù)據(jù)的質(zhì)量。由于數(shù)據(jù)采集過程中的硬件失效或人為誤導等因素,采集到的數(shù)據(jù)可能混有噪聲數(shù)據(jù);又由于用戶偏好設定參數(shù)集中于某一區(qū)間,使用數(shù)據(jù)中存在著不平衡的問題。這2個問題會降低數(shù)據(jù)整體的質(zhì)量,對分析過程中的精度和性能影響極大[11-12]。而噪聲數(shù)據(jù)消除和數(shù)據(jù)重采樣的方法可以分別解決這2個問題。
噪聲數(shù)據(jù)消除旨在對數(shù)據(jù)中的錯誤值和離群值進行消除。空調(diào)器的運行數(shù)據(jù)主要包括時間、型號、環(huán)境溫濕度、設定參數(shù)、各項功能啟停狀態(tài)、各部件的運行參數(shù)等。空調(diào)器每隔15 min自動監(jiān)測、記錄1次運行參數(shù),當用戶通過遙控或其他方式調(diào)整設定參數(shù)或運行模式時,空調(diào)器也會自動記錄該次調(diào)整數(shù)據(jù)。因為斷網(wǎng)、機器故障或人為操作等原因,空調(diào)器會產(chǎn)生不合要求的噪聲數(shù)據(jù)。本文通過對相關參數(shù)進行約束來刪除噪聲數(shù)據(jù),并通過對非數(shù)值格式的數(shù)據(jù)賦予數(shù)字標簽的方式來對數(shù)據(jù)進行格式轉(zhuǎn)化,從而能夠篩選出有效的數(shù)據(jù)集。
數(shù)據(jù)重采樣旨在解決數(shù)據(jù)集中存在的不平衡問題。用戶設定偏好預測包括對空調(diào)器設定溫度和設定風速的預測,而用戶的偏好設定溫度和風速多集中于某一固定區(qū)間,存在著明顯的不平衡現(xiàn)象。為了防止模型訓練出的結(jié)果出現(xiàn)失衡問題,本文對數(shù)據(jù)集進行了樣本重采樣,即在用戶設定頻次較少的數(shù)據(jù)集附近插入調(diào)和后的新數(shù)據(jù)點,使設定頻次較少的數(shù)據(jù)集的數(shù)量擴充至高頻設定數(shù)據(jù)集的數(shù)量。以上海地區(qū)10戶用戶夏季的使用情況為例,用戶設定溫度和設定風速的頻數(shù)分別如圖2a、b所示。用戶設定溫度偏好集中在24~28 ℃的區(qū)間內(nèi),出現(xiàn)64 344次,占據(jù)總頻次的93.2%;而用戶設定風速偏好多為自動風,出現(xiàn)54 723次,占據(jù)總頻次的84.1%。


圖2 上海地區(qū)10戶用戶的總體設定偏好
以上海地區(qū)10戶用戶的原始數(shù)據(jù)為例,經(jīng)過數(shù)據(jù)重采樣后,用戶低頻設定的數(shù)據(jù)量與高頻設定的數(shù)據(jù)量持平。具體數(shù)據(jù)的對比結(jié)果如表1所示。

表1 上海地區(qū)10戶用戶數(shù)據(jù)重采樣前后對比
為了實現(xiàn)對用戶設定溫度和風速偏好的預測,需要對使用數(shù)據(jù)中自變量與因變量的關系進行分析并建立預測模型,而快速發(fā)展的機器學習算法為找出變量間相互關系提供了有效的解決手段[13]。梯度提升算法(light gradient boosting machine,LightGBM)[14]具有快速性、高精度、內(nèi)存消耗低的優(yōu)點,且處理大批量數(shù)據(jù)的效果好,可以高效學習與分析用戶歷史操作數(shù)據(jù)。該算法學習輸入自變量和因變量之間的關系,將自變量與因變量之間的關系儲存在算法模型之中。
模型的輸入?yún)?shù)為月份、日期、小時數(shù)、分鐘數(shù)、室內(nèi)環(huán)境溫度、冷凝器出口溫度、蒸發(fā)器出口溫度、室外環(huán)境溫度、室內(nèi)濕度、設定溫度變化量和設定風速變化量,這些不同輸入?yún)?shù)統(tǒng)稱為數(shù)據(jù)特征;模型的輸出參數(shù)為用戶設定溫度和用戶設定風速。為了降低算法的消耗并提高算法適用性,需要尋找到與用戶設定參數(shù)(設定溫度和設定風速)關聯(lián)性較強的數(shù)據(jù)特征。本文使用遞歸式特征消除的方法對空調(diào)運行數(shù)據(jù)進行篩選,遞歸地分析特征集來選擇與目標值關聯(lián)性最強的數(shù)據(jù)特征,并用特征重要度來反映與目標值的關聯(lián)性強弱[15]。
對各個用戶數(shù)據(jù)集進行遞歸式特征消除后,得到了數(shù)據(jù)特征的重要度排序,如圖3所示。本文為了降低插值矩陣的維度,使之能儲存于空調(diào)器單片機上,選取4條排序靠前的特征量作為算法模型的輸入,即室內(nèi)環(huán)境溫度、室外環(huán)境溫度、分鐘數(shù)和室內(nèi)濕度。用戶設定溫度和風速作為算法模型的輸出。

圖3 遞歸式特征消除后的數(shù)據(jù)特征重要度排序
建立的算法模型學習了用戶的歷史使用習慣,但此模型不會隨著用戶的使用而更新。隨著使用時間的延長,模型預測的設置參數(shù)可能會偏離近期用戶的使用偏好,為此需要對模型進行修正,使用戶在長期使用過程中仍能給出高準確率的預測值。本文提出將該模型修正為短期頻繁訓練的動態(tài)模型的方法。
此動態(tài)模型的更新周期可以由用戶設定,確保捕捉用戶近期的使用習慣,具體的訓練過程如圖4所示。首先基于歷史數(shù)據(jù)對模型進行訓練,經(jīng)過一個周期后,空調(diào)器所記錄的新的操作數(shù)據(jù)將被添加到訓練數(shù)據(jù)集中,模型被重新訓練并用于下一周期的用戶偏好預測。隨著使用時間的延長和訓練次數(shù)的增加,動態(tài)模型給出的預測值會更加符合用戶的使用習慣。

圖4 動態(tài)模型更新方法示意圖
云端服務器協(xié)助空調(diào)器本地進行設定參數(shù)預測的主要過程為:云端服務器接收空調(diào)運行參數(shù),經(jīng)過修正后的動態(tài)模型學習與訓練后,將輸出的用戶設定參數(shù)作為目標值下達給空調(diào)器單片機,單片機再結(jié)合控制策略調(diào)節(jié)空調(diào)器各部件。而空調(diào)器單片機存在算力不足和斷網(wǎng)時無法接收云端數(shù)據(jù)的問題。本文提出多維矩陣插值的方法用于識別云端指令并下達指令給單片機,以解決單片機存在的算力不足和斷網(wǎng)時無法接收云端數(shù)據(jù)的問題。
本地多維矩陣用于插值預測方法的示意圖見圖5。首先,云端算法在對空調(diào)運行歷史數(shù)據(jù)進行學習后,會得到輸入輸出變量之間關系的數(shù)學模型;隨后,根據(jù)輸入自變量的特征值數(shù)目確定插值矩陣的維度,對每個特征按指定間隔進行劃分后再組合,并在插值矩陣中儲存不同特征維度組合下的設定參數(shù)。每次有新數(shù)據(jù)上傳至云端時,云端算法都會對模型進行一次修正并更新插值矩陣。空調(diào)器單片機便從云端下載更新完成后的插值矩陣。

圖5 多維矩陣插值預測方法示意圖
矩陣查詢方法被編寫入空調(diào)器本地的單片機上,以三維插值矩陣預測方法為例,如圖6所示,室內(nèi)溫度、室外溫度和時間3個特征屬性作為x、y、z坐標,實際工況點與其相鄰節(jié)點的坐標的歐氏距離di為

圖6 插值矩陣方法示意圖
(1)
式中i為三維矩陣下實際工況點的相鄰節(jié)點的序號;x0、y0、z0分別為實際工況點的三維特征參數(shù),即對應室內(nèi)溫度、室外溫度和時間;xi、yi、zi分別為第i個相鄰節(jié)點的三維特征參數(shù)。
為了確定預測推薦值,需分析實際工況點與相鄰參考工況點的關系,在考慮計算負荷和預測準確度的前提下,本文提出了8點加權(quán)平均法則。根據(jù)實際工況點與相鄰節(jié)點的歐氏距離的倒數(shù)對節(jié)點的設定參數(shù)做加權(quán),與實際工況點距離越近的節(jié)點,其權(quán)重越高。加權(quán)后得到的設定參數(shù)即作為本地模型的預測值y,可由下式給出:
(2)
式中pi為儲存在插值矩陣上的第i個相鄰節(jié)點的設定參數(shù)。
空調(diào)器本地單片機讀取運行數(shù)據(jù)后,定期上傳至云端服務器,由云端學習算法根據(jù)最新數(shù)據(jù)來訓練模型,并定期更新插值矩陣,再由空調(diào)器本地下載該矩陣,最后根據(jù)矩陣查詢方法得到用戶設定參數(shù)的預測值。
云端服務器上建立的學習算法在應用過程中需要有足夠的準確率,為此需要對算法模型的準確率進行驗證。算法模型的輸入?yún)?shù)為室內(nèi)溫度、室外溫度、時間和室內(nèi)濕度。模型的輸出參數(shù)為用戶設定溫度和風速。模型的驗證準確率Av定義為
(3)
式中npre為用戶設定溫度(風速)與預測值的絕對誤差在±0.5 ℃(±10%)內(nèi)的次數(shù);nt為測試數(shù)據(jù)集中的總條目數(shù)。
為了避免訓練集數(shù)據(jù)自驗證而產(chǎn)生過擬合的問題,本文在驗證上述模型時使用k折交叉驗證方法,即將初始數(shù)據(jù)集均分為k個子集,其中k-1個子集作為訓練集,剩余1個作為測試集用于測試,依次重復k次,并將測試k次得到的準確率平均后作為交叉驗證的準確率。考慮到需要對數(shù)據(jù)集充分使用,以及各個子集需要有足夠的數(shù)據(jù),k取值建議在3~6之間,此處交叉驗證的k值取為5。
為了評價算法模型在單個地區(qū)的通用性和適用性,定義地區(qū)平均準確率Aa為
(4)
式中k為用戶序號;m為地區(qū)用戶的數(shù)目;nt,k為第k個用戶測試集的數(shù)據(jù)容量;Ak為第k個用戶測試集的分類準確率。
本文選擇了位于重慶、廣州和上海3個大型城市共30戶用戶的歷史數(shù)據(jù),這些用戶的數(shù)據(jù)具有地域差異大、涵蓋范圍廣、使用時間長的特點,數(shù)據(jù)集的主要信息如表2所示。對于上海地區(qū)的10戶用戶,其交叉驗證數(shù)據(jù)集包含的條目最多為14 949條,最少為1 777條,平均為6 503條;對于廣州地區(qū)的10戶用戶,其交叉驗證數(shù)據(jù)集包含的條目最多為9 337條,最少為1 889條,平均為7 190條;對于重慶地區(qū)的10戶用戶,其交叉驗證數(shù)據(jù)集包含的條目最多為7 513條,最少為1 911條,平均為4 296條。

表2 交叉驗證數(shù)據(jù)集的主要信息
數(shù)據(jù)集交叉驗證結(jié)果如圖7~9所示。

圖7 上海地區(qū)用戶夏季運行數(shù)據(jù)交叉驗證結(jié)果

圖8 廣州地區(qū)用戶夏季運行數(shù)據(jù)交叉驗證結(jié)果

圖9 重慶地區(qū)用戶夏季運行數(shù)據(jù)交叉驗證結(jié)果
對于設定溫度的交叉驗證結(jié)果而言,上海、廣州、重慶地區(qū)的平均驗證準確率分別為0.92、0.89、0.89。對于設定風速的交叉驗證結(jié)果而言,上海、廣州、重慶地區(qū)的平均驗證準確率分別為0.93、0.91、0.95。
由此可見,云端算法模型在多數(shù)空調(diào)用戶的運行數(shù)據(jù)集上的表現(xiàn)良好,能有效地反映出用戶的行為特征與輸入環(huán)境特征的關系。
本地單片機上建立的預測方法在應用中需要有較高的準確率,為此需要對預測方法的準確率進行驗證。用戶操作數(shù)據(jù)中的一部分用于訓練算法模型,剩余的用于驗證本地單片機上建立的預測方法的準確率。時間、室內(nèi)濕度、室內(nèi)溫度和室外溫度的組合作為模型的輸入?yún)?shù),用戶設定溫度和設定風速則是模型的輸出參數(shù)。預測方法的衡量指標采用預測準確率與地區(qū)平均準確率,計算公式沿用式(3)、(4)。
本文將具有代表性的3個城市共30戶用戶的夏季空調(diào)運行大數(shù)據(jù)分為訓練組和測試組,其中,5—7月的空調(diào)運行數(shù)據(jù)作為模型的訓練組,8月的空調(diào)運行數(shù)據(jù)作為模型的測試組,用于檢驗連續(xù)1個月內(nèi)的預測效果。訓練組和測試組數(shù)據(jù)的主要信息如表3所示。

表3 訓練組和測試組數(shù)據(jù)集的主要信息
3個城市共30戶用戶的數(shù)據(jù)集預測結(jié)果如圖10~12所示。

圖10 上海地區(qū)用戶夏季運行數(shù)據(jù)的本地預測結(jié)果

圖12 重慶地區(qū)用戶夏季運行數(shù)據(jù)的本地預測結(jié)果
由空調(diào)用戶8月運行數(shù)據(jù)的預測結(jié)果可知:對于設定溫度的預測結(jié)果而言,上海、廣州、重慶地區(qū)的平均預測準確率分別為0.88、0.84、0.80;對于設定風速的預測結(jié)果而言,上海、廣州、重慶地區(qū)的平均預測準確率分別為0.91、0.90、0.94,這主要是由于多數(shù)用戶的設定風速偏好均為自動風擋。對于設定溫度預測準確率低于0.70的部分數(shù)據(jù)集來說,用戶的設定偏好多呈現(xiàn)不規(guī)律且頻繁的波動,模型無法根據(jù)歷史習慣給出準確的預測值。可能原因之一是該空調(diào)室內(nèi)存在人員的頻繁變動。
多維矩陣插值方法能較好地復現(xiàn)云端算法模型的結(jié)果,繼承模型的內(nèi)在關聯(lián)。由此可見,云端學習模型與本地預測模型的結(jié)合在大多數(shù)空調(diào)用戶運行數(shù)據(jù)集上的表現(xiàn)良好,可以準確地反映出用戶的設定溫度和設定風速偏好。
1) 通過云端學習與本地計算相結(jié)合的方法,可以在空調(diào)器單片機有限計算資源下實現(xiàn)用戶偏好設定參數(shù)的預測。
2) 云端服務器上建立的學習算法能夠?qū)W習用戶操作數(shù)據(jù)并建模,建立的模型可以反映用戶設定溫度和設定風速與環(huán)境參數(shù)的關聯(lián)。
3) 本地單片機上建立的預測方法可以繼承云端算法模型的內(nèi)在關聯(lián),能夠在低計算消耗下對用戶設定溫度和風速進行預測。
4) 云端學習算法的數(shù)據(jù)交叉驗證結(jié)果顯示:交叉驗證數(shù)據(jù)集的設定溫度與預測值的偏差在±0.5 ℃內(nèi)的比例平均為90%,最高為92%;設定風速與預測值的偏差在±10%內(nèi)的比例平均為93%,最高為95%。說明云端學習算法的適用性較好。
5) 本地預測方法的驗證結(jié)果表明:用戶實際設定溫度與預測值的偏差在±0.5 ℃內(nèi)的占比平均為84%,最高為88%;用戶實際設定風速與預測值的偏差在±10%內(nèi)的占比平均為92%,最高為94%。說明本地預測方法效果良好,可用于空調(diào)用戶設定偏好的預測。