大数据背景下工程造价数据挖掘问题研究
2021-06-10侯红孟辉
侯红 孟辉
摘要:随着网络信息技术的飞速发展,大数据时代已经到来,并渗透到各个领域中,针对具体专业领域的大数据应用研究也越来越多。然而对于工程造价领域来说,在这个方面却一直是个空白。文章从建筑企业在工程单价选取和估算的角度出发,梳理总结了面向工程造价数据特点的数据挖掘过程,并提出了基于聚类算法对工程造价数据进行分析处理的方法,为海量工程造价数据挖掘研究提供了有意义的探索。
关键词:工程造价;数据挖掘;聚类法
中图分类号: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结语
大数据背景下的工程造价数据挖掘工作,因不同的使用目的,需采用不同的数据分析和挖掘方法。文章从建筑企业在工程单价选取和估算的角度出发,梳理总结了面向工程造价数据特点的数据挖掘过程,并提出了基于聚类算法对工程造价数据进行分析处理的方法,为海量的工程造价数据挖掘研究提供了有意义的探索。