楊 惠,李 文,郭若礁,李 孟,閆中林,鄭天君
(1.山東臨港疏港軌道交通有限公司,山東 臨沂 276624;2.煙臺(tái)大學(xué) 土木工程學(xué)院,山東 煙臺(tái) 264005)
隨著計(jì)算機(jī)深度學(xué)習(xí)技術(shù)的發(fā)展,利用數(shù)據(jù)挖掘技術(shù)進(jìn)行工程造價(jià)的快速預(yù)測得到了越來越廣泛的應(yīng)用。利用數(shù)據(jù)挖掘進(jìn)行工程造價(jià)的快速預(yù)測可以提高建設(shè)項(xiàng)目的決策效率,實(shí)現(xiàn)投資效益的最大化。
作為數(shù)據(jù)挖掘重要組成部分的特征工程,在工程造價(jià)的數(shù)據(jù)挖掘預(yù)測中,更是扮演著重要的作用;特征選取合理,算法模型訓(xùn)練的性能就好,反之則模型性能就低。特征工程不僅包括特征選取,還包括特征構(gòu)造、特征縮放、特征編碼以及特征降維等[1],對(duì)于具有明確目的的工程造價(jià)預(yù)測問題,特征指標(biāo)的選取主要還是依靠專業(yè)人員對(duì)業(yè)務(wù)場景的綜合分析來確定,同時(shí),也是一個(gè)反復(fù)的、試錯(cuò)的、迭代的過程。由于工程造價(jià)的影響因素非常復(fù)雜,因而特征指標(biāo)的類型也多種多樣,包括建筑、結(jié)構(gòu)、裝飾、基礎(chǔ)、設(shè)計(jì)基準(zhǔn)等各方面的特征,這些特征的原始數(shù)據(jù)需要轉(zhuǎn)化為便于機(jī)器學(xué)習(xí)算法進(jìn)行運(yùn)算的特征數(shù)據(jù),機(jī)器學(xué)習(xí)通過將特征數(shù)據(jù)擬合到數(shù)學(xué)模型中獲取結(jié)論或做出預(yù)測。這一轉(zhuǎn)化過程就是特征指標(biāo)的量化和編碼,量化和編碼方式不同,工程造價(jià)預(yù)測模型的性能差異很大。
文章以廣聯(lián)達(dá)指標(biāo)網(wǎng)中陜西省西安市2014年—2017年簽約的住宅工程數(shù)據(jù)為對(duì)象,以支持向量機(jī)(SVM)算法[2]為預(yù)測模型,根據(jù)特征指標(biāo)的屬性,及其對(duì)工程造價(jià)的影響方式,對(duì)特征指標(biāo)采取不同的量化和編碼方式進(jìn)行工程造價(jià)預(yù)測,預(yù)測結(jié)果證實(shí)了特征指標(biāo)的編碼方式對(duì)模型性能確有較大影響,同時(shí),提出了有利于提高工程造價(jià)SVM預(yù)測模型性能的特征指標(biāo)的編碼方式。
通過對(duì)廣聯(lián)達(dá)指標(biāo)網(wǎng)住宅工程造價(jià)數(shù)據(jù)的收集、梳理和清洗,選取其中160條樣本構(gòu)建SVM模型預(yù)測單方造價(jià),模型樣本分為訓(xùn)練集和測試集。為了避免數(shù)據(jù)出現(xiàn)過擬合與欠擬合問題,本研究選取其中127條數(shù)據(jù)(占比79%) 為訓(xùn)練集,33條數(shù)據(jù)(占比21%)為測試集[3]。
如前所述,特征選取和模型訓(xùn)練是一個(gè)反復(fù)試錯(cuò)的過程,筆者通過梳理住宅工程造價(jià)的影響因素,結(jié)合文獻(xiàn)調(diào)研[4-8],經(jīng)過反復(fù)試算,確定了住宅工程造價(jià)預(yù)測的特征指標(biāo),包括:工期、建筑外形、地上建筑面積、地下建筑面積、總建筑面積、檐高、結(jié)構(gòu)類型、地上層數(shù)、地下層數(shù)、總層數(shù)、地上平均層高、地下平均層高、抗震烈度、是否有人防、基礎(chǔ)類型、裝修類別、三級(jí)鋼筋占比、外立面裝飾、室內(nèi)裝飾,共19個(gè)特征指標(biāo)作為SVM模型的輸入指標(biāo)。
根據(jù)特征變量的數(shù)據(jù)類型,特征指標(biāo)分為定性特征和定量特征,定性特征包括定類特征和定序特征兩種類型;定量特征也有連續(xù)性和離散性特征兩種類型;從統(tǒng)計(jì)分析角度,變量分為定類、定序、定距和定比4種類型。
基于特征變量的類型分析,以上特征指標(biāo)中,工期、地上建筑面積、地下建筑面積、總建筑面積、檐高、地上層數(shù)、地下層數(shù)、總層數(shù)、地上平均層高地下平均層高以及三級(jí)鋼筋占比等11個(gè)特征的原始數(shù)據(jù)是數(shù)值,可以看作連續(xù)型特征;結(jié)構(gòu)類型、建筑外形、基礎(chǔ)類型3個(gè)特征,如表1所示,則是具有排他性的定類特征;是否有人防、抗震烈度、裝修類別、外立面裝飾、室內(nèi)裝飾5個(gè)特征,如表2所示,對(duì)工程造價(jià)的影響在一定程度上存在一定的遞進(jìn)關(guān)系,因此可以看作定序特征。不同類型的特征指標(biāo)對(duì)工程造價(jià)的影響方式不同,應(yīng)該采取不同的量化編碼方式。
對(duì)于連續(xù)型特征指標(biāo),即本文中所提及的11個(gè)定量指標(biāo),由于單位不同,其特征值相差較大,甚至可能是不同的數(shù)量級(jí),如果不消除這種影響,很容易導(dǎo)致某些特征無法在模型得到應(yīng)有的表達(dá)效果,從而導(dǎo)致預(yù)測偏差。為了避免出現(xiàn)這種情況,需要對(duì)原始特征進(jìn)行無量綱化縮放,常用的方法有極差化與標(biāo)準(zhǔn)化。筆者采用極差標(biāo)準(zhǔn)化的特征縮放方式,對(duì)數(shù)據(jù)進(jìn)行處理。
Xi’=(Xi-Xmin)/(Xmax-Xmin)
(1)
定類特征和定序特征常用的編碼方式有兩種,一種是直接用自然數(shù)進(jìn)行編碼的常規(guī)編碼方式,另一種是獨(dú)熱指標(biāo)(One-Hot Encoding)方式。筆者分別采用了常規(guī)編碼方式,獨(dú)熱編碼方式和定類特征獨(dú)熱編碼、定序特征常規(guī)編碼的混合式編碼方式進(jìn)行SVM工程造價(jià)預(yù)測,發(fā)現(xiàn)混合式編碼即方便了定類特征用自然數(shù)編碼便于算法模型的定量計(jì)算,又考慮了定序特征對(duì)工程造價(jià)影響的遞進(jìn)關(guān)系,預(yù)測結(jié)果更加準(zhǔn)確,模型性能更加優(yōu)越。
2.2.1 常規(guī)編碼方式。通過特征值組合,將結(jié)構(gòu)類型、建筑外形、基礎(chǔ)類型、是否有人防、抗震烈度、裝修類別、外立。
面裝飾、室內(nèi)裝飾8個(gè)特征的特征值劃分成具有排他性的類別型指標(biāo),并對(duì)特征指標(biāo)直接用自然數(shù)依次排列編碼,并且在定序特征編碼中按照對(duì)工程造價(jià)的影響程度從小到大的順序進(jìn)行編碼,如表1和表2所示。這種編碼方式簡便易行,便于模型運(yùn)算,是常見的編碼方式。但由于“基礎(chǔ)類型”“結(jié)構(gòu)類型”“建筑外形”3個(gè)定類特征對(duì)工程造價(jià)的影響是多方面的,一般不存在明顯的遞進(jìn)關(guān)系,這種編碼方式相當(dāng)于給不同特征人為賦予了數(shù)量差異,在一定程度上對(duì)模型性能產(chǎn)生不利影響。
表1 定類特征編碼
表2 定序特征編碼
運(yùn)用Matlab[9]軟件測出該種編碼方式的預(yù)測結(jié)果,圖1為訓(xùn)練集單方造價(jià)預(yù)測結(jié)果,圖2為測試集單方造價(jià)預(yù)測結(jié)果。分析結(jié)果的精度(R2)和均方誤差(MSE)可知,訓(xùn)練集的預(yù)測結(jié)果精確度達(dá)到0.904 32,均方誤差達(dá)到0.006 738 2,但測試集的預(yù)測結(jié)果為0.825 22,均方誤差為0.006 952 1,精確度并不理想。
圖1 常規(guī)編碼SVM訓(xùn)練集單方造價(jià)預(yù)測結(jié)果
圖2 常規(guī)編碼SVM測試集單方造價(jià)預(yù)測結(jié)果
2.2.2 獨(dú)熱指標(biāo)(One-Hot Encoding)編碼方式。又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來對(duì)N個(gè)狀態(tài)進(jìn)行編碼,每個(gè)狀態(tài)都有它獨(dú)立的寄存器位,并且在任意時(shí)候,其中只有一位有效。即,只有一位是1,其余都是零值??梢赃@樣理解,對(duì)于每一個(gè)特征,如果它有N個(gè)可能值,那么經(jīng)過獨(dú)熱編碼后,就變成了N個(gè)二元特征。
以“建筑外形”為例,有“塔式”“板式”和“異形”3個(gè)特征值,因此有3位狀態(tài)編碼,根據(jù)獨(dú)熱編碼的編碼規(guī)則,“塔式”編碼為100,“板式”為010,“異形”為001??梢岳斫鉃椤敖ㄖ庑巍边@個(gè)特征變成了“是否塔式”“是否板式”“是否異形”3個(gè)二元特征。
如果對(duì)上述8個(gè)特征按照獨(dú)熱編碼方式編碼,特征指標(biāo)將會(huì)由原來的19個(gè)增加至42個(gè),使計(jì)算維度大幅度增加。
經(jīng)測試,訓(xùn)練集預(yù)測精確度為0.780 5,均方誤差為0.0136 93,如圖3所示;測試集預(yù)測精確度為0.599 76,均方誤差為0.0163 59,如圖4所示,結(jié)果均不理想。
圖3 獨(dú)熱編碼SVM訓(xùn)練集單方造價(jià)預(yù)測結(jié)果
圖4 獨(dú)熱編碼SVM測試集單方造價(jià)預(yù)測結(jié)果
2.2.3 混合指標(biāo)編碼方式。為了避免單純使用獨(dú)熱編碼方式出現(xiàn)維度詛咒的問題,同時(shí)考慮定序特征對(duì)工程造價(jià)影響的遞進(jìn)關(guān)系,對(duì)“是否有人防”“抗震烈度”“裝修類別”“外立面裝飾”“室內(nèi)裝飾”5個(gè)定序特征,仍然采用按照對(duì)工程造價(jià)的影響程度從小到大的順序用自然數(shù)進(jìn)行編碼的常規(guī)編碼方式;對(duì)“結(jié)構(gòu)類型”“建筑外形”和“基礎(chǔ)類型”3個(gè)定類特征,采用獨(dú)熱編碼方式,如表3所示。
表3 混合指標(biāo)編碼
以上3種編碼方式的預(yù)測結(jié)果,如表4所示,混合編碼方式訓(xùn)練集和測試集預(yù)測精度均在85%以上,是較為理想的預(yù)測結(jié)果,故在基于SVM算法的工程造價(jià)預(yù)測中,根據(jù)特征的類型和對(duì)工程造價(jià)的影響方式,采用不同的編碼方式更為可行。
表4 結(jié)果對(duì)比
圖5 混合編碼SVM訓(xùn)練集單方造價(jià)預(yù)測結(jié)果
圖6 混合編碼SVM測試集單方造價(jià)預(yù)測結(jié)果
本文通過分析住宅工程的特征指標(biāo)對(duì)工程造價(jià)的影響方式,對(duì)特征指標(biāo)進(jìn)行分類,提出了針對(duì)不同類型特征,進(jìn)行不同方式的量化和編碼的基本思路,對(duì)連續(xù)型特征采用特征縮放的方式,進(jìn)行歸一化處理是常用的方式;對(duì)類別型特征,采用獨(dú)熱編碼的方式,可以消除自然數(shù)編碼人為給特征賦予數(shù)量差異的問題,但同時(shí)會(huì)增加模型算法的計(jì)算維度,導(dǎo)致精度下降。因此,對(duì)類別型特征進(jìn)一步細(xì)分為定類特征和定序特征,定類特征對(duì)工程造價(jià)的影響是復(fù)雜多元的,各特征值與工程造價(jià)的影響沒有明顯的相關(guān)關(guān)系,因此采用獨(dú)熱編碼,比較合理,如基礎(chǔ)類型、結(jié)構(gòu)類型和建筑外形3個(gè)特征;但有些類別型特征,如“是否有人防”“抗震烈度”“裝修類別”“外立面裝飾”“室內(nèi)裝飾”等,其特征值與工程造價(jià)存在一定的相關(guān)關(guān)系,因此,按照對(duì)工程造價(jià)的影響程度,按照自然數(shù)從小到大的順序進(jìn)行常規(guī)編碼量化,是合理的。
因此,在利用SVM等數(shù)據(jù)挖掘算法進(jìn)行工程造價(jià)預(yù)測中,深入分析特征指標(biāo)對(duì)工程造價(jià)的影響方式和影響程度,采用不同的編碼方式,可以獲得較好的預(yù)測結(jié)果。