關鍵雄
(1.西南交通大學電氣工程學院,四川 成都 611756;2.新加坡淡馬錫理工學院清潔能源中心,新加坡 529757;3.新加坡國立大學計算機學院,新加坡 117417)
在整個電網體系當中,用戶群體是關鍵一環。智能電表的普及能夠越來越容易地獲得每個家庭的用電量數據。通過對電表數據的監測,有關部門可以實現對用電高峰的調度,還可以進行對用電器的故障檢測[1]。在大數據的時代背景下,監測家庭用戶的電力負荷,并將電力數據與生活中一些看似不相關的信息綜合起來,便能得到很多意想不到卻又很具有價值的信息[2]。這些信息將會帶給諸如電力公司、經銷商等多個行業人群有利的信息,從而幫助人們的生活變得更加便捷。
當前的研究工作已經提出總的家庭用電量數據能夠被用來評估一些家庭的靜態特性,比如房屋面積、居住人口等[3]。這些特性信息不僅能夠用于目標能源反饋,而且可以幫助調整家庭中恒溫器的溫度設置,從而提高能源效率和用戶的舒適度,另外還能用于目標能源查詢[4]。Nipun Batra等人[4]使用無監督的能量分解方法預測6個靜態房屋屬性,分別為房屋的年齡、房屋面積、家庭收入、樓層數、房間數、居住人口。從總的用電量數據中分解出暖通空調的功率信號,比起簡單地使用總的用電量數據,能夠使評估房屋靜態特性的準確率提高10%。
為了提高非侵入式負荷監測的準確率,還可以通過數據融合的方法來進行,即除了電力數據之外,添加一些情境性信息,例如家庭中用電器的物理位置等。Akshay等人[5]利用通過無線位置傳感器獲得的用戶實時位置信息和用電器的用電量數據,來提高現有的非侵入式負荷監測方法的準確率。
下面提出將總的用電量信息和靜態的房屋面積信息綜合起來,用來推斷一個家庭的收入情況,幫助相關企業部門和經銷商對消費群體進行準確的定位和把控,使商家更有針對性地為用戶提供需要的服務和產品,實現對于商業發展的促進,讓人們能夠享受大數據時代帶給生活的便利。此外,國家和政府可以通過這個技術,對一個小區甚至一個地區進行粗略但成本很低的統計,從而幫助政府更好地了解居民的收入,進而采取一系列管理和政策上的調整。
由于簡單地使用從智能電表讀取的用電量信息對家庭收入進行估計的準確率不高,除了對總的用電量進行能量分解來提高準確率,也可以采用增加附加信息的數據融合方法,下面采用的便是后者的研究思路。由于房屋面積信息作為房屋的一個最為明顯的靜態特性是非常容易獲得的,因此將總的用電量信息和靜態的房屋面積信息綜合起來推斷家庭收入情況。經過研究發現,增加了房屋面積這一信息之后,對家庭收入情況估計的準確率有了很大的提高。
主要使用公開可用的數據集Dataport中的數據來進行對家庭收入的估計。Dataport數據集是由Pecan Street公司創建的,包含從2012—2014年700多個家庭每秒鐘的總用電量數據,同時也包含了一部分家庭的基本信息調查數據[6]。從Dataport數據集中提取出元數據表、3年的家庭用電量數據表和對應3年的家庭情況調查表,然后從這3組數據表中提取整合出對應樣本家庭該年的總用電量情況、房屋面積以及收入情況3部分信息,最終得到可用的樣本家庭數據371個。為了方便評估每個家庭收入,將家庭收入情況劃分為兩個類別,分別為年收入低于10萬美元和年收入等于或者高于10萬美元[7]。
從收集到的家庭總用電量信息中,提取出該年中家庭總用電量的平均值(mean use)、中位數(median use)、最大值(max use)、極差(range use)、標準差(std use)以及該年中每小時的家庭總用電量超過2 kW的時數(count more 2)、超過4 kW的時數(count more 4)、超過6 kW的時數(count more 6)、超過8 kW的時數(count more 8)、超過10 kW的時數(count more 10)、超過12 kW的時數(count more 12)、超過16 kW的時數(count more 16)、超過18 kW的時數(count more 18),總共13個電力特征[8-9]。另外,將房屋面積(total square footage)作為新增加的特征,和這些電力特征一起構成14維的特征數據集。
圖1和圖2分別隨機選取了兩組不同的二維特征,通過散點圖的形式展示了數據集中各個樣本家庭的部分特征分布情況以及這些樣本家庭的年收入所屬類別。在圖1中,橫、縱坐標分別選取的特征是房屋面積和該年中家庭總用電量的平均值,圓圈代表該樣本家庭的年收入低于10萬美元,五角星代表該樣本家庭的年收入等于或者高于10萬美元。在圖2中,橫、縱坐標分別選取的特征是該年中家庭總用電量的標準差和最大值,三角形代表該樣本家庭的年收入低于10萬美元,正方形代表該樣本家庭的年收入等于或者高于10萬美元。從兩圖中的數據點分布來看,數據并非線性可分的,因此無法簡單地利用線性超平面將兩個類別區分開。

