本算法能對隨時間變化的空氣參數(shù)(溫度,濕度,甲醛濃度,PM2.5濃度,二氧化碳濃度等)中的數(shù)據(jù)空缺進(jìn)行填補(bǔ),并可以對數(shù)據(jù)中的異常跳變值進(jìn)行去除,以及可以對數(shù)據(jù)進(jìn)行零點(diǎn)偏移的修正。屬于特定數(shù)據(jù)預(yù)處理的領(lǐng)域。具體講,涉及基于局部加權(quán)回歸的室內(nèi)空氣數(shù)據(jù)預(yù)處理方法。
背景技術(shù):
目前對數(shù)據(jù)進(jìn)行預(yù)處理的技術(shù)方法難易皆具,然而簡單的預(yù)處理方法難以做到有效,而有效的預(yù)處理方法往往比較復(fù)雜[1]。本技術(shù)預(yù)處理的數(shù)據(jù)對象是室內(nèi)空氣數(shù)據(jù):第一,這種數(shù)據(jù)具有整體上隨時間緩慢變動但是每時每刻都有著不同程度的隨機(jī)噪聲的特點(diǎn)(如圖1);第二,由于硬件系統(tǒng)具有數(shù)據(jù)空缺報(bào)警功能,故可以確保數(shù)據(jù)空缺的時長很短;第三,已經(jīng)具有了修正零點(diǎn)偏移的標(biāo)定曲線。所以相比于對數(shù)據(jù)空缺進(jìn)行填補(bǔ)和零點(diǎn)偏移,本技術(shù)的核心是對數(shù)據(jù)中的跳變異常值進(jìn)行去除,并且能夠保證與人行為變化相關(guān)的數(shù)據(jù)大幅度變動不被識別成異常值被剔除。
在對數(shù)據(jù)異常值進(jìn)行剔除的方法中,最常見的是對數(shù)據(jù)直接使用C4.5決策樹進(jìn)行分類判定[2],但是該算法易將因?yàn)槿诵袨樽兓瘜?dǎo)致的數(shù)據(jù)大幅度變動值和異常跳變值一并被分類成異常值;其次CD(Curve Description)法也被用于對異常值的分類[3],此方法以相鄰的數(shù)值的變化量和變化率為閾值進(jìn)行判定,然而對于本專利要解決的問題而言,它和決策樹法有著相似的缺陷,而且在程序?qū)崿F(xiàn)上也比決策樹法復(fù)雜;國外也使用噪聲數(shù)據(jù)過濾法(Filters)識別并剔除異常值,比較典型的是Ensemble Filter(EF)[4]和Iterative-Partitioning Filter(IPF)[5],這兩種方法都比較有名,但是都比較復(fù)雜,得對其額外設(shè)置多個參數(shù)[1],這對本技術(shù)所面對的問題是沒有必要的。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,本發(fā)明旨在用簡單但有效的方法對室內(nèi)空氣隨時間變化的數(shù)據(jù)進(jìn)行預(yù)處理,包括短時長數(shù)據(jù)空缺的填補(bǔ),數(shù)據(jù)異常跳變值的去除,與此同時保證與人行為變化相關(guān)的數(shù)據(jù)大幅度變動不被識別成異常值,最后進(jìn)行零點(diǎn)偏移的矯正。本發(fā)明采用的技術(shù)方案是,基于局部加權(quán)回歸的室內(nèi)空氣數(shù)據(jù)預(yù)處理方法,首先進(jìn)行短時長數(shù)據(jù)空缺的填補(bǔ),要確保整個數(shù)據(jù)不存在空缺的0值,然后再進(jìn)行數(shù)據(jù)異常跳變值的去除,在保證不再存在針狀的數(shù)據(jù)跳變點(diǎn)時,再進(jìn)行零點(diǎn)偏移的矯正,即將處理好的數(shù)據(jù)代入到標(biāo)定曲線中。
進(jìn)行數(shù)據(jù)異常跳變值的去除具體步驟是,使用擬合曲線將有意義的信息擬合出來,并且同時不擬合針狀數(shù)據(jù)跳變和所有的高頻噪聲,具體選用局部加權(quán)回歸(Local Weight Regression)進(jìn)行有用信息的擬合,再用原數(shù)據(jù)曲線減去擬合曲線得到噪聲曲線,解決有用信息對跳變值去除的干擾。
局部加權(quán)回歸原理具體步驟是,先用一定數(shù)目的橫軸上的參考點(diǎn)將整個數(shù)據(jù)等分開來,并以這些點(diǎn)為中心分別求算線局部性回歸,在使用最小二乘法求解回歸參數(shù)時,離中心點(diǎn)越遠(yuǎn)的數(shù)據(jù)點(diǎn)所占的權(quán)數(shù)越小,最后得到這些點(diǎn)的回歸數(shù)值,然后用插值將這些回歸數(shù)值點(diǎn)相連,這里使用線性插值即可;
進(jìn)一步地,對每一個訓(xùn)練數(shù)據(jù)點(diǎn),都要使得:
∑iw(i)(y(i)-θTx(i))2 (1)
最?。?/p>
其中i是訓(xùn)練數(shù)據(jù)的個數(shù)角標(biāo);x指時間軸的時間值;y是目標(biāo)值;θ是回歸方程的系數(shù)向量,使用二次回歸,故θ是個三維向量;w是高斯權(quán)數(shù),表示成:
其中沒有上角標(biāo)的x指的是選定的橫軸上的參考點(diǎn),τ是帶寬(bandwidth),τ越大,局部回歸的強(qiáng)度越大;
局部加權(quán)回歸在每個殘差平方項(xiàng)之前多一個高斯權(quán),對每個參考點(diǎn)都要求得二次的回歸曲線,且曲線參數(shù)一定是不同的,對任一個參考點(diǎn)x,都有:
θ=(XTWX)-1XTWy (3)
其中,X是由1,x(i),(x(i))2組成的m維矩陣,稱之為設(shè)計(jì)矩陣(design matrix)m即訓(xùn)練數(shù)據(jù)數(shù)量,X寫作:
W是m階對角矩陣,寫作diag(w(1)…w(i)…w(n));y是目標(biāo)值排成的m階列向量,記作(y(1)…y(i)…y(n))T;最終得到的θ是一個3×3的矩陣,取θ中第一列中的從上到下三個元素分別作為二次回歸曲線中的常數(shù)項(xiàng)前系數(shù),一次項(xiàng)前系數(shù)和二次項(xiàng)前系數(shù),對于每一個參考點(diǎn)xck(j),代回回歸曲線都有其對應(yīng)的回歸值yck(j),其中j是參考點(diǎn)數(shù)據(jù)的個數(shù)角標(biāo),這樣便形成一個回歸點(diǎn)(xck(j),yck(j));
將相鄰的回歸點(diǎn)進(jìn)行線性插值就得到對整個數(shù)據(jù)曲線進(jìn)行回歸的回歸曲線。
使用局部加權(quán)回歸識別并剔除跳變值的流程:
a.將原數(shù)據(jù)曲線進(jìn)行局部加權(quán)回歸,生成擬合曲線;
b.將原數(shù)據(jù)減去擬合曲線得到殘差曲線;
c.求殘差曲線的平均值和標(biāo)準(zhǔn)差;
d.遍歷所有的殘差數(shù)據(jù),利用拉依達(dá)準(zhǔn)則,挑選出所有超出限制的數(shù)據(jù):
e.獲取d中選中的數(shù)據(jù)的標(biāo)號,并將對應(yīng)標(biāo)號中的原數(shù)據(jù)替換成跳變數(shù)據(jù)兩端的正常數(shù)據(jù)之間的插值,達(dá)到平滑的目的。
本發(fā)明的特點(diǎn)及有益效果是:
本發(fā)明具有原理簡單,計(jì)算快速并效果顯著的特點(diǎn)。該發(fā)明對室內(nèi)空氣質(zhì)量(IAQ)隨時間的數(shù)據(jù)有著良好的有益效果:本發(fā)明能夠有效的從原數(shù)據(jù)中分離出噪聲;能夠通過分析噪聲特點(diǎn)來對數(shù)據(jù)中的跳變異常值進(jìn)行去除,并且能夠保證與人行為變化相關(guān)的數(shù)據(jù)大幅度變動不被識別成異常值被剔除。
附圖說明:
圖1:對一間辦公室使用傳感器的實(shí)測室內(nèi)空氣數(shù)據(jù),橫軸是時間,以1秒為單位;縱軸是相應(yīng)的數(shù)值強(qiáng)度。圖中1-2和1-3都有針狀的數(shù)據(jù)跳變。
圖2:帶有數(shù)據(jù)空缺和數(shù)據(jù)跳變的實(shí)測甲醛隨時間的變化數(shù)據(jù)曲線。
圖3數(shù)據(jù)平滑流程圖。
圖4:數(shù)據(jù)空缺被插值的實(shí)測甲醛隨時間的變化數(shù)據(jù)曲線。
圖5:對圖1曲線進(jìn)行局部加權(quán)回歸后的實(shí)測甲醛隨時間的變化數(shù)據(jù)擬合曲線
圖6:甲醛隨時間的變化數(shù)據(jù)的殘差曲線,可見數(shù)據(jù)跳變在其中,且不含有任何有用信息。
圖7:數(shù)據(jù)跳變被平滑的實(shí)測甲醛隨時間的變化數(shù)據(jù)曲線,可見有用信息都被保留了下來。
具體實(shí)施方式
為了防止算法的復(fù)雜以及誤差的放大,對可能帶有短時間數(shù)據(jù)空缺的室內(nèi)空氣數(shù)據(jù)進(jìn)行預(yù)處理時,首先進(jìn)行短時長數(shù)據(jù)空缺的填補(bǔ),要確保整個數(shù)據(jù)不存在空缺的0值,然后再進(jìn)行數(shù)據(jù)異常跳變值的去除,在保證不再存在針狀的數(shù)據(jù)跳變點(diǎn)時,再進(jìn)行零點(diǎn)偏移的矯正,即將處理好的數(shù)據(jù)代入到標(biāo)定曲線中。
1)在原始數(shù)據(jù)中,凡是空缺值都已經(jīng)用0代替。
首先選擇n個數(shù)值組成的時序數(shù)據(jù),這里n需要是容易被整除的數(shù),比如2000,這為了能夠有效的進(jìn)行數(shù)據(jù)跳變值的去除。然后將原始數(shù)據(jù)進(jìn)行空缺值的填補(bǔ),并根據(jù)(三)中提到的數(shù)據(jù)性質(zhì),在這里選用對數(shù)據(jù)進(jìn)行插值,將結(jié)果替換掉對應(yīng)位置的0值。
2)確保整個數(shù)據(jù)中沒有0值時,開始對跳變值進(jìn)行去除。
這里注意到不能將因?yàn)槿诵袨樽兓臄?shù)據(jù)大幅度變動去除,以帶有數(shù)據(jù)空缺,數(shù)據(jù)跳變和因?yàn)槿诵袨樽兓臄?shù)據(jù)大幅度變動的實(shí)測甲醛數(shù)據(jù)為例(如圖2),發(fā)現(xiàn)數(shù)據(jù)跳變和因?yàn)槿诵袨樽兓臄?shù)據(jù)變動有著很大的區(qū)別:
如圖2中右側(cè)虛線曲線部分,此處對應(yīng)的時刻,辦公室門被打開,使得對門的實(shí)驗(yàn)室里面的實(shí)驗(yàn)甲醛氣體部分涌入辦公室,導(dǎo)致了室內(nèi)甲醛濃度升高,這屬于典型的人行為變化。這種甲醛濃度的變化不能被當(dāng)做異常值識別并剔除。其次,左側(cè)的實(shí)線紅圈的部分是數(shù)據(jù)缺失,為0值。
在這里,不適宜直接將數(shù)據(jù)進(jìn)行異常值的剔除,一方面數(shù)據(jù)整體走勢就呈現(xiàn)出緩慢的變動,從左側(cè)的0.07變到右側(cè)的0.047,另一方面就是右側(cè)虛線紅圈的曲線很容易被當(dāng)作異常值,這些都是數(shù)據(jù)曲線中的有意義的信息。因此有必要將數(shù)據(jù)曲線中有意義的信息保留,所以適合的策略就是使用擬合曲線將有意義的信息擬合出來,并且同時不擬合針狀數(shù)據(jù)跳變和所有的高頻噪聲,這里選用局部加權(quán)回歸(Local Weight Regression)進(jìn)行有用信息的擬合,再用原數(shù)據(jù)曲線減去擬合曲線得到噪聲曲線,便可以完全解決有用信息對跳變值去除的干擾。
3)局部加權(quán)回歸原理
局部加權(quán)回歸是一般線性回歸的改進(jìn)版,能夠克服后者欠擬合或過擬合的缺陷。它的步驟是先用一定數(shù)目的橫軸上的參考點(diǎn)將整個數(shù)據(jù)等分開來,并以這些點(diǎn)為中心分別求算線局部性回歸,在使用最小二乘法求解回歸參數(shù)時,離中心點(diǎn)越遠(yuǎn)的數(shù)據(jù)點(diǎn)所占的權(quán)數(shù)越小。最后可以得到這些點(diǎn)的回歸數(shù)值,然后用插值將這些回歸數(shù)值點(diǎn)相連,這里使用線性插值即可。
對每一個訓(xùn)練數(shù)據(jù)點(diǎn),都要使得:
∑iw(i)(y(i)-θTx(i))2 (1)
最小。
其中i是訓(xùn)練數(shù)據(jù)的個數(shù)角標(biāo);x是特征值,在本文中即指時間軸的時間值;y是目標(biāo)值,本文中即甲醛濃度值;θ是回歸方程的系數(shù)向量,本方法使用二次回歸,故θ是個三維向量;w是高斯權(quán)數(shù),表示成:
其中沒有上角標(biāo)的x指的是選定的橫軸上的參考點(diǎn),τ是帶寬(bandwidth),τ越大,局部回歸的強(qiáng)度越大。
局部加權(quán)回歸在每個殘差平方項(xiàng)之前多一個高斯權(quán),這就會極大削弱離參考點(diǎn)比較遠(yuǎn)的數(shù)據(jù)對擬合的影響,進(jìn)而達(dá)到局部回歸的目的。對每個參考點(diǎn)都要求得二次的回歸曲線,且曲線參數(shù)一定是不同的,對任一個參考點(diǎn)x,都有:
θ=(XTWX)-1XTWy (3)
其中,X是由1,x(i),(x(i))2組成的m維矩陣,稱之為設(shè)計(jì)矩陣(design matrix)m即訓(xùn)練數(shù)據(jù)數(shù)量,X寫作(此時為了求二次回歸曲線,所以矩陣只有三列,若求n次回歸曲線,矩陣就有n+1列):
W是m階對角矩陣,寫作diag(w(1)…w(i)…w(n));y是目標(biāo)值排成的m階列向量,記作(y(1)…y(i)…y(n))T;最終得到的θ是一個3×3的矩陣,取θ中第一列中的從上到下三個元素分別作為二次回歸曲線中的常數(shù)項(xiàng)前系數(shù),一次項(xiàng)前系數(shù)和二次項(xiàng)前系數(shù)。對于每一個參考點(diǎn)xck(j),代回回歸曲線都有其對應(yīng)的回歸值yck(j),其中j是參考點(diǎn)數(shù)據(jù)的個數(shù)角標(biāo),這樣便形成一個回歸點(diǎn)(xck(j),yck(j))。
將相鄰的回歸點(diǎn)進(jìn)行線性插值就可以比較準(zhǔn)確的得到對整個數(shù)據(jù)曲線進(jìn)行回歸的回歸曲線,這樣的曲線能夠保留所有的有用信息。
4)使用局部加權(quán)回歸識別并剔除跳變值的流程
a.將原數(shù)據(jù)曲線進(jìn)行局部加權(quán)回歸,生成擬合曲線。
b.將原數(shù)據(jù)減去擬合曲線得到殘差曲線。
c.求殘差曲線的平均值和標(biāo)準(zhǔn)差。
d.遍歷所有的殘差數(shù)據(jù),利用拉依達(dá)準(zhǔn)則,挑選出所有超出限制的數(shù)據(jù):
拉依達(dá)準(zhǔn)則規(guī)定:所有超出三倍標(biāo)準(zhǔn)差范圍之內(nèi)的數(shù)據(jù)都被剔除。即:去掉所有的x,若x滿足|x-μ|<3σ。因?yàn)橐淮涡蕴幚淼臄?shù)據(jù)量較大,遠(yuǎn)超過了拉依達(dá)準(zhǔn)則的使用數(shù)據(jù)下限:100個數(shù)據(jù)。所以這里采取較為簡便的拉依達(dá)準(zhǔn)則。
e.獲取d中選中的數(shù)據(jù)的標(biāo)號,并將對應(yīng)標(biāo)號中的原數(shù)據(jù)(跳變數(shù)據(jù))替換成跳變數(shù)據(jù)兩端的正常數(shù)據(jù)之間的插值,達(dá)到平滑的目的。
5)在用局部加權(quán)回歸識別并剔除跳變值后,將得到的處理后數(shù)據(jù)代入到標(biāo)定的回歸方程中,進(jìn)而得到完整的預(yù)處理結(jié)果數(shù)據(jù)。
1)自定義函數(shù)的命名,輸入變量和輸出變量。
輸入變量有兩個:一個為“原始數(shù)據(jù)”,從excel表格中導(dǎo)入,以列向量的形式存在;另一個為“對時間維度的分割間隔數(shù)”。
輸出變量有一個:為“經(jīng)過異常數(shù)據(jù)平滑算法之后的結(jié)果數(shù)據(jù)”,并填回excel表格。
2)將原數(shù)據(jù)進(jìn)行基于局部加權(quán)回歸的室內(nèi)空氣數(shù)據(jù)異常值平滑的流程(原數(shù)據(jù)中不能有
為0的空缺值),如圖3所示。
這里以被填補(bǔ)之后的實(shí)測甲醛隨時間的變化數(shù)據(jù)曲線為實(shí)例(見圖4):取含有1500個數(shù)據(jù)的原始數(shù)據(jù)向量,“對時間維度的分割間隔數(shù)”取50;圖5給出了對圖4曲線的局部加權(quán)回歸的擬合曲線,由此可見,所有的有用信息都被保留了下來,圖6給出了圖4數(shù)據(jù)曲線減去圖5數(shù)據(jù)曲線得到的殘差曲線,也稱噪聲曲線,由此可見,針狀的數(shù)據(jù)跳變都被從原數(shù)據(jù)中分離了出來,將殘差曲線根據(jù)拉依達(dá)準(zhǔn)則判定,去掉并用插值替代不符合判定的跳變數(shù)據(jù),再將其和圖5的擬合曲線相加,得到經(jīng)過跳變值平滑之后的數(shù)據(jù)曲線(如圖7)。
參考文獻(xiàn):
[1]Salvador García,Julian Luengo,Tutorial on practical tips of the most influential data preprocessing algorithms in data mining.Knowledge-Based Systems,2016;98:1-29..
[2]J.R.Quinlan,C4.5:Programs for Machine Learning,Morgan Kaufmann Pub-lishers Inc.,1993.[3]Hao Zhou;Lifeng Qiao,Ph.D.;Yi Jiang,Ph.D.;Hejiang Sun,Ph.D.;Qingyan Chen,Ph.D.Recognition of air-conditioner operation from indoor air temperature and relative humidity by a data mining approach.Energy and Buildings,2016;111:233-241.
[4]C.E.Brodley,M.A.Friedl,Identifying mislabeled training data,J.Artif.Intell.Res.1999;11:131–167.
[5]T.M.Khoshgoftaar,P.Rebours,Improving software quality prediction by noise filtering techniques,J.Comput.Sci.Technol.2007;22:387–396。