陳小波 ,張媛媛 ,崔 平
(1. 東北財經(jīng)大學 投資工程管理學院,遼寧 大連 116025,E-mail:xiaobo9017@163.com;2. 東北財經(jīng)大學 投資工程管理學院工程管理研究中心,遼寧 大連 116025;3. 中建二局熊兵勞模創(chuàng)新工作室,北京 100160)
建設工程項目具有復雜性、單件性、長期性的特點,工程項目投資估算是項目投資決策的重要依據(jù),是指在整個投資決策過程中,依據(jù)現(xiàn)有資料和一定的方法,對建設項目的投資額進行的估計[1]。建設項目前期成本估算的準確性對于項目的投資決策有著直接的影響,也是項目建設過程順利進行的重要基礎。因此,深入研究建設項目成本估算方法,建立一個高效科學的投資估算模型,對于建設項目前期的投資決策等一系列活動具有非常重大的意義。
建設項目的投資成本估算,可以看作是利用數(shù)學或者計算機建立模型并進行求解的過程,目前很多國內外學者對工程項目的快速投資估算方法進行了研究,國外大致分為4個階段:英國工程造價信息服務部提出的 BCIS預測模型[2]、英國數(shù)學家Kouskoulas等[3]給出的模型—線性回歸方程、以計算機軟件系統(tǒng)和概率分析為基礎的Monte Carlo隨機估算模型[4]、應用人工智能的,如神經(jīng)網(wǎng)絡、優(yōu)化算法[5]等工程造價預測模型。我國的發(fā)展進程相對滯后,最早使用的建設項目投資估算方法,主要是采用擬建工程與已建工程的相似程度進行類比得出擬建過程的估算造價,有生產能力指數(shù)法、朗格系數(shù)法等,最近幾年來一些利用人工智能的估算方法,比如人工神經(jīng)網(wǎng)絡、灰色預測模型、模糊數(shù)學法等也在逐漸推廣并實現(xiàn)優(yōu)化,這在一定程度上大大提高了估算的準確度,也節(jié)省了不少項目建設前期的寶貴時間。田雨晴[6]分別運用 GM(1,1)模型、BP神經(jīng)網(wǎng)絡法、灰色系統(tǒng)理論優(yōu)化的BP人工神經(jīng)網(wǎng)絡建立估算模型,并采用實例進行預測,最后驗證改進的BP神經(jīng)網(wǎng)絡模型是有效可行的,蔣紅妍等[7]采用灰關聯(lián)分析與粒子群優(yōu)化的 BP神經(jīng)網(wǎng)絡相結合的方法,構建基于灰關聯(lián)的 PSO-BP神經(jīng)網(wǎng)絡的高層住宅造價估算模型,王佼等[8]提出用灰關聯(lián)分析篩選工程造價影響因素,再使用PSO優(yōu)化的SVR模型進行優(yōu)化,從而建立PSO-SVR輸電工程造價模型。
以上研究在一定程度上豐富了投資估算的方法模型,提高了預測的準確度。然而對于造價指標的篩選,多數(shù)都是來源于文獻歸納與專家訪談,篩選方法不夠智能與科學,對于所提出模型的有效性也缺少對比證實。因此,本文在對影響工程造價的特征指標篩選時選用統(tǒng)計分析軟件 SPSS,之后使用Matlab建立基于SVR的工程建設項目投資智能估算模型,為了說明本文提出模型的預測準確性,建立BP人工神經(jīng)網(wǎng)絡成本預測模型以實例來驗證SVR模型的有效性并進行預測結果對比。提出的模型可以作為實際工程項目投資估算的輔助計算,進而為項目的投資決策提供合理依據(jù)。
支持向量機(Support Vector Machines,SVM)理論是在統(tǒng)計學習理論中發(fā)展起來的一種通用學習方法[9]。機近年來引起了人們的廣泛關注,該學習理論可作為多項式、徑向基函數(shù)和多層感知分類器的替代訓練技術,這種新的計算機訓練技術與傳統(tǒng)訓練技術相比可以有效地減小理論誤差的上界。
支持向量機是針對一般的估計和預測問題而開發(fā)的,除了使用支持向量機分類,還可以用來進行函數(shù)回歸的擬合,即 SVR(Support Vector Regression)。SVR的目標是通過最小化預測誤差,從而找到一個能夠很好地逼近訓練實例的函數(shù),并且在誤差最小化時,最大化函數(shù)的平整度來降低擬合的風險。
支持向量機回歸(SVR)是指用線性函數(shù)g(x)=wx+b來擬合樣本數(shù)據(jù)(xi,yi),i=1,2,…,n,xi∈Rd,yi∈R,在控制擬合精度ε的情況下,假設所有的樣本數(shù)據(jù)都可以視為沒有誤差地用以下線性函數(shù)來表示[10],
常數(shù)C>0同樣是對超出ε的樣本懲罰程度的控制,因此,問題可以轉化為:
其中,αi,為Lagrange因子,并最終得到回歸函數(shù)為:
這就是用支持 SVR進行函數(shù)回歸擬合的數(shù)學過程。
SVR目前在理論上的研究較為豐富,而在實踐中的應用研究則相對較少。對于支持向量機的研究,更多集中在傳統(tǒng)的分類和模式識別的功能上,而非線性函數(shù)回歸擬合這個功能,實踐應用上的發(fā)掘不多,應用于工程實踐問題中更是少之又少。因此,本文重點探索 SVR在快速投資估算方法中的應用,并與BP人工神經(jīng)網(wǎng)絡對比以驗證SVR模型的有效性。
本文選取了某市建設工程造價網(wǎng)所公布的 44組單項工程造價指標具體案例,由于涉及的屬性繁多,通過閱讀大量文獻并結合專家經(jīng)驗對指標合并,初步選取以下18個工程特征指標:建筑面積、工程用途、質量等級、結構類型、基礎類型、門窗類型、砌體類型、土石方、基礎與樁基礎、砌筑工程、屋面防水保溫、砼、鋼筋工程、墻柱面工程、門窗工程、樓地面、天棚、部分措施項目(含模板、腳手架、垂直運輸機械、安全文明施工費),來建立工程特征指標體系。
以上確立的指標體系同時包含定性指標與定量指標兩類。定量指標主要包括建筑面積等可以直接將原始數(shù)據(jù)輸入模型進行處理的指標,而對于工程用途、質量等級、結構類型、基礎類型、砌體類型、門窗類型這幾項不能用數(shù)字來表示的定性特征指標,依據(jù)該工程特征對平米造價大小影響的程度,按從小到大的順序排序,從而進行量化處理[11],如表1所示。
表1 定性指標的量化處理
由于不同工程特征指標的量綱不同,因此需要將各指標進行標準化處理,以消除不同特征指標量綱之間的差異性。本文對搜集的 44個工程造價案例的數(shù)據(jù)進行標準化處理,具體由 Matlab自帶的mapminmax函數(shù)來實現(xiàn),從而實現(xiàn)將數(shù)據(jù)歸一化到[-1,1]之間的數(shù),標準化的具體公式如下:
如果某行的數(shù)據(jù)全部相同,即xmax=xmin,除數(shù)為0,此時數(shù)據(jù)不變。
數(shù)據(jù)約簡是指“壓縮”原有龐大的數(shù)據(jù)集以獲得一個精簡的數(shù)據(jù)集合,同時保持原有數(shù)據(jù)集的完整性,使得數(shù)據(jù)挖掘效率更高,精簡前后數(shù)據(jù)挖掘結果基本相同。本文指標特征的選擇,屬于屬性約簡,即維數(shù)的約簡,使用統(tǒng)計分析軟件SPSS的相關性分析來進行工程特征指標的約簡,將 44個案例的工程造價指標數(shù)據(jù)導入 SPSS,使用主成分分析功能,將平米造價設置為因變量,其余 18個特征指標作為自變量,得到 19個因素的相關性系數(shù)矩陣,本文主要采用SPSS軟件的Pearson相關系數(shù)來解決變量冗余的問題,相關系數(shù)的數(shù)學定義為:
式中,n為樣本數(shù);xi和yi分別是變量的值;r是兩個變量之間的相關度,-1?r≤1,如果r=0則代表二者不存在相關關系,r>0則代表二者存在正相關關系,|r|越大,表示因變量與自變量之間的相關程度越大。
本文的因變量(平米造價)與自變量之間的相關性如圖1所示。
圖1 因變量與自變量相關性
為了保證模型預測的準確性,需要選取適量的與因變量相關程度較大的指標。在篩選指標時,考慮到相關性定的太高滿足條件的的指標數(shù)量太少,不能夠精確預測因變量,相關性定的太低又不能達到篩選有代表性指標的目的,導致指標冗余繁多,根據(jù)以上原則,經(jīng)過多次調試,本文擬定選取相關性在0.3以上的工程特征指標,恰好可以滿足指標數(shù)量選取的原則。據(jù)此標準最終按照相關性大小排序,依次選取前 12個指標作為本文所建立模型的輸入指標。
不同核函數(shù)類型對于模型性能的好壞有直接的影響,因此需要選擇最佳的核函數(shù)類型。本文通過多次試驗,在模型中采用的是 RBF核函數(shù)與其他核函數(shù)相比來說,RBF核函數(shù)對應模型具有的泛化性能是最佳的。
采用RBF核函數(shù)以后,模型訓練階段的主要任務是確定參數(shù)c(懲罰因子)和 g(RBF內核的方差)。如果是第一次運行,上述兩個參數(shù)的值可以任意定義。但是,如果重復多次,優(yōu)化訓練參數(shù)的步驟就會開始工作。本文所采用的訓練參數(shù)優(yōu)化算法是利用Matlab工具箱中優(yōu)化工具箱的功能。對于參數(shù)c和g的搜尋,本文主要采用交叉驗證技術,具體應用是指首先用該方法來尋找最佳的參數(shù)c和g,然后使用尋找到的參數(shù)組合來訓練本文的模型。如果此時模型的性能大致相近,為了達到快速建模的目的、減少迭代次數(shù),首先考慮的便是c參數(shù)較小的參數(shù)組合,此外,在模型建立時也需要預先設定ε的值。
使用libsvm工具箱在訓練模型時,需要用到交叉驗證方法,交叉驗證是一種著名的估計泛化誤差的技術[12]。libsvm的k次交叉驗證將訓練樣本平均分為k個部分,每次以k-1個部分作為訓練數(shù)據(jù),其余的部分作為測試數(shù)據(jù)。重復k次,得到k次交叉驗證的平均精度。
在支持向量機的回歸問題中,交叉驗證使用SVMtrain的-V參數(shù),返回交叉驗證下的平均均方根誤差。此外,還可以快速找到最佳參數(shù)c和g。最終建立的SVR模型如圖2所示[13]。
圖2 SVR模型
本文使用的 44組案例數(shù)據(jù)均來源于實際的工程項目,數(shù)據(jù)搜集不易,為了充分利用案例數(shù)據(jù),更全面地捕捉案例數(shù)據(jù)的特征,以便達到更好的預測效果,需要對案例數(shù)據(jù)進行插值來完成樣本擴充。本文所用的插值方法是采用Matlab自帶的均分計算函數(shù) linspace,在案例數(shù)據(jù)的最大值與最小值之間等距進行插值,插值數(shù)量設置為 100,由此生成100個新的樣本數(shù)據(jù),再加上原有44個案例數(shù)據(jù),總計144個樣本數(shù)據(jù)。為不失一般性,采用Matlab中的 randperm函數(shù)隨機劃分 115個樣本作為訓練集,剩余的29個樣本作為測試集。
使用Matlab編寫程序建立SVR模型,模型中核函數(shù)類型采用RBF核函數(shù)用隨機劃分好的115個訓練集樣本訓練該模型。訓練過程中交叉驗證技術會自動調試SVR模型參數(shù)c和 g,并對參數(shù)進行尋找最優(yōu),等到模型訓練到誤差最小、性能最佳之后程序便自動開始測試集樣本的預測過程,最終得出訓練集的訓練效果和測試集的預測效果。由于測試集的預測效果代表的是最終模型性能的好壞,因此在這里給出測試集預測結果(測試集真實值和預測值的對比),如圖 3所示??芍琒VR模型的擬合優(yōu)度R2高達 0.97,均方誤差 MSE僅有 0.0032,平均絕對百分比誤差 MAPE約為5%,模型的預測誤差很低,說明該SVR模型具有良好泛化能力和預測精度,預測結果比較滿意。
圖3 SVR模型預測結果
為了有效驗證 SVR模型的預測性能,本文采取BP人工神經(jīng)網(wǎng)絡(BPNN)建立的預測模型作為對照模型。BP神經(jīng)網(wǎng)絡采用誤差反向傳播算法(Error Back Propagation)進行學習,學習算法主要是快速下降法[14]。
在建立BPNN預測模型時,需要提前設置好各種網(wǎng)絡所需參數(shù):
(1)網(wǎng)絡層數(shù)的確定。根據(jù)相關研究,當BP神經(jīng)網(wǎng)絡的隱含層數(shù)為1時,幾乎所有的連續(xù)函數(shù)都可以被擬合出來,只有當需要去擬合的函數(shù)為非連續(xù)性函數(shù)時,此時所需要的網(wǎng)絡隱含層數(shù)變?yōu)?2層[11],所以本文建立的BP神經(jīng)網(wǎng)絡模型只包含一個隱含層。
(2)各層節(jié)點數(shù)的選擇。BP神經(jīng)網(wǎng)絡的輸入層和輸出層的節(jié)點數(shù)由案例中的樣本集確定。本文中輸入層節(jié)點數(shù)為12,輸出層節(jié)點數(shù)為1,對于隱含層節(jié)點數(shù)的確定主要是通過逐步嘗試得到當隱含層節(jié)點數(shù)為24時,模型訓練效果最好。
(3)訓練函數(shù)的選擇。BP神經(jīng)網(wǎng)絡的性能好壞由許多因素決定,比如問題的復雜程度、權重、訓練集等。為了達到期望誤差,本文選取 Tan-Sigmoid函數(shù)作為傳遞函數(shù),輸出層函數(shù)選取purelin線性函數(shù),訓練函數(shù)選取 traingdm,并選取 LM(Levenberg-Marquardt)算法來改進優(yōu)化最速下降BP法,可使誤差收斂速度較快,訓練精度較高。
設置好相關參數(shù)后,建立并訓練BPNN模型,然后使用測試集測試該模型預測的準確性,圖4為BPNN進程執(zhí)行圖,圖5為BPNN模型的預測效果。
訓練結果的評價是對訓練得出的模型推廣(或稱泛化)能力進行驗證。所謂泛化能力是指經(jīng)訓練(學習)后模型的優(yōu)良性能在測試集做出良好表現(xiàn)的能力,通常需要用到 MSE(均方誤差)、MAPE(平均絕對百分比誤差)、R2(可決系數(shù))這 3個
圖4 BP神經(jīng)網(wǎng)絡執(zhí)行圖
圖5 BPNN預測結果
指標來衡量,它們的定義分別是:
如果算出的MSE和MAPE值比較小,則說明該訓練模型的泛化能力強,反之則說明模型的泛化能力較差,R2是可決系數(shù),用來描述模型擬合的好壞程度。將本文提出的SVR模型和BPNN模型的預測結果對比如表2所示、預測誤差如圖6所示。
表2 SVR 與BPNN的預測性能對比
由表2可以得出兩個模型的訓練效果,SVR模型的均方誤差MSE僅有0.003181,而BP神經(jīng)網(wǎng)絡
圖6 預測誤差對比圖
預測模型的均方誤差MSE為0.043367,同時模型訓練速度較快,完全滿足預期目標。SVR模型與BP神經(jīng)網(wǎng)絡預測模型相比,其平均絕對百分比誤差僅約為5%,遠小于BP模型約為14%的誤差率,并且其擬合程度R2已達到 0.9671,均方誤差也很小。由此看來,本文提出的 SVR模型的預測精度要遠遠高于BP神經(jīng)網(wǎng)絡的預測模型,可以完全滿足投資決策階段對于估算精度的要求,也表明該模型對建筑業(yè)建設項目成本估算具有較高的性能適用性。通過使用本文所提出的 SVR成本估算回歸模型,項目經(jīng)理可以做出適當?shù)臎Q策來評估建設項目,特別是在可行性研究中,如此也大大提高工作效率,增加工程建設項目成功的機會。
工程建設項目的投資估算對于一個項目能否上馬至關重要,提出科學有效的估算方法意義重大。本文所提出的建設項目成本估算模型采用SVR的方法,先使用 SPSS主成分分析功能的 Pearson相關系數(shù)篩選出工程特征指標,作為模型的輸入變量,然后利用具有可靠性估計特點的交叉驗證技術尋找最佳的參數(shù)組合,建立 SVR模型。預測結果表明:SVR模型的平均絕對百分比誤差率大約在5%,擬合優(yōu)度約為0.97。建立BP神經(jīng)網(wǎng)絡預測模型來驗證本文所提出模型的有效性并進行結果對比,得到BP神經(jīng)網(wǎng)絡預測模型的平均絕對百分比誤差率大約為14%,擬合優(yōu)度約為0.84,這表明SVR模型的泛化能力非常好,顯著強于BP神經(jīng)網(wǎng)絡預測模型,具有訓練效果更強,預測精度更高,可靠性高、避免過擬合等優(yōu)點,同時使用 SVR模型也避免了BP神經(jīng)網(wǎng)絡容易陷入局部最優(yōu)這一缺點以及對隨機初始權重的敏感性。仿真測試結果表明,在已有建筑工程歷史數(shù)據(jù)案例的情況下,利用SVR模型進行工程造價估算是可行有效的。進一步研究中,需要對模型進行深度的優(yōu)化,以提高泛化能力。