侯紅 孟輝



摘要:隨著網絡信息技術的飛速發展,大數據時代已經到來,并滲透到各個領域中,針對具體專業領域的大數據應用研究也越來越多。然而對于工程造價領域來說,在這個方面卻一直是個空白。文章從建筑企業在工程單價選取和估算的角度出發,梳理總結了面向工程造價數據特點的數據挖掘過程,并提出了基于聚類算法對工程造價數據進行分析處理的方法,為海量工程造價數據挖掘研究提供了有意義的探索。
關鍵詞:工程造價;數據挖掘;聚類法
中圖分類號:TU723.3 文獻標識碼:A 文章編號:1001—5922(2021)01—0151—05
近些年來,隨著網絡信息技術的飛速發展,大數據時代已經到來,并滲透到眾多領域中,針對具體專業領域的大數據應用研究也越來越多。然而對于工程造價領域來說,這個方面卻一直是個空白,每天,借助互聯網以及各種工程造價系統產生著海量的工程造價數據,但是卻沒有科學準確的處理方法對其進行處理,使其白白流失掉,工程造價信息的獲取和傳遞仍然依靠傳統的方式進行,時效性和準確性都無法滿足當今工程管理領域的需求。而要對這些龐大的工程造價信息數據進行處理和挖掘,為工程管理過程的決策提供依據和參考,僅僅依靠人工的處理技術是遠遠不夠的,要創新應用數據挖掘技術來充分利用工程造價海量數據的價值,以促進行業快速健康發展。
1大數據背景下工程造價數據分析
1.1工程造價數據
工程造價數據是指具體的工程項目在建設過程中用到的涉及人力、材料、機械等相關單價數據。這類數據對進行科學準確的工程造價管理,尤其是成本控制,起著決定性的作用。一般情況下,在實際的工程造價管理中,首先需要獲取具體的工程造價數據信息,獲取的方式有2種:①借助一些權威的造價信息平臺發布的數據,當前較為權威的平臺有全國各地的工程造價站、專業的工程造價信息網等;②實地調查,通過實地走訪當地的市場完成數據的采集和獲取,在獲取原始信息之后對其進行相應的整合和處理,在其中選取可信度較高的數據信息。對于這兩種方法來說,第一種的獲取方式一般比較常用,因其成本低、且數據來源的可靠性相對也在可以接受的范圍之內,因此,為大多數企業和科研院所廣泛采用。在本文研究的過程中也主要采取此種方式為主要的數據獲取方式,采取這樣的方式獲取工程造價數據,可能出現由于數據提供機構的不同、采集方式和參考標準的不同而導致不同數據來源對于相同物料的單價不盡相同,且通過這種方式采集到的數據變化頻繁,更新周期呈現出越來越短的趨勢,需要我們通過數據挖掘算法對采集到的原始樣本數據進行分析和處理,輔助我們找到獲取最準確數據的方法。
1.2數據本身的特征
工程造價數據因為其本身應用領域和使用方式的不同,也呈現出區別于通用大數據的特點,具體說來,主要是:
1)數據類型多樣。工程造價數據既包括動態變化的數據,比如工料和人力的價格,同時也包括一些所謂的靜態數據,主要有國家以及各地關于工程造價方面的政策文件、規章制度、標準規范等,這些數據的變化相對來說具有一定的周期性,且一般變動周期較長,在本文中我們主要研究動態數據,但是在實際的工程造價管理過程中,靜態數據也是關注的重點。
2)表現形式多樣。來源于不同的數據平臺和信息系統,工程造價的數據表現形式也不盡相同,這里的表現形式多樣體現為2個不同的方面:①呈現形式包含文字、圖表、數據等,②同一種形式也因為呈現平臺和提供方的不同而具有不同的格式,比如大多數的工程造價信息平臺雖然提供了數字形式的工程造價信息導出功能,但是輸出的表格形式也不盡相同,在使用過程中還是需要先進行相應的變換和整合。
3)動態變化性。工程造價數據因為受到市場復雜因素的影響,其數據一直處于不斷的變化中,不同平臺和系統也因為不同的采樣和更新周期將其離散化,但是數據本身變化的動態性是一直存在的。
4)多維復雜性。工程造價數據來源不同,形式多樣,表現形式也呈現出不同的樣式,加之變化頻繁,構成的過程也呈現出一定的復雜性,以上因素都直接導致了工程造價數據的多維復雜性。
1.3工程造價數據挖掘的流程
基于數據挖掘的基本流程,筆者提出了工程造價數據挖掘的基本流程及框架,如圖1所示。
工程造價數據的處理和挖掘主要經歷4個過程:數據獲取和記錄、數據抽取和清洗、數據建模和分析、數據解釋。
數據獲取和記錄:數據獲取和記錄的過程是數據挖掘過程的基礎,數據獲取的過程是否可靠是直接關系到數據挖掘算法后續所有步驟和結果準確性的關鍵,這個過程的主要工作為解決數據的來源問題,包括數據獲取和數據存儲2個主要過程。
數據抽取和清洗:采集來的數據是不可以直接用來進行分析和挖掘的,需要對數據進行抽取和清洗,以形成適合數據分析的數據結構和模板,而且通過自動化系統抽取的樣本數據會存在數據缺失、數據錯誤等所謂的“噪點”,在準確性和可用性上都比較差,這個過程主要是解決這個問題。
數據建模和分析:這是數據挖掘的關鍵環節,筆者在對樣本數據進行分析處理時,選擇了適用的數據挖掘算法,以輔助決策者進行決策。
數據解釋:在數據分析完成之后,距離真正為用戶所用還差最后的一步,即數據解釋。數據解釋是根據數據處理和挖掘的目的,對模型結果進行展示和分析,通過可視化技術等從用戶使用的角度對預測結果進行展示,以便于用戶使用分析結果來指導實踐。
2工程造價數據獲取及清洗
2.1工程造價數據獲取
基于大數據背景下獲取工程造價數據的途徑有2種:
1)在平臺內部采集,內部采集一般有兩種方式,①構建統一的工程造價信息數據采集模板,對平臺中的相關數據按照自定義的統一規范進行采集和導人,從而直接將目標造價數據信息轉換并存儲在本地數據庫中備用。②方法是在相關的造價信息平臺上設置符合一定規范的字段,從中采集相同字段的信息,并存儲至本地數據庫。2)在平臺外部完成采集工作,具體的方法和原理如下:通過相應的平臺接口,創建統一的數據交換格式,平臺內外部相關業務實現信息交換。
2.2工程造價數據清洗及預處理
工程造價海量數據通過自動化采集過程得來,可能存在以下3類問題:①數據不完整,比如采集的數據有缺失,或者屬性不全;②數據含有噪點,所謂的噪點是指因為采集過程的工具或者技術的原因對造成系統的某些數據明顯錯誤;③數據格式不一致,同一項數據可能因為來源的不同而導致其表現形式和格式也不盡相同,這不適合進行數據分析和處理,針對上述的3種情況,本文采用以下方法進行數據預處理:
1)數據不完整的處理方法:對于數據項出現缺失的情況,通常可以采用人工填寫、舍棄元組、常量填充和中心度量值填充等方法,對于本文研究的工程造價數據來說,人工填寫太過繁瑣,且在數據樣本大的情況下可操作性不強,常量填充的話也會導致一定程度上的數據失真,對于本文選用的數據挖掘算法來說不適用,因此本文主要選取舍棄元組和中心度量值填充兩種方法相結合的方式進行,具體做法如下:①舍棄元組:當出現缺失值的元組缺失相應值的項數量超過所有樣本數量的40%以上時,則舍棄該元組,也就是在計算的過程中不考慮該因素;②中心度量值填充:當元組可用,對缺失數據需要進行填充處理的時候,選用中心度量值的方法進行填充,具體原理是:Vi=(Vi+n-vi-n)/2n。其中,i>0,0
2)噪點數據的處理方法:噪點數據的處理一般有兩種常見的方法,①分箱平滑的方法,該方法的原理是利用噪點附近的數據對其值進行一個矯正;②方法是回歸的方法,一般適用于屬性隨著序列連續變化有跡可循的情況。
本文研究的工程造價數據,根據其采集方式和價格變化趨勢的形式,我們一般采用分箱的方法對其進行處理,而在進行處理之前,首先要解決其檢測的問題,對于噪點數據的檢測,由于造價數據的變化主要是根據市場經濟總體變化而變化的,從時間序列上來看,是連續變化的,而且在很大程度上受總體經濟發展的影響,一般不會出現大的波動和變化,我們將造價數據的年度變化閾值范圍百分百比設置為20%,在采樣區間范圍內,將超出平均值20%的數據點視為噪點,計算回歸曲線,并對其值進行重新解算和修正。
3)數據格式不一致問題的處理方法:處理數據格式不一致的問題,常用的方法是建立通用的數據采集模板,依據通用的數據模板進行采集,保證數據獲取的格式一致性。根據本文數據分析的需求和特點,建立數據采集模板如表1,表2所示:
3基于MapReduee平臺的工程造價數據分析
由于材料費占工程造價比重較大,通常約為60%~70%,材料價格對具體的決算結果和決策有較大的影響。因此,本文選用材料價格作為研究對象,在研究過程中重點突出材料價格數據在相關的工程造價指數預測、工程價格信息分析以及投資估算領域的具體運用。由于工程造價大數據動態、海量、多源、異構等特點,因此我們選用K-means聚類算法進行具體的解算,解算的過程主要借助Hadoop技術進行實現。
3.1Hadoop技術和MapReduce平臺
Hadoop是當前大數據環境下的主流數據處理技術,由Apache公司推出,具有可靠性高、容錯性好等優點。其總體架構如下圖所示。
Hadoop集群的核心是HDFS(Hadoop分布式文件系統)以及MapReduce。Hadoop集群上HDFS通過分布式的方式實現其大數據存儲,在性能上具有較好的伸縮性以及較高容錯性。MapReduce主要負責大數據的行處理任務。在具體的Hadoop集群運行處理過程中,HDFS首先對文件進行讀寫操作,而后由MapReduce負責利用HDFS上的存儲文件和數據進行相應的分布式計算。大量測試結果表明,雖然在數據量規模較小的情況下,MapReduce的運行效率低于單機串行的運行,但在數據規模增大的過程中,單機串行的運行方式會很容易出現內存溢出情況,而此時MapReduce框架卻表現出較好的性能,與傳統的單機串行運行相比,MapReduce更擅長處理較大規模的數據,因此在本文的研究中選用依托MapReduce框架進行數據的分析處理。
3.2基于MapReduce的K-means算法
聚類算法是無監督學習算法,與傳統的樸素貝葉斯、回歸算法需要提前給出分類標簽相比,聚類算法在運算的過程中不必提前指定分類標簽。K-means在聚類算法中應用較廣,它具有簡單易行的優點,特別擅長處理大規模數據。本文選用K-means算法,依托MapReduce框架下,分析復雜性、節點數以及數據規模等因素,而后提出它們之間的關系以及影響性能的因素,借此來提高數據處理的效率。
K-means算法解算的具體原理:通過算法對樣本進行分類解算,測算出不同分類的距離,并迭代找到距離最近的點和分類,迭代往復直到找到最優解。基于MapReduce框架的K-means算法運算過程可以歸納為以下步驟:
首先選取隨機抽取的樣本M個,以每一個樣本數據作為一個中心點,也就是剛開始中心點的個數為M,把中心點以集合的形式存放到一個文件,而后以其作為全局變量由Hadoop平臺的HDFS系統來進行讀寫。再對關鍵的3個函數(Map、Combine、Reduce)進行依次求解,迭代解出最優解,具體的解算過程如下所示:
1)Map函數解算:Map函數的處理可以用來表示,以其作為MapReduce進行數據處理的初始格式。其中的key代表當前樣本數據與初始數據的距離的偏離量;而與之相對應的value則代表著當前樣本數據的坐標,通常將這個多維坐標通過字符串的形式來表示。處理Map函數的過程中,關鍵是要解析提取value的值,具體的解算方法是求解出初始中心點M分別與各個維度數據的距離值,并對距離最近的聚類數據進行標記,進而輸出。Key代表聚類下標,value代表對應的多維坐標值。
在解算過程中,為了減少過程處理數據量,提高解算效率和通信效率,K-means算法設計在Map函數解算完成,還需要完成—個Combine操作,該操作主要是合并Map函數結果數據。并將運行結果保存在本地,因此Combine操作只需要在本地完成相關操作即可。
2)Combine函數解算:在處理時首先要引人,其中的key代表聚類下標,v代表與key下標對應的相應聚類鏈表。首先提取能夠代表多維數據坐標的對應的字符串序列,并將其進行相加,從而得到樣本的從屬,輸出。此時的key為求解的聚類下標,value則由樣本總數、多維坐標值字符串兩組信息組成。
3)Reduce函數解算:在處理時首先要引入,key為聚類下標,V為Combine函數解算得到的中間結果。具體的函數處理過程:首先解析得到樣本的數量,解算得到對應節點的多維坐標總和,求和后求解其與樣本總個數的商作為新的坐標值。
3.3方法應用
下面我們對2019年12月3日陜西省當地20個供應商關于復合硅酸鹽水泥的報價進行聚類分析。
4)計算三個集合類中的數據元素分別距離各聚類中心的距離,繼續進行聚類分析,進而得出四個聚類集合。
5)綜合上面的計算結果,列出不同聚類中心的聚類數,如表4所示。
通過上述聚類算法解算的結果分析可知,x18點是所有的聚類中心中擁有最多聚類樣本數量的中心點,故相對于其他中心,該點更能反映市場的真實價格。以此為例,在工程造價預算和決算的實際應用中,我們可以通過本文研究提出的數據挖掘算法對材料的市場價格進行分析,通過分析解算結果,可以輔助相關人員準確掌握市場價格信息,也有利于審計人員及時判斷價格信息的真實性。
4結語
大數據背景下的工程造價數據挖掘工作,因不同的使用目的,需采用不同的數據分析和挖掘方法。文章從建筑企業在工程單價選取和估算的角度出發,梳理總結了面向工程造價數據特點的數據挖掘過程,并提出了基于聚類算法對工程造價數據進行分析處理的方法,為海量的工程造價數據挖掘研究提供了有意義的探索。