圖1 房屋面積與平均用電量二維特征數據分布散點

圖2 用電量標準差與最大用電量二維特征數據分布散點
對家庭收入的估計屬于機器學習的分類問題。最常見的幾種機器學習分類算法有邏輯斯蒂回歸(logistic regression)、支持向量機(support vector machine, SVM)、決策樹(decision tree)、隨機森林(random forests)、K-近鄰(K-nearest neighbor classifier, KNN)等[10]。
其中,K-近鄰算法又稱為一種懶惰學習算法,它通過測量不同特征值之間的距離來對目標對象進行分類[11]。KNN算法步驟如下:
1)確定k的大小和距離度量;
2)對于測試集中的一個樣本,找到訓練集中和它最近的k個樣本。
KNN是基于內存的方法,其優點是一旦訓練集增加了新數據,模型能立刻改變。但是分類時的最壞計算復雜度隨著訓練集增大而增加,除非特征維度非常低。此外,需要一直保存著訓練集,不像參數模型訓練好模型后,可以丟棄訓練集。
SVM的主要思想就是找到空間中存在的一個能夠將所有數據樣本區分開的超平面,并且使得得到的樣本數據到這個超平面的距離最短。SVM能解決線性和非線性問題,因此可以分為線性和非線性兩大類[12]。
線性SVM(linear SVM)在解決現實的分類問題時,通常與線性邏輯回歸的效果近似,對于線性可分的類別數據性能良好。
核SVM(kernel SVM)是指在 SVM 中引入核方法,使SVM 變為非線性分類器,從而解決線性不可分數據。常用的核函數一般稱為高斯核,通常簡寫為
k(x(i),x(j))=e(-γ‖x(i)-x(j)‖2)
式中:γ為一個要優化的自由參數,可以被理解為高斯球面的階段參數,若增大γ的值,會產生更加柔軟的決策界;k為兩個樣本間的相似形函數;x(i)、x(j)為兩個樣本。高斯核中e的指數范圍小于等于0,因此高斯核值域范圍為(0,1],特別地,當兩個樣本完全一樣時,值為1;兩個樣本完全不同時,值為0[10]。
決策樹的生成是一個遞歸過程,訓練決策樹模型時,從根節點出發,使用信息增益最大的特征對數據進行分割,然后迭代此過程[13]。決策樹會將特征空間分割為矩形,因此其決策界很復雜。熵和基尼系數是決策樹常用的兩個度量,而且兩者的結果相似,選擇任何一個都是可以的。決策樹直觀,便于理解,具有很好的模型可解釋性,對于小規模數據集很有效;但類別較多時,錯誤增加較快,可規模性不強。很多棵決策樹集成,就叫做隨機森林。
從前面可以得知,用于所研究的特征數據集并非簡單的線性可分數據,因此線性邏輯回歸和線性SVM 兩種算法適用性不強。而這里的數據特征維度并不低,運用KNN算法分類時的最壞計算復雜度和預測時的計算成本相對較高。相對來說,從各種分類算法本身的優缺點出發,擬采用決策樹和核SVM兩種算法來對樣本家庭的年收入情況進行分類估計。同時,將線性SVM和KNN作為基準算法,與決策樹和核SVM的分類效果進行對比,從而驗證算法選擇的合理性。
Python的scikit-learn是一個專門的機器學習算法庫,它提供了執行機器學習算法的模塊化方案。以上這幾種分類算法的模型都可以從scikit-learn中直接調用,簡潔和高效。
2.2.1 僅通過家庭總用電量數據估計家庭年收入
步驟1:只選取13個維度的電力特征組成數據樣本X,將樣本家庭的年收入類別作為要預測的目標y。
步驟2:為了評估訓練好的模型對新數據的預測能力,先將數據集(X,y)隨機分為兩部分: 訓練集占80%,測試集占20%。
步驟3:對訓練集中每一維度的特征計算出樣本平均值和標準差,進而對數據集進行標準化,使每一維度特征的重要性等同。
步驟4:調用KNN、線性SVM、決策樹以及核SVM4種不同的分類器訓練模型。針對每一種分類器,分別設置合適的模型參數和隨機參數。
步驟5:分別計算每個模型在測試集上的分類準確率,以此來對比和評價以上4種模型的性能。
步驟6:通過對模型進行多次的參數調整,得到最佳的模型狀態,提高模型預測新數據的準確率。
2.2.2 增加房屋面積特征來估計家庭年收入
步驟1:選取電力特征和房屋面積特征共14個維度的特征,組成數據樣本X,將樣本家庭的年收入類別作為要預測的目標y。
步驟2:采用同樣的方法對測試集的樣本家庭年收入進行預測。
步驟3:與2.2.1節對比4種算法模型得到的分類準確率。
2.2.3 獲取最優特征估計家庭年收入
考慮到2.2.2節中14個維度的特征可能存在由于維度過大而出現維度詛咒的問題,于是通過隨機森林對特征重要性進行了評估,如圖3所示。橫坐標表示14個特征,縱坐標對應每個特征的重要性。從圖3中可以看出,total square footage是最能區分類別的特征,std use和mean use次之。即重要性排名前三的特征是房屋面積、用電量標準差和用電量平均值。房屋面積和用電量往往正向相關,面積越大,用的電可能越多,這也從另一個角度說明了算法的有效性和合理性。

