本發(fā)明屬于計算機技術(shù)領(lǐng)域,更進一步涉及數(shù)據(jù)處理技術(shù)領(lǐng)域中的一種基于奇異值分解svd(Singular Value Decomposition)算法的臺站氣象數(shù)據(jù)缺值填充方法。本發(fā)明可以應(yīng)用于天氣氣象臺站由于機械原因和人為原因形成的數(shù)據(jù)缺失場景,考慮到氣象臺站數(shù)據(jù)中屬性特征間的潛在關(guān)系,利用奇異值分解svd算法進行訓(xùn)練得到最優(yōu)計算模型,從而更精確地填充缺值。
背景技術(shù):
數(shù)據(jù)缺失是指現(xiàn)有數(shù)據(jù)集中某個或某些屬性的值是不完全的,是由于機械故障或人的主觀失誤等原因造成的。每種缺失都會給統(tǒng)計分析帶來不同的影響,如何有效處理這些缺失數(shù)據(jù)成為了近年來大家關(guān)注的焦點之一。所以在科學(xué)研究中,為了提高數(shù)據(jù)的可信度、科學(xué)度,保證調(diào)查研究的順利進行,需要一些填充空缺值的方法來填充缺失數(shù)據(jù)。目前填充空缺值的方法主要包括人工填寫法、熱卡填充法、多重填補法和平均值填充法。其中人工填寫法費時費力,當(dāng)缺失的數(shù)值很多時,使用這種方法是不可能的。熱卡填充法主觀因素較多,準(zhǔn)確性低。多重填補法的計算復(fù)雜、不靈活,在現(xiàn)實中很難實現(xiàn)。平均值填充法在實際中應(yīng)用較廣泛,僅對缺失的數(shù)據(jù)用該屬性在其他所有對象中取值的平均值來填充,模型單一。
國網(wǎng)山東省電力公司應(yīng)急管理中心在其申請的專利文獻“基于電網(wǎng)GIS的氣象數(shù)據(jù)調(diào)用與預(yù)處理方法及系統(tǒng)”(專利申請?zhí)枺?01410709084.6,申請公布號:CN 104951857 A)中提出了一種基于電網(wǎng)GIS的氣象數(shù)據(jù)處理方法。該方法首先建立電網(wǎng)氣象數(shù)據(jù)庫,然后分別對電網(wǎng)GIS平臺采集的不同格式的氣象數(shù)據(jù)進行處理并存儲,再對存儲至電網(wǎng)氣象數(shù)據(jù)庫的數(shù)據(jù)進行分類預(yù)處理,之后進行數(shù)據(jù)緩存與調(diào)用。該專利技術(shù)優(yōu)化了氣象數(shù)據(jù)在電網(wǎng)中的應(yīng)用方法,為電力行業(yè)與氣象部門間的快速數(shù)據(jù)交互提供了基礎(chǔ)。但是,該方法仍然存在的不足之處是,未對不同屬性的數(shù)據(jù)進行差異性訓(xùn)練填充,當(dāng)出現(xiàn)數(shù)據(jù)缺失、錯誤等異常情況時,只是簡單地調(diào)用當(dāng)前無效時間點的上一時刻數(shù)據(jù),若上時刻數(shù)據(jù)也缺失或錯誤,則采用向上追溯的方式進行填充處理,這種方式過于簡單,上一時刻和該時刻的數(shù)據(jù)之間并無明顯的關(guān)聯(lián)性,導(dǎo)致填補的數(shù)據(jù)準(zhǔn)確性低,為之后的研究帶來誤差。
寧波綺耘軟件有限公司在其申請的專利文獻“一種異常數(shù)據(jù)判定與處理方法及裝置”(專利申請?zhí)枺?01410504085.7,申請公布號:CN 104281779 A)中公開了一種異常數(shù)據(jù)判定與處理方法及裝置。該方法首先從原始氣象數(shù)據(jù)中提取與觀測點數(shù)據(jù)相關(guān)的數(shù)據(jù)塊,計算二者的數(shù)值變化,若不在預(yù)定范圍內(nèi),則觀測點數(shù)據(jù)為異常值,對異常值進行修正并輸出修正后的氣象數(shù)據(jù)。盡管該方法對連續(xù)觀測的氣象數(shù)據(jù)中存在的不符合氣象數(shù)據(jù)變化規(guī)律的數(shù)據(jù)進行修正,減少突然增高或降低的異常數(shù)據(jù)對氣候特征觀察的影響。但是,該方法仍然存在的不足之處是,判斷是否異常時提取的數(shù)據(jù)塊范圍僅為1~3,選取的數(shù)據(jù)塊太少,缺失數(shù)據(jù)也僅用不包括缺失觀測點的數(shù)據(jù)塊的平均值來替換,其建立在完全隨機缺失的假設(shè)上,數(shù)據(jù)填充的精度不高。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有技術(shù)所用填充方案的缺陷與不足,提出了一種基于svd算法的臺站氣象數(shù)據(jù)缺值填充方法。本發(fā)明利用奇異值分解svd算法對數(shù)據(jù)進行訓(xùn)練,得到最優(yōu)計算模型對缺失值進行填充,并在數(shù)據(jù)預(yù)處理時對臺站氣象數(shù)據(jù)按氣象屬性進行分類,對各種氣象屬性的數(shù)據(jù)分別訓(xùn)練,消除不同氣象屬性間的相互影響,使得魯棒性和精度得到提高。
實現(xiàn)本發(fā)明目的的具體步驟如下:
(1)接收數(shù)據(jù):
(1a)接收多個臺站氣象數(shù)據(jù)文件;
(1b)將接收數(shù)據(jù)中的五種固定屬性數(shù)據(jù)和六種氣象屬性數(shù)據(jù)作為原始數(shù)據(jù);
(2)預(yù)處理原始數(shù)據(jù):
(2a)將原始數(shù)據(jù)中的六種氣象屬性數(shù)據(jù)分別放入相應(yīng)氣象屬性數(shù)據(jù)文件,得到六個單氣象屬性數(shù)據(jù)文件;
(2b)判斷每個單氣象屬性數(shù)據(jù)文件是否滿足時次數(shù)據(jù)缺失條件,若是,則執(zhí)行步驟(2c),否則,執(zhí)行步驟(2d);
(2c)將缺失的時次數(shù)據(jù)中的任一時次的五種固定屬性值設(shè)置為該時次對應(yīng)的五種固定屬性值,將氣象屬性值設(shè)置為空值,存放到單氣象屬性數(shù)據(jù)中,得到完整單氣象屬性數(shù)據(jù);
(2d)按照下式,歸一化完整單氣象屬性數(shù)據(jù)中的氣象屬性值:
其中,R'i表示歸一化后的完整單氣象屬性數(shù)據(jù)中第i條數(shù)據(jù)的氣象屬性值,Ri表示完整單氣象屬性數(shù)據(jù)中第i條數(shù)據(jù)的氣象屬性值,Rmax表示完整單氣象屬性數(shù)據(jù)中最大的氣象屬性值;
(3)選取訓(xùn)練集和測試集:
從歸一化后的完整單氣象屬性數(shù)據(jù)中隨機選取80%的數(shù)據(jù)作為訓(xùn)練集,將剩余的20%的數(shù)據(jù)作為測試集;
(4)訓(xùn)練參數(shù):
(4a)將訓(xùn)練集作為奇異值分解svd算法的輸入;
(4b)將奇異值分解svd算法中的學(xué)習(xí)速率、正則化參數(shù)、訓(xùn)練次數(shù)、特征數(shù)四個參數(shù)的初始值分別設(shè)置為0.001、0.001、10、30;
(4c)判斷奇異值分解svd算法中的四個參數(shù)是否均完成訓(xùn)練,若是,則執(zhí)行步驟(4h);否則,執(zhí)行步驟(4d);
(4d)在未訓(xùn)練的參數(shù)中任選一個作為變量參數(shù);
(4e)采用參數(shù)修正規(guī)則,對變量參數(shù)的值進行修正,得到修正后的變量參數(shù);
(4f)采用奇異值分解svd算法,對訓(xùn)練集的數(shù)據(jù)進行訓(xùn)練,得到結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值;
(4g)判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001,若是,則執(zhí)行步驟(4c),否則,執(zhí)行步驟(4e);
(4h)輸出學(xué)習(xí)速率、正則化參數(shù)、訓(xùn)練次數(shù)、特征數(shù)的值;
(5)缺值填充:
(5a)將歸一化后的完整單氣象屬性數(shù)據(jù)作為奇異值分解svd算法的訓(xùn)練集;
(5b)利用奇異值分解svd算法,對訓(xùn)練集進行訓(xùn)練,得到結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值;
(5c)按照下式,更新結(jié)果訓(xùn)練集中的氣象屬性值,得到更新后的結(jié)果訓(xùn)練集中的氣象屬性值:
S'i=Si×Rmax
其中,S'i表示更新后的結(jié)果訓(xùn)練集中第i條數(shù)據(jù)的氣象屬性值,Si表示結(jié)果訓(xùn)練集中第i條數(shù)據(jù)的氣象屬性值,Rmax表示完整單氣象屬性數(shù)據(jù)中最大的氣象屬性值;
(5d)用更新后的結(jié)果訓(xùn)練集中的氣象屬性值替換結(jié)果訓(xùn)練集中的氣象屬性值,得到填充后的氣象臺站數(shù)據(jù);
(6)輸出填充后的氣象臺站數(shù)據(jù)。
本發(fā)明與現(xiàn)有技術(shù)相比有以下優(yōu)點:
第1,由于本發(fā)明將原始數(shù)據(jù)中的六種氣象屬性數(shù)據(jù)分別放入相應(yīng)氣象屬性數(shù)據(jù)文件,分別進行svd訓(xùn)練,克服了現(xiàn)有技術(shù)中未對不同屬性的數(shù)據(jù)進行差異性訓(xùn)練填充的不足,使得本發(fā)明針對不同氣象屬性進行數(shù)據(jù)分類,使得本發(fā)明的缺值填充更靈活、準(zhǔn)確度更高。
第2,由于本發(fā)明采用對臺站氣象數(shù)據(jù)進行奇異值分解svd算法訓(xùn)練填充缺值的方法,有效克服了現(xiàn)有技術(shù)對缺失的數(shù)據(jù)用該屬性在其他所有對象中取值的平均值的缺點,使得本發(fā)明先對臺站氣象數(shù)據(jù)進行訓(xùn)練,得到較優(yōu)的模型并計算,從而具有高魯棒性、高缺值填充準(zhǔn)確度的優(yōu)點。
附圖說明
圖1是本發(fā)明的流程圖;
圖2是本發(fā)明步驟中所采用的奇異值分解svd算法的流程圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的具體實施措施進行詳細描述。
參照圖1,本發(fā)明的實現(xiàn)步驟如下:
步驟1,接收數(shù)據(jù)。
接收多個臺站氣象數(shù)據(jù)文件;
將接收數(shù)據(jù)中的五種固定屬性數(shù)據(jù)和六種氣象屬性數(shù)據(jù)作為原始數(shù)據(jù)。
五種固定屬性數(shù)據(jù)是指臺站名、年、月、日、時次。
六種氣象屬性數(shù)據(jù)是指氣壓、位于2米處的干球溫度、位于2米處的露點溫度、位于10米處的風(fēng)速、位于10米處的風(fēng)向、總云量。
步驟2,預(yù)處理原始數(shù)據(jù)。
(2a)將原始數(shù)據(jù)中的六種氣象屬性數(shù)據(jù)分別放入相應(yīng)氣象屬性數(shù)據(jù)文件,得到六個單氣象屬性數(shù)據(jù)文件。
單氣象屬性數(shù)據(jù)文件是指數(shù)據(jù)格式為五種固定屬性、當(dāng)前氣象屬性的數(shù)據(jù)文件。
(2b)判斷每個單氣象屬性數(shù)據(jù)文件是否滿足時次數(shù)據(jù)缺失條件,若是,則執(zhí)行步驟(2c),否則,執(zhí)行步驟(2d)。
時次數(shù)據(jù)缺失條件是指,從1980年1月1日0時至2014年3月28日18時止,每日中選取0、6、12、18四個時次,將所選取的四個時次的任意一個時次中不存在五種固定屬性值作為時次數(shù)據(jù)缺失。
(2c)將缺失的時次數(shù)據(jù)中的任一時次的五種固定屬性值設(shè)置為該時次對應(yīng)的五種固定屬性值,將氣象屬性值設(shè)置為空值,存放到單氣象屬性數(shù)據(jù)中,得到完整單氣象屬性數(shù)據(jù)。
(2d)按照下式,歸一化完整單氣象屬性數(shù)據(jù)中的氣象屬性值:
其中,R'i表示歸一化后的完整單氣象屬性數(shù)據(jù)中第i條數(shù)據(jù)的氣象屬性值,Ri表示完整單氣象屬性數(shù)據(jù)中第i條數(shù)據(jù)的氣象屬性值,Rmax表示完整單氣象屬性數(shù)據(jù)中最大的氣象屬性值。
步驟3,選取訓(xùn)練集和測試集。
從歸一化后的完整單氣象屬性數(shù)據(jù)中隨機選取80%的數(shù)據(jù)作為訓(xùn)練集,將剩余的20%的數(shù)據(jù)作為測試集。
步驟4,訓(xùn)練參數(shù)。
(4a)將訓(xùn)練集作為奇異值分解svd算法的輸入。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(4b)將奇異值分解svd算法中的學(xué)習(xí)速率、正則化參數(shù)、訓(xùn)練次數(shù)、特征數(shù)四個參數(shù)的初始值分別設(shè)置為0.001、0.001、10、30。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(4c)判斷奇異值分解svd算法中的四個參數(shù)是否均完成訓(xùn)練,若是,則執(zhí)行步驟(4h);否則,執(zhí)行步驟(4d)。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(4d)在未訓(xùn)練的參數(shù)中任選一個作為變量參數(shù)。
(4e)采用參數(shù)修正規(guī)則,對變量參數(shù)的值進行修正,得到修正后的變量參數(shù)。
參數(shù)修正規(guī)則是指,對變量參數(shù)中的學(xué)習(xí)速率或正則化參數(shù)修正100次,每次將學(xué)習(xí)速率或正則化參數(shù)在上一次修正的基礎(chǔ)上增加0.002;對變量參數(shù)中的訓(xùn)練次數(shù)修正30次,每次將訓(xùn)練次數(shù)在上一次修正的基礎(chǔ)上增加10;對變量參數(shù)中的特征數(shù)修正30次,每次將特征數(shù)在上一次修正的基礎(chǔ)上增加5。
(4f)采用奇異值分解svd算法,對訓(xùn)練集的數(shù)據(jù)進行訓(xùn)練,得到結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(4g)判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001,若是,則執(zhí)行步驟(4c),否則,執(zhí)行步驟(4e)。
(4h)輸出學(xué)習(xí)速率、正則化參數(shù)、訓(xùn)練次數(shù)、特征數(shù)的值。
步驟5,缺值填充。
(5a)將歸一化后的完整單氣象屬性數(shù)據(jù)作為奇異值分解svd算法的訓(xùn)練集。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(5b)利用奇異值分解svd算法,對訓(xùn)練集進行訓(xùn)練,得到結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
參照圖2,奇異值分解svd算法的實現(xiàn)步驟如下:
第1步,對訓(xùn)練集進行奇異值分解,得到兩個矩陣P和QT。
第2步,將變量迭代次數(shù)設(shè)置為1。
第3步,按照下式,計算結(jié)果訓(xùn)練集:
其中,表示結(jié)果訓(xùn)練集,P和QT分別表示奇異值分解訓(xùn)練集的兩個矩陣,T表示轉(zhuǎn)置操作,OverallMean表示訓(xùn)練集中除了取值為空值以外的其它氣象屬性值的平均值,biasU表示訓(xùn)練集中臺站屬性值偏離OverallMean的程度矩陣,biasI表示訓(xùn)練集中時次屬性值偏離OverallMean的程度矩陣。
第4步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失:
其中,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,表示開根號操作,rij表示訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,表示結(jié)果訓(xùn)練集中第i個臺站第j個時次的氣象屬性值,λ表示正則化參數(shù),bi表示第i個臺站值偏離OverallMean的程度,bj表示第j個時次偏離OverallMean的程度,||·||表示1-范數(shù)操作,pi表示矩陣P中的第i行向量,qj表示矩陣QT中的第j列向量。
第5步,按照下式,計算結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值:
其中,RMSE表示結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值,表示開根號操作,∑表示求和操作,eij表示結(jié)果訓(xùn)練集與訓(xùn)練集中第i個臺站第j個時次的氣象屬性值間的平方項損失,∈表示屬于符號,φ表示結(jié)果訓(xùn)練集與訓(xùn)練集的平方項損失集,count表示訓(xùn)練集中氣象屬性值的個數(shù)。
第6步,按照下式,對矩陣進行更新,得到更新后的矩陣:
p′ik=pik+α(2eijqkj-λpik)
其中,p′ik表示更新后的矩陣P1中第i行第k列的元素,pik表示矩陣P中第i行第k列的元素,α表示學(xué)習(xí)速率,qkj表示矩陣QT中第k行第j列的元素,λ表示正則化參數(shù)。
第7步,按照下式,對矩陣進行更新,得到更新后的矩陣:
q′kj=qkj+α(2eijpik-λqkj)
其中,q′kj表示更新后的矩陣Q1T中第k行第j列的元素,qkj表示矩陣QT中第k行第j列的元素,α表示學(xué)習(xí)速率,pik表示矩陣P中第i行第k列的元素,λ表示正則化參數(shù);
第8步,用更新后的矩陣P1、Q1T中的元素分別替換原始矩陣P、QT中的元素。
第9步,判斷結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值是否小于0.0001或者迭代次數(shù)大于訓(xùn)練次數(shù),若是,則執(zhí)行第10步,否則,將迭代次數(shù)加1,執(zhí)行第3步。
第10步,輸出結(jié)果訓(xùn)練集、結(jié)果訓(xùn)練集與訓(xùn)練集的平均偏差值。
(5c)按照下式,更新結(jié)果訓(xùn)練集中的氣象屬性值:
S'i=Si×Rmax
其中,S'i表示更新后的結(jié)果訓(xùn)練集中第i條數(shù)據(jù)的氣象屬性值,Si表示結(jié)果訓(xùn)練集中第i條數(shù)據(jù)的氣象屬性值,Rmax表示完整單氣象屬性數(shù)據(jù)中最大的氣象屬性值。
(5d)用更新后的結(jié)果訓(xùn)練集中的氣象屬性值替換結(jié)果訓(xùn)練集中的氣象屬性值,得到填充后的氣象臺站數(shù)據(jù)。
步驟6,輸出填充后的氣象臺站數(shù)據(jù)。