楊榮新,孫朝云,徐 磊
(長(zhǎng)安大學(xué) 信息工程學(xué)院,西安 710064)
近年來(lái),光伏發(fā)電產(chǎn)業(yè)憑借著自身清潔、環(huán)保和無(wú)污染的諸多優(yōu)勢(shì),以及在國(guó)家相關(guān)政策的大力支持下,實(shí)現(xiàn)了跨越式發(fā)展[1].但太陽(yáng)光的光照強(qiáng)度、環(huán)境溫度等多種因素都會(huì)對(duì)太陽(yáng)能發(fā)電的輸出功率產(chǎn)生影響,這使得光伏發(fā)電出力表現(xiàn)出強(qiáng)烈的間接性和時(shí)間波動(dòng)性.所以,研究如何有效提高光伏發(fā)電輸出功率的預(yù)測(cè)精度對(duì)光伏發(fā)電力網(wǎng)系統(tǒng)的組件調(diào)度和電力管理有著非常重要的意義[2].
國(guó)內(nèi)外針對(duì)光伏發(fā)電功率預(yù)測(cè)的方法主要分為物理預(yù)測(cè)法和統(tǒng)計(jì)預(yù)測(cè)法.基于物理的預(yù)測(cè)法把光伏電站的地理位置、氣象條件等結(jié)合太陽(yáng)能輻射傳遞方程和光伏組件方程來(lái)加以實(shí)現(xiàn)[3].統(tǒng)計(jì)預(yù)測(cè)方法將太陽(yáng)輻射強(qiáng)度、風(fēng)速、溫濕度、氣壓等因素作為輸入變量,通過(guò)線性回歸、BP 神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)、支持向量機(jī)(Support Vector Machines,SVM)等技術(shù)挖掘輸入變量與光伏發(fā)電功率間的隱含關(guān)系,并結(jié)合天氣預(yù)報(bào)數(shù)據(jù)進(jìn)行預(yù)測(cè)[4–6].針對(duì)神經(jīng)網(wǎng)絡(luò)初始參數(shù)的隨機(jī)性缺點(diǎn),文獻(xiàn)[7]提出了一種結(jié)合啟發(fā)式算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)權(quán)重和閾值的光伏發(fā)電功率預(yù)測(cè)方案;文獻(xiàn)[8]在對(duì)數(shù)據(jù)集的預(yù)處理上采用了聚類(lèi)算法,將聚類(lèi)后不同類(lèi)別的光伏電場(chǎng)數(shù)據(jù)分別建立SVM 預(yù)測(cè)模型;文獻(xiàn)[9]則提出了一種選擇相似日的方法,把輸出功率相似的時(shí)間段進(jìn)行捆綁,建立了最小二乘向量機(jī)的光伏陣列輸出功率預(yù)測(cè)模型.
上述研究方案都是利用單一的算法模型對(duì)光伏發(fā)電的輸出功率進(jìn)行預(yù)測(cè),其預(yù)測(cè)精度不會(huì)很高,表現(xiàn)出較大的局限性,為此很多研究學(xué)者提出了組合預(yù)測(cè)的方法[10].組合預(yù)測(cè)方法因其可以結(jié)合各單一模型的優(yōu)點(diǎn)于一身,因此在很多領(lǐng)域也得到了廣泛應(yīng)用.文獻(xiàn)[11]提出了將相似日的光伏發(fā)電時(shí)間序列數(shù)據(jù)進(jìn)行模態(tài)分解后,對(duì)固有模態(tài)和趨勢(shì)分量分別建立基于人工蜂群算法優(yōu)化的支持向量機(jī)預(yù)測(cè)模型;文獻(xiàn)[12]為了減輕不確定性對(duì)電網(wǎng)的負(fù)面影響,提出了一種灰色神經(jīng)網(wǎng)絡(luò)(灰色?神經(jīng)網(wǎng)絡(luò))混合模型來(lái)預(yù)測(cè)光伏發(fā)電的短期輸出功率;文獻(xiàn)[13,14]充分發(fā)揮各單一預(yù)測(cè)模型的優(yōu)勢(shì),并按權(quán)重將其進(jìn)行優(yōu)化整合以提高預(yù)測(cè)精度;文獻(xiàn)[15–17]將原始光伏發(fā)電數(shù)據(jù)按照信號(hào)分解的方式進(jìn)行解耦,使得特征分解為互異的模態(tài)向量,并對(duì)這些分量構(gòu)建預(yù)測(cè)模型.采用這些組合預(yù)測(cè)模型雖然可在一定程度上提高光伏功率的輸出功率預(yù)測(cè)精度,但模型融合大多采用簡(jiǎn)單的線性加權(quán)整合,魯棒性無(wú)法得到保證.
基于以上研究,本文在分析了光伏發(fā)電功率預(yù)測(cè)與人工智能技術(shù)發(fā)展背景的基礎(chǔ)上,利用Stacking 集成學(xué)習(xí)框架對(duì)XGBoost、LightGBM、Random Forest、型的優(yōu)勢(shì),進(jìn)一步提高了光伏發(fā)電輸出功率的預(yù)測(cè)精度.
XGBoost 是經(jīng)過(guò)優(yōu)化的集成樹(shù)模型,從梯度提升樹(shù)模型改進(jìn)和擴(kuò)展而來(lái).樹(shù)的集成模型由式(1)表示:
其損失函數(shù)為:
那么損失函數(shù)可以表示為:
對(duì)損失函數(shù)進(jìn)行泰勒展開(kāi)有:
其中,
移除常數(shù)項(xiàng)有:
將第j個(gè)葉子節(jié)點(diǎn)定義為Ij={i|q(xi)=j},即有:
然后將上式求導(dǎo)并令求導(dǎo)結(jié)果等于0,可得:
把wj的最優(yōu)解wj*帶入目標(biāo)函數(shù),得到:
XGBoost 在進(jìn)行節(jié)點(diǎn)分裂時(shí),采用一種貪心算法,每次在已有的葉子節(jié)點(diǎn)中加入分裂.假設(shè)IL和IR分別是分裂后的左和右葉子節(jié)點(diǎn)的集合.信息增益如下:
從式(11)中可知,這個(gè)信息增益與ID3、C4.5和分類(lèi)與回歸樹(shù)是類(lèi)似的,都是利用分裂后的某種熵值減去分裂前的固有熵值.同時(shí),為了限制樹(shù)的深度,加入了閾值γ,這種策略以正則化的方式有效地避免了過(guò)擬合.
根據(jù)梯度單邊采樣丟棄掉某些小梯度樣本數(shù)據(jù)的主要思想原則為出發(fā)點(diǎn),LightGBM 在對(duì)數(shù)據(jù)集進(jìn)行采樣時(shí)保留梯度大的樣本,對(duì)梯度較小的樣本則按照一定比例進(jìn)行下采樣.為了抵消對(duì)數(shù)據(jù)分布的影響,梯度單邊采樣小梯度的樣本數(shù)據(jù)在計(jì)算信息增益時(shí)引入系數(shù)(1–a)/b,a表示大梯度數(shù)據(jù)的采樣率,b表示小梯度數(shù)據(jù)的采樣率,梯度單邊采樣的具體步驟如下:
(1)按照數(shù)據(jù)集的梯度絕對(duì)值進(jìn)行排序,并選取最大的a×100%數(shù)據(jù)集保留,作為大梯度樣本點(diǎn)子集.
(2)從剩余數(shù)據(jù)集中隨機(jī)選取b×100%數(shù)據(jù)生成小梯度樣本點(diǎn)集合.
(3)將小梯度樣本點(diǎn)集合乘以常數(shù)(1–a)/b放大樣本數(shù)據(jù).
(4)合并樣本集,得到一個(gè)采樣集,通過(guò)該采樣集的訓(xùn)練,產(chǎn)生一個(gè)弱學(xué)習(xí)器.
(5)不斷重復(fù)上述4 個(gè)過(guò)程,直至訓(xùn)練的模型達(dá)到提前設(shè)置的迭代次數(shù)或者出現(xiàn)收斂的狀態(tài).
為了提高模型訓(xùn)練的并行能力,LightGBM 不僅對(duì)訓(xùn)練樣本的數(shù)據(jù)進(jìn)行了按梯度采樣的策略,同時(shí)也對(duì)高維稀疏性的互斥特征進(jìn)行了融合綁定,例如,進(jìn)行獨(dú)熱編碼后的數(shù)據(jù),這些數(shù)據(jù)在進(jìn)行獨(dú)熱編碼后不僅維度升高,而且呈現(xiàn)出稀疏的特性.為了減少數(shù)據(jù)的特征維度,LightGBM 采用基于直方圖(histogram)的方式將這些高維稀疏且互斥的特征捆綁在一起,以提高節(jié)點(diǎn)的分裂效率.如圖1所示,這種算法首先將輸入連續(xù)特征的數(shù)據(jù)離散化為k個(gè)整數(shù)值,形成k個(gè)捆綁的結(jié)果,每個(gè)結(jié)果內(nèi)各個(gè)特征都是互斥的,然后構(gòu)建寬度為k的直方圖,在對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行遍歷時(shí),只需要統(tǒng)計(jì)每個(gè)離散值在直方圖上的累積量即可.由于在計(jì)算分裂增益時(shí),是通過(guò)遍歷排序直方圖的離散值而得,因此只需要計(jì)算k次,且在特征分裂時(shí),只需要保存特征離散化后的值,相較于XGBoost 而言,減小了計(jì)算和存儲(chǔ)的成本,提高了分裂點(diǎn)尋找的效率,降低了模型的計(jì)算復(fù)雜度.
因此,構(gòu)建醫(yī)學(xué)院校思想政治教育工作網(wǎng)絡(luò)陣地,通過(guò)網(wǎng)絡(luò)對(duì)學(xué)生進(jìn)行思想政治教育,使之與網(wǎng)絡(luò)外的思想政治教育相聯(lián)系,以拓展醫(yī)學(xué)生思想政治教育工作空間,這是非常重要且必要的。
圖1 Histogram 算法基本過(guò)程示意圖
如圖2所示,在基于Stacking 的集成學(xué)習(xí)方式下,整個(gè)模型的構(gòu)建分為兩個(gè)階段,通過(guò)以學(xué)習(xí)器級(jí)聯(lián)的方式進(jìn)行預(yù)測(cè)結(jié)果的傳遞,提高預(yù)測(cè)精度[19].在第一階段,首先將原始數(shù)據(jù)集進(jìn)行切分,按照一定比例劃分為訓(xùn)練集和測(cè)試集,然后選取合適的基學(xué)習(xí)器以交叉驗(yàn)證的方式對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,將訓(xùn)練完成后的各個(gè)基學(xué)習(xí)器對(duì)驗(yàn)證集和測(cè)試集進(jìn)行預(yù)測(cè),第一階段應(yīng)該選取預(yù)測(cè)性能優(yōu)秀的機(jī)器學(xué)習(xí)模型,同時(shí)保證模型間的多元化;在第二階段,將基學(xué)習(xí)器的預(yù)測(cè)結(jié)果分別作為元學(xué)習(xí)器訓(xùn)練和預(yù)測(cè)的特征數(shù)據(jù),元學(xué)習(xí)器結(jié)合上個(gè)階段得到的特征和原始訓(xùn)練集的標(biāo)簽為樣本數(shù)據(jù)進(jìn)行模型構(gòu)建,并輸出最終的Stacking 模型預(yù)測(cè)結(jié)果,該階段的元學(xué)習(xí)器一般選取穩(wěn)定性較好的簡(jiǎn)單模型,起到整體提升模型性能的作用.
圖2 基于Stacking 的集成學(xué)習(xí)方式
可以從兩方面來(lái)看待Stacking 方法,第一,它是許多集成方法的推廣,第二,它是通過(guò)學(xué)習(xí)得到的集成方法.在Stacking 的訓(xùn)練階段,從第一層學(xué)習(xí)器中得到新的數(shù)據(jù)集,如果用同一份完全相同的數(shù)據(jù)訓(xùn)練第一層學(xué)習(xí)器,并用該份數(shù)據(jù)在第一層學(xué)習(xí)器上的輸出作為第二層學(xué)習(xí)器的訓(xùn)練數(shù)據(jù),這會(huì)有過(guò)擬合風(fēng)險(xiǎn).因此,訓(xùn)練第一層學(xué)習(xí)器的數(shù)據(jù),不能作為構(gòu)造第二層學(xué)習(xí)器的數(shù)據(jù),所以在構(gòu)造第二層學(xué)習(xí)器的訓(xùn)練數(shù)據(jù)時(shí)本文采用了交叉驗(yàn)證的方法來(lái)選取第二層學(xué)習(xí)器的訓(xùn)練數(shù)據(jù).
本文選取基于五折模型的Stacking 算法建立光伏發(fā)電功率預(yù)測(cè)模型,其流程框圖如圖3和圖4所示.具體步驟如下:
(1)將原始數(shù)據(jù)集按照一定比例切分為訓(xùn)練集和測(cè)試集.
圖3 第一層單個(gè)基學(xué)習(xí)器5 折交叉驗(yàn)證示意圖
圖4 第二層元學(xué)習(xí)器模型構(gòu)建示意圖
(2)將訓(xùn)練集平均分為5 份,即對(duì)于每一個(gè)基學(xué)習(xí)器進(jìn)行5 折交叉驗(yàn)證,在每次交叉驗(yàn)證時(shí)以4 份作為模型的訓(xùn)練集,剩余的一份作為驗(yàn)證集,并且在每次交叉驗(yàn)證完成時(shí),用訓(xùn)練的基學(xué)習(xí)器模型對(duì)驗(yàn)證集和測(cè)試集進(jìn)行預(yù)測(cè).
(3)單個(gè)基學(xué)習(xí)器在完成5 折交叉驗(yàn)證后,會(huì)得到各個(gè)驗(yàn)證集的預(yù)測(cè)集,也即訓(xùn)練集每條樣本的預(yù)測(cè)值,同時(shí)得到測(cè)試集的5 列預(yù)測(cè)值,然后將各個(gè)驗(yàn)證集的預(yù)測(cè)集整合為1 列,記為A1,將測(cè)試集的5 列預(yù)測(cè)值按行取平均,得到B1.
(4)當(dāng)?shù)谝粚拥膍個(gè)基學(xué)習(xí)器完成訓(xùn)練后,會(huì)得到第二層元學(xué)習(xí)器模型的輸入特征矩陣(A1,A2,···,Am),將原始訓(xùn)練集的標(biāo)簽值作為模型的輸出矩陣,進(jìn)行模型的訓(xùn)練.同時(shí)會(huì)得到最終的測(cè)試集輸入特征矩陣(B1,B2,···,Bm).
(5)當(dāng)元學(xué)習(xí)器訓(xùn)練完成后,將(B1,B2,···,Bm)作為特征矩陣,利用模型輸出模型融合后的最終預(yù)測(cè)結(jié)果.
Stacking 集成學(xué)習(xí)是一種建立在統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)之上的多算法融合的機(jī)器學(xué)習(xí)方法,一般情況下,對(duì)于單一的預(yù)測(cè)模型而言,其預(yù)測(cè)準(zhǔn)確率是呈現(xiàn)邊際效用遞減的趨勢(shì),Stacking 集成學(xué)習(xí)方式是組合來(lái)自多個(gè)預(yù)測(cè)模型的信息以生成新模型的模型集成技術(shù).將不同的機(jī)器學(xué)習(xí)算法通過(guò)不同的方式結(jié)合在一起,以此獲得比單一算法更優(yōu)越的性能.在Stacking 集成學(xué)習(xí)模型中,要充分分析每個(gè)基學(xué)習(xí)器的單獨(dú)預(yù)測(cè)能力,使得Stacking 集成學(xué)習(xí)模型獲得最佳的預(yù)測(cè)效果.
基于Stacking 的集成模型算法能夠提高建模的精度,但是,由于集成模型具有融合多個(gè)模型進(jìn)行建模的特性,勢(shì)必在整體建模上會(huì)犧牲一定的建模速度.因此,為了兼顧Stacking 算法的預(yù)測(cè)性能和整體建模速度,本文選取了預(yù)測(cè)精度較高的隨機(jī)森林、XGBoost以及預(yù)測(cè)性能優(yōu)異且算法時(shí)間復(fù)雜度較低的LightGBM作為Stacking 模型融合的第一層,其中,隨機(jī)森林和XGBoost、LightGBM 分別采用Bagging 和Boosting的集成學(xué)習(xí)方式,有著出色的學(xué)習(xí)能力和嚴(yán)謹(jǐn)數(shù)學(xué)理論支撐,在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用.第二層模型采用了穩(wěn)健性和泛化能力較強(qiáng)的LinearRegression,模型架構(gòu)如圖5所示.
圖5 Stacking 模型融合架構(gòu)圖
Stacking 框架下基于多模型融合的光伏發(fā)電功率預(yù)測(cè)方法訓(xùn)練流程大致如下:
(1)在數(shù)據(jù)預(yù)處理的基礎(chǔ)上使用隨機(jī)森林、XGBoost以及LightGBM 算法結(jié)合遞歸特征消除法對(duì)輸入特征進(jìn)行特征選擇,刪除冗余特征.
(2)劃分原始數(shù)據(jù)集,使用交叉驗(yàn)證方式,優(yōu)選各個(gè)模型的最優(yōu)超參數(shù).
(3)使用劃分后的數(shù)據(jù)集對(duì)Stacking 中的第一層預(yù)測(cè)算法分別訓(xùn)練,并輸出預(yù)測(cè)結(jié)果,生成新的數(shù)據(jù)集.
(4)使用新生成的數(shù)據(jù)集,對(duì)Stacking 中第二層算法進(jìn)行訓(xùn)練,基于多模型融合的Stacking 集成學(xué)習(xí)算法訓(xùn)練完畢.
本文采用的數(shù)據(jù)集為國(guó)能日新企業(yè)下某光伏電站提供的2016年4月1日至2018年4月30日之間的連續(xù)氣象歷史數(shù)據(jù)和光伏電站的輸出功率數(shù)據(jù).監(jiān)測(cè)的數(shù)據(jù)每天從0:00–23:45,每15 分鐘進(jìn)行一次數(shù)據(jù)采集,將其中一些奇異數(shù)據(jù)剔除,減少奇異數(shù)據(jù)在訓(xùn)練模型時(shí)對(duì)訓(xùn)練結(jié)果的影響,共得到66 860 條樣本數(shù)據(jù).數(shù)據(jù)前5 行信息如圖6所示,初始數(shù)據(jù)特征主要包含時(shí)間、輻照度、風(fēng)速、風(fēng)向、溫度、濕度、壓強(qiáng)、實(shí)際輻照度信息,實(shí)際功率為標(biāo)簽值.在模型建立過(guò)程中,將66 860 條樣本數(shù)據(jù)隨機(jī)切分出70%,即46 802 條數(shù)據(jù)作為訓(xùn)練集,進(jìn)行模型構(gòu)建,其余30%的20 058 條數(shù)據(jù)作為測(cè)試集,用于對(duì)模型的檢驗(yàn).
光伏發(fā)電主要是依靠太陽(yáng)能,因此時(shí)間特征應(yīng)該作為一個(gè)重要的特征進(jìn)行挖掘.由于初始數(shù)據(jù)的時(shí)間格式無(wú)法直接作為模型的輸入,因此將時(shí)間屬性進(jìn)行特征提取,切分出月份、天、小時(shí)、分鐘這些有用的特征屬性.數(shù)據(jù)采集是以15 分鐘為單位進(jìn)行的,提取出的minute 屬性是4 個(gè)離散值,對(duì)其進(jìn)行獨(dú)熱編碼,并剔除原來(lái)的時(shí)間以及minute 特征,得到的初步預(yù)處理數(shù)據(jù)集及統(tǒng)計(jì)信息如表1所示.
圖6 光伏電場(chǎng)初始數(shù)據(jù)部分圖示
表1 初步預(yù)處理后數(shù)據(jù)集的描述性統(tǒng)計(jì)
為了充分挖掘氣象數(shù)據(jù)對(duì)實(shí)際功率的影響,本文采用了特征交叉的方式來(lái)擴(kuò)充特征,特征交叉是指通過(guò)將輸入數(shù)據(jù)集的兩個(gè)或多個(gè)特征進(jìn)行相乘從而構(gòu)造非線性特征的一種方式,非線性特征針對(duì)于非線性預(yù)測(cè)模型,其會(huì)有更好的增益貢獻(xiàn).通過(guò)特征組合的方式增加特征的維度,以求得更好的訓(xùn)練效果.因此本文對(duì)風(fēng)速、風(fēng)向、溫度、壓強(qiáng)、濕度這幾個(gè)特征進(jìn)行了特征交叉,構(gòu)建了溫度*溫度、濕度*濕度、壓強(qiáng)*壓強(qiáng)、溫度*濕度、濕度*壓強(qiáng)、溫度*壓強(qiáng)、溫度*濕度*壓強(qiáng)、風(fēng)向*風(fēng)速這些新的特征,同時(shí)對(duì)所有的特征進(jìn)行了相關(guān)性分析,繪制了如圖7所示的特征相關(guān)性熱度圖,該圖以顏色的深淺表征特征與特征以及特征與標(biāo)簽之間的相關(guān)性.可以看出,實(shí)際功率與輻照度、實(shí)際功率與實(shí)際輻照度之間存在較高的相關(guān)性,分別為0.83 和0.84.同時(shí)輻照度和實(shí)際輻照度之間也有0.89的相關(guān)性,由于實(shí)際輻照度對(duì)實(shí)際功率影響更大一些,故刪除輻照度特征,選用實(shí)際輻照度作為特征輸入.對(duì)于特征交叉構(gòu)造的新特征,該圖也表明其對(duì)實(shí)際功率預(yù)測(cè)也有很重要的作用.
通過(guò)數(shù)據(jù)預(yù)處理以及特征分析后,利用基于模型的遞歸特征消除法進(jìn)行特征選擇,本文分別利用隨機(jī)森林、XGBoost 以及LightGBM 3 種實(shí)現(xiàn)模型融合的基學(xué)習(xí)器通過(guò)交叉驗(yàn)證結(jié)合枚舉的方式執(zhí)行遞歸特征消除,以此來(lái)選擇最佳數(shù)量的特征,并且在Stacking 模型融合的過(guò)程中各自以最優(yōu)特征數(shù)進(jìn)行第一層預(yù)測(cè)模型訓(xùn)練.該方式具體思想為:對(duì)于一個(gè)數(shù)量為d的特征屬性集合,其所有的子集的個(gè)數(shù)是2d–1.指定一個(gè)學(xué)習(xí)算法,首先通過(guò)該算法計(jì)算所有特征的重要性排名,然后依據(jù)特征重要性得分依次構(gòu)造出特征數(shù)目為1 至d的所有特征子集,并計(jì)算數(shù)據(jù)在所有特征子集上的交叉驗(yàn)證誤差,最后選擇平均誤差最小的那個(gè)子集作為所挑選的特征數(shù)量.圖8中(a)、(b)、(c)分別為基于隨機(jī)森林、XGBoost 以及LightGBM 在特征選擇過(guò)程中各個(gè)特征子集的交叉驗(yàn)證均方誤差的曲線變化圖.
圖7 特征相關(guān)性熱度圖
通過(guò)圖8可以看出,不同的機(jī)器學(xué)習(xí)模型在建模過(guò)程中對(duì)最優(yōu)特征的選擇是不同的.基于Bagging 集成思想的隨機(jī)森林選出的最佳特征個(gè)數(shù)是10 個(gè),5 折交叉驗(yàn)證的均方誤差MSE 的平均值為0.2785,而基于Boosting 集成思想的XGBoost 和LightGBM 選擇的最佳特征個(gè)數(shù)分別為19 和15 個(gè),5 折交叉驗(yàn)證的MSE均值分別為0.2071 和0.1783.對(duì)于本文的光伏電場(chǎng)數(shù)據(jù),XGBoost 和LightGBM 模型相較于隨機(jī)森林模型有更好的預(yù)測(cè)效果,并且LightGBM 在高精度的預(yù)測(cè)前提下,模型構(gòu)建時(shí)間也顯著縮短.
為了使Stacking 模型融合的性能達(dá)到最優(yōu),本節(jié)在結(jié)合3.2 節(jié)特征選擇結(jié)果的基礎(chǔ)上,對(duì)隨機(jī)森林、XGBoost 和LightGBM 3 個(gè)基學(xué)習(xí)器模型的學(xué)習(xí)能力進(jìn)行分析.針對(duì)各個(gè)基學(xué)習(xí)器采用網(wǎng)格搜索加交叉驗(yàn)證的方式進(jìn)行超參數(shù)擇優(yōu),首先將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,然后將劃分后的訓(xùn)練數(shù)據(jù)進(jìn)一步分為訓(xùn)練集與驗(yàn)證集,通過(guò)交叉驗(yàn)證的方式,分別觀測(cè)使用不同超參數(shù)集訓(xùn)練后模型在驗(yàn)證集的預(yù)測(cè)效果,從而選擇各個(gè)模型的最優(yōu)超參數(shù)集.將構(gòu)建好的各個(gè)單模型在測(cè)試集上進(jìn)行預(yù)測(cè)分析,并以決定系數(shù)R2和均方誤差MSE 作為模型性能的評(píng)價(jià)標(biāo)準(zhǔn).各模型超參數(shù)集以及單模型預(yù)測(cè)性能如表2所示.
通過(guò)上表可以看出,超參數(shù)優(yōu)化后的隨機(jī)森林模型R2為0.9465,均方誤差MSE 為0.2785,而XGBoost與LightGBM 在參數(shù)優(yōu)化后的R2分別為0.9587 和0.9632,MSE 分別為0.2071 和0.1783.基于Bagging 集成思想的隨機(jī)森林和基于Boosting 集成思想下的XGBoost 與LightGBM 作為Stacking 模型融合的第一層基學(xué)習(xí)器,其性能較好,且Boosting 算法模型的優(yōu)越性高于Bagging 算法模型.
為了驗(yàn)證Stacking 集成學(xué)習(xí)模型的預(yù)測(cè)性能,首先對(duì)46 802 條訓(xùn)練集平均分為5 份,分別用第一層的3 種基學(xué)習(xí)器執(zhí)行5 折交叉驗(yàn)證過(guò)程,在每一次交叉驗(yàn)證中,使用4 份訓(xùn)練集對(duì)基學(xué)習(xí)模型進(jìn)行構(gòu)建,并對(duì)剩余的一份驗(yàn)證集進(jìn)行預(yù)測(cè),同時(shí)對(duì)20 058 條測(cè)試集進(jìn)行預(yù)測(cè),那么在5 折交叉驗(yàn)證完成后,每個(gè)基學(xué)習(xí)器模型會(huì)產(chǎn)生和訓(xùn)練集樣本數(shù)量相同的一列數(shù)據(jù),3 個(gè)基學(xué)習(xí)器則會(huì)最終產(chǎn)生3 列對(duì)訓(xùn)練數(shù)據(jù)預(yù)測(cè)后的數(shù)據(jù)集A.然后將每個(gè)基學(xué)習(xí)器模型在5 次交叉驗(yàn)證后對(duì)測(cè)試集預(yù)測(cè)出的5 列數(shù)據(jù)按行求均值,即3 個(gè)基學(xué)習(xí)模型最后會(huì)產(chǎn)生3 列對(duì)測(cè)試集預(yù)測(cè)后的數(shù)據(jù)集B.最后則利用第二層的Linear Regression 模型對(duì)數(shù)據(jù)集A和最初訓(xùn)練集的標(biāo)簽(原始實(shí)際功率)構(gòu)成的數(shù)據(jù)集進(jìn)行模型構(gòu)建,利用構(gòu)建好的融合模型對(duì)數(shù)據(jù)集B進(jìn)行預(yù)測(cè),得到最終的Stacking 模型融合后的結(jié)果.
圖8 特征子集尋優(yōu)過(guò)程中交叉驗(yàn)證的均方誤差曲線圖
圖9(a)比較了部分測(cè)試集在Stacking 融合模型上的預(yù)測(cè)曲線變化情況,圖9(b)給出了4 種模型在R2和MSE 上的性能評(píng)價(jià)值.可以看出,Stacking 模型融合后的實(shí)際功率預(yù)測(cè)值無(wú)論是在擬合優(yōu)度還是均方誤差方面都有了較大的改善,R2達(dá)到了0.9874,MSE達(dá)到了0.1056,這表明本文提出的對(duì)隨機(jī)森林、XGBoost和LightGBM 以Stacking 集成學(xué)習(xí)方式進(jìn)行模型融合,在對(duì)光伏電場(chǎng)輸出功率的預(yù)測(cè)方面,具有一定的實(shí)際意義,可為電網(wǎng)調(diào)度提供有益的參考.
表2 各模型超參數(shù)集以及單模型預(yù)測(cè)性能
圖9 Stacking 模型融合的性能曲線圖
從理論層面分析Stacking 集成模型優(yōu)于單模型的原因,是因?yàn)镾tacking 模型集成了多樣化的預(yù)測(cè)算法,能夠充分利用各個(gè)算法從不同的數(shù)據(jù)空間和結(jié)構(gòu)來(lái)觀測(cè)數(shù)據(jù),從而充分發(fā)揮各個(gè)算法自身優(yōu)勢(shì),摒棄了各個(gè)算法中預(yù)測(cè)效果較差的環(huán)節(jié).此外,考慮到光伏發(fā)電功率預(yù)測(cè)模型訓(xùn)練過(guò)程中的假設(shè)空間往往很大,可能有多個(gè)假設(shè)在訓(xùn)練集上達(dá)到同等性能,Stacking 集成學(xué)習(xí)的方式可以有效減少單一模型泛化性能不佳的風(fēng)險(xiǎn).另一方面,從模型優(yōu)化角度來(lái)看,單一模型訓(xùn)練的優(yōu)化過(guò)程中,模型往往會(huì)有陷入局部最小點(diǎn)的風(fēng)險(xiǎn),有的局部極小點(diǎn)所對(duì)應(yīng)的模型泛化性能可能較差,而通過(guò)多個(gè)基學(xué)習(xí)器訓(xùn)練之后進(jìn)行結(jié)合,可有效減少陷入局部極小點(diǎn)的概率.因此,采用基于Stacking 集成學(xué)習(xí)方式的多模型融合后預(yù)測(cè)精度有所提升.
就Stacking 模型融合的改進(jìn)機(jī)制而言,元學(xué)習(xí)器的訓(xùn)練集是由基學(xué)習(xí)器的輸出產(chǎn)生的,直接使用基學(xué)習(xí)器的訓(xùn)練集來(lái)產(chǎn)生次級(jí)訓(xùn)練集的話,可能會(huì)產(chǎn)生嚴(yán)重的過(guò)擬合.為了防止數(shù)據(jù)被雙層學(xué)習(xí)器重復(fù)使用而造成過(guò)擬合效應(yīng)的發(fā)生,本文在模型融合的過(guò)程中,每個(gè)基學(xué)習(xí)器都對(duì)訓(xùn)練集執(zhí)行5 折交叉驗(yàn)證過(guò)程,使用一個(gè)數(shù)據(jù)塊作為驗(yàn)證集,對(duì)應(yīng)的其余4 個(gè)數(shù)據(jù)塊作為測(cè)試集,在每折交叉驗(yàn)證完成后,利用基學(xué)習(xí)器對(duì)驗(yàn)證集進(jìn)行預(yù)測(cè),即每個(gè)基學(xué)習(xí)器在5 折交叉驗(yàn)證結(jié)束后,都會(huì)產(chǎn)生和原始訓(xùn)練集數(shù)量相同的新的數(shù)據(jù)集.實(shí)現(xiàn)了所有數(shù)據(jù)從輸入特征到輸出特征的特征變換,且元學(xué)習(xí)器的訓(xùn)練集完全來(lái)自各個(gè)基學(xué)習(xí)器的預(yù)測(cè)輸出數(shù)據(jù),這使得元學(xué)習(xí)器能充分結(jié)合各個(gè)基學(xué)習(xí)器的模型優(yōu)勢(shì)來(lái)完成模型構(gòu)建,以提升模型融合的效果.同時(shí),XGBoost 和LightGBM 這兩類(lèi)基學(xué)習(xí)器能夠充分挖掘輸入信息的數(shù)據(jù)內(nèi)部特征,對(duì)連續(xù)型和離散型特征都有較好應(yīng)用,而隨機(jī)森林模型可以在最大程度上關(guān)注影響較大的幾種特征類(lèi)型,能夠充分發(fā)揮重要特征的作用.因此,Stacking 模型融合的3 個(gè)基學(xué)習(xí)器可以實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),確保元學(xué)習(xí)器的輸入是質(zhì)量較高且無(wú)冗余特征的數(shù)據(jù)集,這些數(shù)據(jù)集通過(guò)Linear Regression 這一泛化能力較強(qiáng)的元學(xué)習(xí)器進(jìn)行訓(xùn)練后,可以從整體上提升Stacking 模型的預(yù)測(cè)能力.
為了獲得更加理想的光伏發(fā)電功率預(yù)測(cè)結(jié)果,本文建立了以歷史光伏電場(chǎng)輸出功率數(shù)據(jù)和環(huán)境氣象為關(guān)鍵因素的基于Stacking 模型融合的光伏發(fā)電功率預(yù)測(cè)模型.該模型分為兩層構(gòu)建,第一層基學(xué)習(xí)器分別選取預(yù)測(cè)性能較優(yōu)的以Bagging 算法為代表的隨機(jī)森林和以Boosting 算法為代表的XGBoost、LightGBM 模型,并在第一層進(jìn)行了各個(gè)基學(xué)習(xí)器模型的超參數(shù)調(diào)優(yōu),以充分發(fā)揮各個(gè)模型的優(yōu)勢(shì),第二層選取穩(wěn)健性較好的Linear Regression 模型進(jìn)行最終的Stacking 集成融合.通過(guò)光伏電場(chǎng)數(shù)據(jù)集的試驗(yàn)表明,本文建立的融合模型可以精確地預(yù)測(cè)光伏電場(chǎng)輸出功率,提高了光伏發(fā)電的預(yù)測(cè)精度,對(duì)于工程上的光伏功率發(fā)電預(yù)測(cè)及建模有一定的實(shí)用意義.
在今后的工作中,將進(jìn)一步針對(duì)以下問(wèn)題開(kāi)展深入探討,Stacking 的框架設(shè)計(jì)比較復(fù)雜,對(duì)于基模型要訓(xùn)練多次,即使在訓(xùn)練Stacking 模型的時(shí)候?qū)γ總€(gè)基學(xué)習(xí)器減少若干數(shù)據(jù)量,計(jì)算時(shí)間仍然較長(zhǎng).因此,未來(lái)研究中有必要布置分布式計(jì)算的相關(guān)環(huán)境,對(duì)不同的基模型分別建模,采用分而治之的思想,有效減小算法的時(shí)間復(fù)雜度.