圖3 特征重要性排序
此外,scikit-learn中的隨機森林實現,還可以基于用戶給定的閾值進行特征選擇。設置閾值為0.09,最終便選擇出7個維度的特征作為最優特征,即房屋面積、該年中家庭總用電量的標準差、平均值、中位數、最大值、極差和該年中每小時的家庭總用電量超過4 kW的時數。
得到最優特征之后,采用同樣的方法對測試集的樣本家庭年收入進行預測,與2.2.2節中不進行特征選擇得到的分類準確率進行對比,驗證維度詛咒的問題是否存在。
在圖4中,黑色代表只使用家庭總用電量數據來估計家庭年收入的分類準確率,白色代表增加房屋面積特征后的分類準確率。從圖4中可以看出,只使用總用電量數據,4種算法的分類準確率都很低,其中KNN的準確率相對來說是最高的,核SVM次之。在增加了房屋面積特征后,4種算法的分類準確率普遍有了很大幅度的提高。其中,使用核SVM對家庭年收入的分類準確率提高了15%,分類效果明顯。其次是決策樹算法,使分類準確率提高了13%。而線性SVM的分類準確率雖然也提高了,卻始終是4種分類算法中準確率最低的??梢?,增加房屋面積的信息,確實能夠提高對家庭收入估計的準確率。此外,圖4也驗證了2.1節中所述的從分類算法本身的優缺點出發來選擇算法的合理性,即線性SVM的確不適用于所提出的數據分析。

圖4 增加房屋面積特征前后的分類準確率對比
在圖5中,白色代表特征選擇之前使用14個維度的特征估計家庭年收入的分類準確率,灰色代表特征選擇之后使用7個最優特征估計家庭年收入的分類準確率。從圖5中可以看出,經過特征選擇,4種分類算法的準確率都有所提高,但是提高的幅度并不大,只有1%~2%。此外,核SVM依然是4種分類算法中估計家庭年收入準確率最高的,可以達到0.81,決策樹算法次之,線性SVM的準確率最低。而KNN算法的準確率時高時低,可能與所采用的數據樣本容量較小以及樣本類別不平衡等因素有關。

圖5 最優特征選擇前后的分類準確率對比
經過前面的研究得出以下結論:只使用總用電量信息對家庭收入估計的準確率相對較低;加入房屋面積信息之后,即使使用最基本的分類算法,也能大幅度提高對家庭收入估計的準確率。另外,在提出的4種基本的機器學習分類算法中,核SVM對于非線性可分數據的分類效果最好,決策樹次之。
房屋面積信息作為房屋的一個最為明顯的靜態特性,不會因為受到外界影響而發生改變,具有穩定性和易捕獲性的優點。用電量信息作為當今家庭中非常重要的信息之一,具有實時性的特點。綜合這兩種信息來推斷家庭收入,無疑為今后的研究工作開拓了思路。所選用的是總用電量的信息,今后還可以嘗試使用分解后各個用電器的用電量信息進行數據融合。將家庭收入劃分為兩個類別,今后可以嘗試對家庭收入的類別作更精細的劃分。同時,選用的算法仍需要不斷的優化和完善。另外,所選用的數據樣本規模偏小,普適意義還有待進一步提升樣本規模,也是一個日后有待解決的問題[14]。
致謝
西南交通大學電氣工程學院的鄭珺老師和張雪霞老師在論文的結構、撰寫和算法應用方面提出了指導性建議,謹此深表感謝。