黃龍山
(福建榕能電業(yè)集團(tuán)有限公司,福建 福州 350108)
隨著我國城網(wǎng)建設(shè)不斷發(fā)展,集中招標(biāo)采購規(guī)模不斷擴(kuò)大,預(yù)測電力物資采購價格是電力企業(yè)提高采購管理水平和提高概預(yù)算編制準(zhǔn)確率的必要條件[1]。因此,如何建立電力物資采購價格預(yù)測的模型,為電力工程建設(shè)規(guī)劃提供比較合理的價格預(yù)測區(qū)間,是當(dāng)前電力公司亟待解決的問題。
業(yè)內(nèi)專家與學(xué)者們對商品購買價格評估方面,目前采用的方法大多是通過對歷史數(shù)據(jù)進(jìn)行預(yù)測,張昊等[2]利用隨機(jī)森林和XGBoost模型判斷各特征數(shù)據(jù)對模型的貢獻(xiàn)程度。葉倩怡[3]以零售業(yè)銷售數(shù)據(jù)作為數(shù)據(jù)挖掘?qū)ο螅瑢Ρ萖GBoost、隨機(jī)森林和Time Series Linear模型在銷售額預(yù)測上的效果,得到XGBoost模型比其他模型預(yù)測效果更好。陳宇韶等[4]利用XGBoost模型預(yù)測股價走勢。靳占新等[5]則使用構(gòu)建線性回歸法與隨機(jī)時間序列兩個的模型預(yù)測物品價格。
該文用統(tǒng)計方法對已有的歷史物資價格信息進(jìn)行收集,分析影響物資定價的主要原因,并利用支持向量機(jī)與神經(jīng)網(wǎng)絡(luò)算法模型對預(yù)測電力物資定價進(jìn)行對比,結(jié)果表明支持向量機(jī)的算法模型預(yù)測的結(jié)果更具有準(zhǔn)確性。
電力建設(shè)的成本大部分取決于電力物資價格的高低,而電力物資的價格由多種因素綜合決定。因此,為預(yù)測電力物資價格,需要對電力物資價格的影響因素進(jìn)行分析。
通過收集榕能集團(tuán)2020年1月—2022年6月電力物資采購信息,選取電力物資采購價格的核心影響因素。歷史采購數(shù)據(jù)的質(zhì)量直接影響電力物資價格預(yù)測的精度,數(shù)據(jù)的完整性和準(zhǔn)確性是影響數(shù)據(jù)質(zhì)量的關(guān)鍵因素。因此,為得到可信度較高的電力物資價格的影響因素,需要對數(shù)據(jù)進(jìn)行預(yù)處理。因此,需要清理缺失值和噪聲數(shù)據(jù),再標(biāo)準(zhǔn)化表示數(shù)據(jù)。
從電力物資采購數(shù)據(jù)表中可知,采購的物資種類共計35種,對每件產(chǎn)品的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理后,利用MATLAB編程求解多元線性回歸的系數(shù)。自變量依次為采購方式,購買時間,型號,截面,阻燃特性,鎧裝形式,中標(biāo)數(shù)量,芯數(shù)。以電力電纜為例,得到自變量影響系數(shù),見表1。由表1可知,采購方式對產(chǎn)品單價的影響程度較大,其中采購方式為邀請競爭性談判的價格最低,其次是詢價采購,單一來源采購的價格最高。但低壓電力電纜與時間呈正相關(guān),采購時間越晚,價格越高。數(shù)據(jù)分析的結(jié)果也表明,界面尺寸越大,芯數(shù)越多,產(chǎn)品單價越高。該部分通過建立相關(guān)模型得出采購的價格與采購方式密切相關(guān)的結(jié)果,較多產(chǎn)品都反映采購方式為邀請競爭性談判的價格最低,其次是詢價采購,單一來源采購的價格最高。因此當(dāng)企業(yè)在購入產(chǎn)品時,應(yīng)注意選取采購方式,在考慮其他方面成本的前提下多選取邀請競爭性談判作為采購方式。同理可以分析其他電力物資價格的關(guān)鍵影響因素。
表1 電力電纜系數(shù)表
預(yù)測物資價格通常有兩種理論方法,經(jīng)驗預(yù)測法和數(shù)學(xué)模型預(yù)測法?;陔娋W(wǎng)物資價格預(yù)測具有重要的實際工程應(yīng)用價值,因此采用數(shù)學(xué)模型預(yù)測法進(jìn)行預(yù)測,可以得到更嚴(yán)謹(jǐn)、科學(xué)的預(yù)測結(jié)果。該文采用支持向量機(jī)的數(shù)學(xué)模型進(jìn)行預(yù)測分析。
支持向量機(jī)(SVM)是Vapnik等數(shù)學(xué)家在1963年提出的一種二分類型機(jī)器,基本思想是尋找一個超平面,使樣本可以分為兩類,并且使兩類間的間隔最大,間隔大使其與感知器不同,這種變化通過核函數(shù)實現(xiàn),使其成為實質(zhì)上的非線性分類器,可以處理高維數(shù)據(jù)問題,在樣本數(shù)據(jù)量較小的情況下,仍然可以完成分類,無須依賴整個數(shù)據(jù),泛化能力強。SVM的學(xué)習(xí)方法是目前求解凸二次的最佳方法[6]。
為方便訓(xùn)練數(shù)須將數(shù)據(jù)映射成數(shù)值,例如單一來源采購=1;詢價采購=2;邀請競爭性談判=3。數(shù)據(jù)歸一化處理,因為在數(shù)據(jù)集中不同變量的比例差別很大,不屬于一個數(shù)量級,所以,必須在構(gòu)建回歸模式前,先對數(shù)據(jù)進(jìn)行歸一化處理。由于該類數(shù)據(jù)各變量的差異較大,因此為減少誤差增強模型的擬合程度,對數(shù)據(jù)進(jìn)行歸一化處理,以低壓開關(guān)柜為例,歸一化后數(shù)據(jù)見表2。
表2 低壓開關(guān)柜歸一化后數(shù)據(jù)
核函數(shù)類型及模型參數(shù)是影響SVR模型分析效果的關(guān)鍵因素,因此,在創(chuàng)建SVR模型前,需要尋找合理的核函數(shù)類型以及參數(shù)組合。該文利用 RBF 核函數(shù)并采用交叉驗證方法選擇最合適的懲罰因子參數(shù)c和RBF核函數(shù)中的方差,通過選出的最佳參數(shù)對SVR模型進(jìn)行訓(xùn)練。當(dāng)SVR模型的分析效果相同,選擇懲罰參數(shù)因子時,采用的策略和前面SVM分類方法一致,取參數(shù)數(shù)值較小的c,這樣可以加快模型的計算速度,避免計算時間過長,提高模型效率,在SVR模型訓(xùn)練過程中需要選取ε的值。
利用svmpredict函數(shù),仿真測試SVR回歸模型,返回的一個參數(shù)中是對應(yīng)的預(yù)測值,在第二個函數(shù)中描述測試集的均方誤差E和決定系數(shù)R2。為了保證通用性,也可以采用隨機(jī)方法建立練習(xí)集和測試集,隨機(jī)選取400、800和1200個試樣作為練習(xí)集,再隨機(jī)取試樣中的前十個試樣,作為測試集對模型的穩(wěn)定性進(jìn)行評價(如圖1所示)。預(yù)測誤差見表3。
圖1 樣本數(shù)量400
圖2 樣本數(shù)量800
圖3 樣本數(shù)量1200
表3 預(yù)測誤差
由表3可以看出,數(shù)據(jù)存在一定零散的情況,使用的訓(xùn)練集數(shù)量越多,預(yù)測的結(jié)果越精確,但預(yù)測誤差仍然較大。根據(jù)分析發(fā)現(xiàn),在低壓開關(guān)柜的數(shù)據(jù)中,有的型號數(shù)據(jù)數(shù)量大于1000份,然而有的型號只有30多份數(shù)據(jù),為了顧及所有型號的的產(chǎn)品,因此這里考慮對每一份材料進(jìn)行隨機(jī)抽取一定的數(shù)量來構(gòu)成新的訓(xùn)練集,既能不失一般性,又能考慮所有情況,通過不斷訓(xùn)練找到一個合適的訓(xùn)練集并儲存。在得到較優(yōu)的訓(xùn)練集后,在低壓開關(guān)柜數(shù)據(jù)中重新選擇10個數(shù)據(jù),對其進(jìn)行價格預(yù)測,如圖4和圖5所示。由圖可知,支持向量機(jī)對預(yù)測低壓開關(guān)柜的中標(biāo)單價效果較好。
圖4 新訓(xùn)練集下的預(yù)測一
圖5 新訓(xùn)練集下的預(yù)測二
還原型神經(jīng)網(wǎng)絡(luò)是通過有機(jī)地融合BP神經(jīng)網(wǎng)絡(luò)和迭代還原方法而產(chǎn)生的神經(jīng)網(wǎng)路模型,通過設(shè)置原始BP神經(jīng)網(wǎng)路模型,采用歷史數(shù)據(jù)集對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,再通過對比輸出數(shù)據(jù)和實際數(shù)值,反映二者的差值,為校準(zhǔn)模型,通過對神經(jīng)網(wǎng)絡(luò)中的權(quán)重和參數(shù)進(jìn)行反復(fù)調(diào)整,并采用迭代法進(jìn)行回歸驗證,以期提高神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確性。為減少各維度數(shù)據(jù)間的數(shù)量級差異,需要對各種數(shù)據(jù)來源進(jìn)行歸一化處理[7],可以避免誤差更大,提高模型預(yù)測的準(zhǔn)確度。采用最小二乘法對數(shù)值進(jìn)行歸一化處理,歸一化函數(shù)使用MATLAB自帶函數(shù)mapminmax處理數(shù)據(jù)。為了保證通用性,采用隨機(jī)的方式形成訓(xùn)練集和試驗集,即隨機(jī)選擇400、800和1200個樣品作為訓(xùn)練集,以隨機(jī)取得數(shù)據(jù)中的前十個樣品作為試驗集,對模型的性能進(jìn)行評估,如圖6~圖8所示。預(yù)測誤差見表4。
圖6 樣本數(shù)量400
圖7 樣本數(shù)量800
圖8 樣本數(shù)量1200
表4 預(yù)測誤差
由表4可知,神經(jīng)網(wǎng)絡(luò)會受數(shù)據(jù)零散的影響,降低其預(yù)測的精確度。當(dāng)使用的訓(xùn)練集數(shù)量為400時,預(yù)測的結(jié)果最精確,但是之間還存在較大預(yù)測誤差。
通過支持向量機(jī)不斷訓(xùn)練,得到低壓開關(guān)柜較優(yōu)的訓(xùn)練集,將該訓(xùn)練集導(dǎo)入神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,并在低壓開關(guān)柜中重新選擇10個數(shù)據(jù)進(jìn)行價格預(yù)測,如圖9和圖10所示??梢园l(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)對低壓開關(guān)柜的中標(biāo)單價的預(yù)測效果不理想。
圖9 新訓(xùn)練集下的預(yù)測一
圖10 新訓(xùn)練集下的預(yù)測二
對比基于神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)的預(yù)測,見表5和表6。從預(yù)測指標(biāo)可以看出,支持向量機(jī)對低壓開關(guān)柜的數(shù)據(jù)類型預(yù)測效果最好,精度也最高。但是支持向量機(jī)的訓(xùn)練時間相對較長,如果樣本多會呈現(xiàn)指數(shù)級增加。當(dāng)對整個數(shù)據(jù)進(jìn)行訓(xùn)練或者少部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練時,得到大致的價格,神經(jīng)網(wǎng)絡(luò)預(yù)測具有一定優(yōu)勢。
表5 預(yù)測誤差對比情況(支持向量機(jī)法)
表6 預(yù)測誤差對比情況(神經(jīng)網(wǎng)絡(luò)法法)
如果對精度要求高,低壓開關(guān)柜的數(shù)據(jù)類型適合采用支持向量機(jī)進(jìn)行預(yù)測,如果只需要大致價格且想短時間得出結(jié)果,可以采用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測。
電網(wǎng)物資價格直接影響電網(wǎng)工程的造價,編制正確的預(yù)估價格可以降低成本,并減少投資風(fēng)險,因此對企業(yè)購買資料的標(biāo)準(zhǔn)化分析后,采用通過MATLAB程序計算多元線性回歸的系數(shù)評價方法確定電網(wǎng)物資采購價值的重要影響因素,并根據(jù)相關(guān)因素選擇基于向量機(jī)的神經(jīng)網(wǎng)絡(luò)方法,對電網(wǎng)物資價值進(jìn)行預(yù)測研究,通過對比證明基于向量機(jī)的模型估計準(zhǔn)確性較好,并得到較為理想的結(jié)果??蔀轭A(yù)測今后電網(wǎng)企業(yè)的物資價格提供參考。