一种基于XGBoost的地下综合管廊安全状况评估方法与流程

文档序号:22967727发布日期:2020-11-19 21:42阅读:123来源:国知局
一种基于XGBoost的地下综合管廊安全状况评估方法与流程
本发明涉及地下综合管廊安全领域,特别是涉及一种基于xgboost的地下综合管廊安全状况评估方法。
背景技术
:地下综合管廊作为城市生命线,集合多种管线设施,系统组成庞大复杂,有非常多潜在的安全风险隐患,发生机理复杂多变,安全事故影响大,安全保障是未来建设运营过程中不可忽视的问题。地下综合管廊在运行过程中产生的大量数据目前未被利用,导致管理资源浪费。地下综合管廊安全状况至关重要,与管廊内环境(co2浓度、温度、湿度、ch4浓度),管廊的运维状况(设备使用年限,设备的维修次数,设备的购买时间)等多种因素有关,但现阶段地下综合管廊的安全状况评估工作主观性过强而科学性不足。目前现在市面上很多用于商业的地下综合管廊安全设备运行状况的自动监测监控系统,主要也就是将用于进行工业安全监控的监测系统直接对其进行了一些设备的升级更新,直接将其设备套入地下一层综合管廊的工作环境,其中也就存在了很多的安全问题:(1)传统的分布式监控大多采用人工的管理模式,运行管理成本高,管理水平和质量得不到有效保证;(2)监测处理系统对于数据采集能力需求量大,易于造成信息数据传输过程拥堵,对于灾情的分析判断能力差;(3)管理监控视频和监控数据种类繁多,系统间存在信息孤岛的问题,给相关部门决策带来困难。技术实现要素:本发明目的在于针对上述不足之处,建立了针对地下综合管廊安全状况评估的模型,提供了一种基于xgboost的地下综合管廊安全状况评估方法。为了实现上述发明目的,本发明提供了以下技术方案:一种基于xgboost的地下综合管廊安全状况评估方法,步骤包括:s1,获取地下管廊的数据原始样本,所述数据原始样本包括人为因素数据、设备因素数据、环境因素数据;s2,对所述数据原始样本进行预处理,所述预处理包括缺失值处理和异常数据处理;s3,将预处理后的数据进行特征构建,得到特征构建后的数据集;s4,对特征构建后的数据集进行特征选择,特征选择之后的特征数据构成数据样本集;s5,将所述数据样本集输入预先训练好的xgboost算法模型,根据输出的结果确定地下管廊的安全状态。所述人为因素数据包括操作规范性、健康状况、对危险物的处理状况、管道及设备损伤程度。所述设备因素数据包括结合部分可靠程度、零件安全系数、设计合理性和设备环境适应性、设备安全装置、设备故障率、定期检查率、维护保养率。所述环境因素数据类型包括温度、湿度、水位、氧气浓度、硫化氢浓度、甲烷浓度、一氧化碳浓度。将所述数据原始样本分为类别特征数据和数值型特征数据,所述缺失值处理是指:缺失的数值型特征使用均值填充,缺失的类别特征使用众数填充。所述异常数据处理是指,使用孤立森林异常值检测算法识别出所述数据原始样本中的异常值,并删除所述异常值。所述特征构建包括以下步骤:a、对所述类别特征数据进行数值转换;b、对所述数值型特征数据进行分箱操作,并进行特征组合。步骤s4中,采用filter算法对特征值数据集进行特征选择,得到数据样本集。步骤还包括:采用贝叶斯优化的算法获取所述xgboost算法模型的超参数,所述超参数用于优化所述xgboost算法模型。一种基于xgboost的地下综合管廊安全状况评估系统,包括至少一个处理器,以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法。与现有技术相比,本发明的有益效果:(1)建立了基于孤立森林模型的地下综合管廊安全状况评估方法,采集的地下管廊的相关数据后,经过预处理,对缺失的数值特征使用均值填充,对缺失的类别特征使用众数填充;预处理后,构建了组合特征和描述性特征,再对数值型特征数据进行分箱处理特征选择,最后,将上述数据经过特征选择后输出到xgboost算法模型,进行训练或实测,完成数据的分析,以确定地下管廊各部分的为安全状态或不安全状态。本发明的上述方法,针对地下管廊的特点,对收集的数据进行了预处理,并采用机器学习的方法,使得对地下综合管廊的安全数据的判断更加准确和智能,提高了管理的效率,降低了管理成本。(2)本发明的方法,对采集到的数据进行了缺失值的填充,对类别特征进行了交叉组合构建,使得提取的特征数据更加精细,因此,在地下综合管廊安全数据的评估上表现很高的准确性,其中auc值能达到95.99%,f1-score能达到91.53%。(3)管理监控视频和监控数据种类繁多,系统间存在信息孤岛的问题,给相关部门决策带来困难。本发明的方法将地下管廊各部分的数据统一进行了预处理,实现了系统各部分数据的融合,数据能宏观的展示出地下管廊的环境情况,并且所有的数据然后直接传入模型,模型经过大量数据的训练得到,因此在实测时,准确度较高,不仅实现了种类繁多的数据的统一处理,而且解决了系统间存在信息孤岛的问题,并且使用模型就得出是否安全的状态,得出的结果可以给相关部门决策提供数据支撑和理论依据。附图说明:图1为本发明一种基于xgboost的地下综合管廊安全状况评估方法的流程图。具体实施方式下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本
发明内容所实现的技术均属于本发明的范围。实施例1一种基于xgboost的地下综合管廊安全状况评估方法,流程图如图1所示,步骤包括:s1,获取数据样本。获取地下综合管廊内的数据样本,数据包括由人为因素数据、设备因素数据、环境因素数据,相关数据如表1-3所示。并根据数据管廊内的安全状况确定正负例样本,安全状态下的数据为正样本,不安全状态下的数据为负样本。表1人为因素数据类型和相应的结果表2设备因素数据类型和相应的结果表3环境因素数据类型和相应的结果s2,数据的预处理。数据的预处理包含缺失值处理、异常数据处理。1.缺失值处理是指使用含有缺失值的特征列的均值、众数进行填充,缺失的数值特征使用均值填充,缺失的类别特征使用众数填充。数值特征包括温度值、湿度值、水位值、氧气浓度值、硫化氢浓度值、甲烷浓度值、一氧化碳浓度值等,求出平均值之后,对于缺失的数据,采用平均值填充。类别特征数据包括操作规范性、健康状况、对危险物的处理状况、管道及设备损伤程度、结合部分可靠程度、零件安全系数、设计合理性和设备环境适应性等,确定出数据中出现次数最多的数值(即为众数),采用该数据对缺失的数据进行填充。对缺失值处理的处理不限于采用均值或众数填充。2.异常数据进行处理:使用孤立森林异常值检测算法识别出异常值,并删除。a)孤立森林(isolationforest)是由刘飞等人在2008年提出异常检测方法,是一种广泛适用于连续数据的无监督异常检测方法。它不需要依赖任何对距离或群体密度的测量,从而大大消除了对距离和群体密度测量方法的复杂性和计算的成本。在孤立森林中,异常被明确地定义是因为“容易被孤立的离群点”,即那些分布稀疏且离群体密度高的离群体较远的独立离群点。这些群体分布稀疏的独立离群点所在区域通常可以明确认为是发生在该离群点区域的异常概率相对较低,因而可以认为这些发生在该区域内的数据都是异常的。孤立森林异常在使用时具有恒定非线性的时间复杂度、恒定的训练时间和空间的复杂度,其扩展的能力强,能够快速处理大量数据和多维数据问题,在工业界应用广泛。b)孤立森林算法是一种无监督学习算法,通常主要用于异常数据和值的检测。理解孤立森林(以下简称iforest)前需要先理解孤立树(以下简称itree),itree孤立树是一种随机二叉树,每个节点都有左子树和一个右子树,或者有两个子属性和节点,或者没有一个子节点。在为多维的数据集d设计itree时,首先需要选择每一个数据的属性值小于a和a的数据属性值和值v,然后按照数据属性a的值对每一个数据集中的每一个数据的属性值进行了分类,将字数小于a和v的属性值分别放在数据左子树上,将字数大于v的属性值和字数放在右子树中的字数上。最后根据上述规则不断递归构造子树,直到树的高度达到阈值或者数据集只剩下一个样本或多个同一类的样本时停止构造。c)itree构造完成后可以对数据进行预测,数据从itree根节点开始搜索,直到该数据落到叶子节点上。假设从根节点到叶子节点的路径长度为h(x),由于异常值比较稀疏,比较桸疏,在itree中很快会被分到叶子节点上,所以其h(x)会很短。因此可以用h(x)来判断某数据是否为异常值,判断前对路径长度h(x)进行归一化处理,使所有样本指标处于同一数量级,方便综合评价和比较。一个包含n个样本的数据集,树的平均路径长度c(n)为:d)其中h(i)为调和数,该值可以估计为ln(i)+0.5712156(欧拉马斯刻若尼常数)。c(n)为给定样本个数后的平均路径长度,用来归一化样本的路径长度e(h(x))是样本x在所有itree平均高度值。样本x的异常分数定义为:e)由式(2)可以看出,当e(h(x))趋近于c(n)时,异常得分趋近于0.5,此时不能确定该样本是否是异常。当e(h(x))趋近于0时,异常得分值趋近于1,此时样本被判定为异常点。当e(h(x))趋近于n-1时,异常得分值趋近于0,此时样本被判定为正常,由于生成的树是随机选择属性,所以最终得到的随机树是不稳定的,具有很大的随机性。但是如果结合多棵itree形成forest结果就会更准确和稳定。构建iforest时,随机采样一部分数据集来构建一个新的itree,保证不同的itree具有差异性。另外,如果数据集过大,异常值较多形成密集的区域会被判定为正常值所以在每棵树构建时需要限制随机采样数据集的大小。iforest构建完成之后使用式(2)计算样本的异常分数,删除异常分数相应的异常数据。s3,特征构建。根据特征值的类型,将特征分为类别特征和数值型特征。类别特征:比如管道及设备损伤程度这个特征,其特征值包含无损伤、轻微损伤、中度损伤、严重损伤等。这种非数值型的数据是不能够直接放入模型中的,需要将其转换为数值型的数据,才能够被计算机识别。这类特征的特征值个数一般是有限的,可以一一枚举出来,因此这类特征也可以叫做离散特征。如果一个特征的特征值的集合为[1,2,3,4],这类特征可以看成是由非数值型的特征编码之后得来的,因此也归为类别特征。数值特征:本方案中,数值特征包括温度、湿度、水位、氧气浓度、硫化氢浓度、甲烷浓度和一氧化碳浓度等,比如温度这个特征,其特征值是用一个区间表示,可以取这个区间中的任何值,因此是无限的,这类特征也可以叫做连续型特征。特征构建包括以下步骤:步骤一:对于类别特征数据,对其进行数值转换;常见的类别特征处理的方式有one-hot编码、均值编码、labelencoding编码等。本发明的方法采用one-hot编码。one-hot编码是分类变量作为二进制向量的表示,首先将分类值映射到整数值,然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。比如;["无损伤","轻微损伤","中度损伤","轻微损伤"]对应的二进制编码分别为[[1,0,0],[0,1,0],[0,0,1],[0,1,0]],对采集数据中的其他类别特征例如:操作规范性、健康状况、对危险物的处理状况、结合部分可靠程度、零件安全系数、设计合理性和维护方便性等也做数值转换处理,为后续的特征选择做准备。步骤二:对连续型特征(数值型特征)进行特征组合。具体步骤为:1、使用统计学方法进行特征值扩展。这里的扩展是指,除了采集的数据本身以外,在样本中增加新的描述性特征值,新的描述性特征值是基于采集数据计算得出的,例如,对采集的数值型特征值进行计数、求最大值、求方差、求均值、求偏度、求和等计算,就生成了新的描述性特征值,数据样本更加丰富。对温度、湿度、水位、氧气浓度、硫化氢浓度、甲烷浓度和一氧化碳浓度等数值特征均进行特征组合,以下以温度数据为例详细说明对数值型特征进行特征组合和分箱操作的过程。举个例子如表4所示,电力舱有三个温度传感器和三个湿度传感器,可以对电力舱的三个温度传感器的值求平均,因而得到了电力舱温度新的特征值,平均温度值,增加了电力舱温度值的样本数量。同理,燃气舱和热力舱都可以做这样的处理。则可以求得三个舱室的平均温湿度如表5所示。表4电力舱、燃气舱、热力舱传感器检测的温度湿度值表5电力舱、燃气舱、热力舱平均温度和平均湿度温度湿度电力舱1947燃气舱2046热力舱21452、还可以对同一个舱室的特征进行逻辑运算生成组合特征地下综合管廊包含多种舱室:电力舱,燃气舱,给排水舱等,同一个舱室的同种特征可以进行逻辑运算生成新的特征,生成的新的特征,反应了舱室的变化趋势或状态,比如温度特征可以先根据舱室进行分组,再求最大温度与最小温度的差值生成新的组合特征。生成的新的描述性特征和组合特征增加了数据维度,生成的新的组合特征数据能够反映出地下综合管廊的隐藏信息。对类别特征数据进行数值转换,并且对数值型特征进行特征组合后,就可以将数据样本进行模型训练,或者将数据样本输入模型进行实测。然而,数据样本增大,虽然能提高分析的准确性,但是数据量增加了,影响了处理效率,因此还要进行分箱操作。分箱操作包括对类别特征数据进行分箱操作和对数值型特征进行分箱操作。s4,分箱操作,对连续特征进行分箱操作。对连续特征进行分箱操作是,获取数据样本中某一类型的所有数据;找到其取值范围区间(可理解成最小值和最大值构成的范围区间)将该取值范围区间按照分箱的个数,求平均值,以平均值将取值范围区间等分成n个分箱,相应地,就得到了每个分箱的取值范围,对于数据样本中该类型的一个数据,根据分箱的取值范围,确定其属于哪个分箱,因而将其赋值为该分箱的特征值。举例说明:比如同一舱室的温度范围是[20-35],需要将该温度范围分成三个分箱,因此,平均值为(35-20)/3=5,分箱之后第一个分箱的取值范围是[20-25),第二个分箱的取值范围是[25-30),第三个分箱的取值范围是[30-35],其中温度在[20-25)的分箱之后的特征值设为1,[25-30)设为2,[30-35]设为3,如果某一个温度值为26.5482,则该温度值落入了第二个分箱的取值范围,因此,将该温度值转换为2,分箱操作,使得取值接近的数值,进行了归类处理。分箱操作不限于温度这个特征。分箱的个数与分类的密度有关,当分箱个数越少,则分类的种类越少,数据进行了较大范围的近似处理,减少了计算量。当分箱个数增加,相应的分类的增多,数据进行了较小范围的近似处理,计算量虽然减小,但是减小层度较低。根据数据分析的需求,可以进行分箱操作的设计,兼顾数据的信息量和计算量。s5,特征选择。特征选择的目的在于减少特征数量、降维,使模型泛化能力更强,减少过拟合,减少模型训练的时间,减少模型的复杂度,提升模型的效果。本发明使用filter进行特征选择。采用filter进行特征选择:其中的一种filter过滤操作为:对每一维特征“打分”,即给每一维的特征赋予权重,这样的权重就代表着该特征的重要性,然后依据权重排序。先进行特征选择,然后去训练学习器,所以特征选择的过程与学习器无关。相当于先对特征进行过滤操作,然后用特征子集来训练分类器。一种具体的实施方式是采用方差过滤,通过特征本身的方差来筛选特征的类,比如一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,可能特征中的大多数值都一样,甚至整个特征的取值都相同,那这个特征对于样本区分没有什么作用,所以无论接下来特征工程要做什么,都要优先消除方差为0的特征。如果方差阈值为thresheold,则舍弃所有方差小于thresheold的特征,也即是删除所有记录都相同的特征。从表7可以看出,训练集原始特征数据维度为(6700,48),经过构建特征扩展后,训练集的数据维度增大到(6700,256),数据维度增大,采用filter特征选择过滤后,训练集的数据维度减小到(6700,106)。构造的特征对模型效果的影响如表6所示。虽然训练的算法不同,但是构造特征(特征构建)后,消耗时间增加,占用内存增大,auc和f1-score两种评价指标都显著提升。表6构建特征前后的分类效果表7特征工程处理前后的特征大小表8使用filter进行特征选择前后的分类效果使用filter进行特征选择前后的分类效果对比可以看出,使用filter进行特征选择后,消耗时间和占用内存大幅度下降,auc和f1-score的auc和f1-score两种评价指标都显著提升。因此,通过特征构建、分箱和特征选择,对数据进行了特征工程处理,提高了数据处理的效率,在一定程度上提升了模型的效果。s6,模型训练。首先,进行数据集划分。对特征选择处理之后数据样本进行划分,获取训练集与测试集;若原始的数据集为一张表10000个样本,若干个特征,每一个样本有一个标签,表示该样本是正例还是负例。在数据训练之前需要对数据进行一个切分(训练集:测试集=7:3),分为训练集6700条数据和测试集3300条数据,训练集包括样本及其标记用来进行模型训练,测试集包括样本及其标记,用来对模型进行验证。其次,进行模型训练。将特征选择后的特征变量作为输入变量,采用xgboost算法构建xgboost模型,并利用xgboost算法进行模型训练。xgboost是extremegradientboosting的英文简称,是boosting算法的其中一种,该算法的基本设计和思想是通过整合许多弱的学习分类器以及算法来形成一个强大的学习分类器,让所有使用该分类器算法进行学习可以同时训练多次,每次的分类器算法训练的类型和数据集从原始的分类器算法训练的类型和数据集中随机自动抽取,生成n个分类器训练样本,训练数据集完成预测后会获得一个用于预测分类问题函数,最终的每一个预测函数使用了投票的方式对原始分类问题进行了分类,使用简单平均的方法对每一个回归分类问题的新训练样本类型进行预测。xgboost是一种提升树模型,它将许多基模型融合,然后以形成一个效果最好的分类器,xgboost算法的基模型可以自定义,一般使用的是cart树。xgboost目标函数定义为:模型目标函数由两部分构成,第一个主要的部分是叶结点的损失函数,另一部分则被认为是叶子节点的正则化项。k表示叶结点的数量,正则项可以控制叶节点的得分不会太大,防止过拟合,f(x)为其中一颗回归树。对于xgboost模型来说,新一次生成的树模型要能准确地拟合上一次生成所预测的模型残差,即当生成t棵树时,预测分数可以写为:此时目标函数为:xgboost在对损失函数进行了泰勒二阶展开为:其中,gi为一阶导数,hi为二阶导数:式中就是将每个叶子样本的结点损失函数的值加在一起,由于每个叶子样本最终的损失都会落到一个叶子的结点中,因此可以将所有同一个与叶子相同结点的样本都重组起来,通过改写式(9),可将目标函数写成关于叶结点得分ω的一个一元二次函数,此时即可很简单的求解最优的ω和目标函数值。因此,最优的ω和目标函数公式为:xgboost需要调整的主要参数见下表11:表11xgboost需要调整的主要参数作为本发明的具体实施例,将10000个数据样本构成数据集(每个样本包含56个特征值),并将数据集分为6700条训练集和3300条验证集,将6700条数据的特征值和人为预先设置的label一起输入模型,对模型进行训练,得到训练好的模型;将3300条验证集数据输入训练好的模型中,输出label值,通过对比label值和原始验证集数据,对输出的label值进行打分,打分高,说明模型训练得越好,设置一个打分阈值,如果验证时,分数高于该打分阈值,则模型训练完毕,否则继续进行模型训练。实测时,将实时采集的每一条状态数据(包含56个特征值)输入到已经训练好的模型中,输出该条数据对应的label值,如果结果是0时,表示地下管廊是安全的,结果是1时,认为是不安全。s5,模型的优化。为了让模型表现显示出更好的性能和效果,需要快速寻找其中一组最优的超参数,超参数的寻找和调优十分繁琐但是又十分重要,通常通过使用手动的调优超参数的方法,首先确定超参数模型的大致性能和效果,然后通过使用网格搜索以及随机搜索两种方法来快速寻找,获取更好的一个模型作为超参数,但是网格搜索通常往往需要大量的空间去运行,浪费了大量的精力和时间去进行评估搜索的空间,并不能准确的快速寻找能够达到最优点的类型和区域,因此使用贝叶斯算法对模型的最小值进行了优化,贝叶斯优化的算法是一种基于贝叶斯模型的算法,用于准确寻找模型函数最小值的优化方法。贝叶斯优化算法主要分三个步骤:(1)选择一个先验函数来表达关于被优化函数的假设。(2)通过极大似然参数估计对于边际似然参数分布的最大化得到的最优化结果就是超参数。(3)根据得到的优化超参数能够得到具体的采集函数。然后选择采集函数用来从后验模型构造一个效用函数,来确定下一个采样点。采集函数可以在具有低建模目标函数的点上对采样进行平衡,并对尚未采样区进行搜索。当xgboost算法使用贝叶斯算法调参之后,得到的模型效果最好,最终获得的xgboost算法最优的超参数如表12所示。表12贝叶斯算法选取的xgboost模型的最优参数使用dt、lr、nc、svm、gbdt与xgboost算法构建模型后,使用贝叶斯算法优化前后模型的分类结果如表13所示。表13使用贝叶斯算法优化前后的分类效果此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1