发明内容
为了解决上述问题,本发明的目的在于提供一种基于梯度提升树的输电线路山火风险等级预报方法。
本发明具体采用以下技术方案:
一种基于梯度提升树的输电线路山火风险等级预报方法,其特征在于,包括以下步骤:
步骤1:选取预报区域,将选择的预报区域按经纬度为基准单位划分为预定大小的空间网格;
步骤2:采集该预报区域的每个空间网格内已核实的真实火点数量历史数据、历史气象数据、植被类型、卫星监测到的历史热源的月分布情况;
步骤3:根据步骤2中采集的真实火点数量历史数据,计算山火风险等级;
步骤4:根据步骤2采集的历史气象数据、植被类型以及卫星监测到的历史热源的月分布情况,计算山火气象指数I、植被燃烧系数L、工农业用火指数C;
步骤5:根据步骤3-4的计算结果,采用所有样本构建样本空间;
步骤6:基于梯度提升树算法构建山火风险等级预报模型,以山火气象指数I、植被燃烧系数L、工农业用火指数C为输入,山火风险等级为输出进行训练;
步骤7:采用网格搜索寻找最优超参数,并输出最终的山火风险等级预报模型;
步骤8:获取各个空间网格待预报日气象数据、植被类型以及预报日所属月份,计算山火气象指数I、各个空间网格的植被燃烧系数L和预报日的工农业用火指数C,输入山火风险等级预报模型,输出各空间网格的山火风险等级。
本发明进一步采用以下优选技术方案:
采集任意空间网格内的真实火点数量历史数据时,以天为单位,采集预报日之前近s年的经线路运维人员现场核实的距最近输电线路预定距离以内的火点数量,形成“天”为单位的火点数量序列;
采集历史气象数据时,以天为单位,采集预报日之前近s年的历史数据,形成以“天”为单位的气象数据序列;
采集植被类型时,将各空间网格细分为数量为d×d的二次网格,读取二次网格内的植被类型。
步骤3包括以下步骤:
步骤301:根据采集的真实火点数量历史数据,基于以下公式,计算每个火点对于输电线路的山火危险值:
n=w1+0.5w2+0.3w3
式中:n为某火点对应的输电线路山火危险值,w1为处于此火点周围1km内的220kV及以上的输电线路数量,w2为处于此火点周围1km以上2km以内的220kV及以上的输电线路数量,w3为处于此火点周围2km以上3km以内的220kV及以上的输电线路数量;
步骤302:通过以下计算各空间网格内第i天的日山火危险值:
其中,ni表示某一空间网格内第i天的日山火危险值,nx表示该网格内第x个火点对应的输电线路山火危险值,In为当日该网格的火点数量;
步骤303:计算各空间网格12个月份山火危险值的近s年平均值,记某月的山火危险值近s年平均值记
其中,任意网格某月的山火危险值等于当月各日的山火危险值之和;
步骤304:在历史数据中,假设第i天为预报日,计算该预报日的山火危险值的参考值,其计算公式如下:
步骤305:引入误差修正因子,基于以下公式计算各个空间网格预报日山火危险值参考值的指数移动加权平均值:
其中,nβj为近五年该网格以“天”为单位山火危险值参考值序列中第j日的值,t为预报日在序列中的位置,m't为预报日网格山火危险参考值的指数移动加权平均,a为平滑系数;
步骤306:根据步骤305的计算结果,基于下表1确定预报区域的历史山火等级。
表1
m'<sub>t</sub> |
山火风险等级 |
[0,0.2) |
1 |
[0.2,0.5) |
2 |
[0.5,1.5) |
3 |
[1.5,∞) |
4 |
步骤4中,计算山火气象指数I包括以下步骤:
步骤401:从历史气象数据中获取每日各个空间网格的平均气温/℃、平均相对湿度/%、平均最大风速/m/s、连续无降水日数/d,通过以下公式计算火险气象因子U:
U=f(V)+f(T)+f(rRH)+f(M)
其中,U为火险气象因子,V为平均最大风速(米/秒),T为平均气温(摄氏度),rRH平均相对湿度(百分率),M为连续无降水日数(天);其中各气象因子的取值见表2:
表2
步骤402:从历史气象数据中获取每日各空间网格的24h累计降水量Rr/mm和24h雪深Hs/mm,并根据以下公式计算山火气象指数I:
I=U×Cr×Cs
其中,Cr和Cs分别为降水量修正系数和积雪修正系数。
步骤402中,24h降水量Rr≥1mm时,降水量修正系数Cr=0;
24h降水量Rr<1mm时,Cr=1;
24h雪深Hs>0cm时,积雪修正系数Cs=0;
24h雪深Hs=0cm时,Cs=1。
步骤4中,计算植被燃烧系数L包括以下步骤:
步骤403:从预报区域林业数据库中读取各二次网格的植被类型,代入对应燃烧系数,基于以下公式计算各空间网格的植被燃烧系数:
其中,L表示整个预报区域的植被燃烧系数为;Lc,δε表示第δ行、ε列二次网格的植被燃烧系数,其中,植被燃烧系数的选取见表3。
表3
在步骤4中,计算工农业用火指数C包括以下步骤:
步骤404:统计近s年该预报区域卫星监测到的历史热源的分布情况,生成热源月分布图;
步骤405:根据热源的月分布图,取前p个最高峰值所对应的月份作为用火高峰月份,使其工农业用火指数为2;
取前m个最低峰值所对应的月份作为用火低峰月份,使其工农业用火指数为0.5;
其余月份作为用火一般月份,使其用火指数为1。
预报日为清明节时,计算近s年清明节当日及前后各三日共七日周期内的热源每日平均值与近五年3-4月份的热源每日平均值之比q1,并根据以下表4确定预报日为清明节时的工农业用火指数C;
预报日为除夕或正月十五时,计算近s年除夕和正月十五当日热源均值与近五年1-2月份的热源每日平均值之比q2和q3,并根据以下表4确定预报日为除夕或正月十五时的工农业用火指数C。
表4
比值q |
工农业用火指数C |
(0,2) |
按所在月份取值 |
[2,3) |
2.5 |
[3,∞) |
3 |
步骤7包括以下步骤:
步骤701:使用算法默认的迭代过程参数,设置不同的最大深度和最小划分样本数的参数组合,输入山火气象指数I、植被燃烧系数L、工农业用火指数C,输出在不同最大深度和最小划分样本数的参数组合下的山火风险等级,计算其准确率;其中,准确率指模型正确划分山火风险等级的样本数占总样本数的比例;
步骤702:从步骤701的计算结果中,选取准确率最高的一组最大深度和最小划分样本数的参数组合作为最佳决策树参数;
步骤703:将步骤702中的最佳决策树参数带入到山火风险等级预报模型中,设置不同学习率和基学习器数,输入山火气象指数I、植被燃烧系数L、工农业用火指数C,输出在不同学习率和基学习器数下的山火风险等级,并计算其准确率;
步骤704:从步骤703的计算结果中,选取准确率最高的一组学习率和基学习器数作为最佳迭代过程参数;
步骤705:选取最佳决策树参数和迭代过程参数完成训练,输出最终的山火风险等级预报模型。
在步骤702和/或步骤703中,采用10次分层10折交叉验证法计算对应准确率。
本发明的有益效果为:
本发明的一种基于梯度提升树的输电线路山火风险等级预报方法,以历史卫星监测火点数据、气象大数据,地表植被数据等为基础,利用梯度提升树算法构建了山火风险等级预报模型,并通过超参数调节获取了最佳性能的模型,实现了对预报区域任一网格未来每日的山火风险等级预报。此方法建立的山火风险等级预报模型兼具准确性和鲁棒性,可操作性强,提升了输电线路山火风险预报的科学性和精确性。
本方法相比现有技术主要有以下优点:通过结合考虑历史当月山火情况和指数移动加权平均处理,解决了日山火数量随机波动性大、散步宽、稀疏性大难于准确预报分级的问题;同时结合山火发生相关的卫星监测火点数据、气象数据、植被数据等大数据和运行经验知识,构建了以山火气象指数I、植被燃烧系数L、工农业用火指数C三个属性为输入,山火风险等级为输出的基于梯度提升树的预报模型,实现了数据和知识双重驱动,克服了传统预报过度依赖经验和专家知识的问题,提升了预报的科学性;对构建的梯度提升树模型采用两步超参数调节,利用网格搜索找到最佳决策树参数和迭代过程参数,同时采用10次分层10折交叉验证的准确率评估模型性能,提高了模型预报的精确性和稳定可靠性。
具体实施方式
下面通过具体的实施例并结合附图对本发明做进一步的详细说明。
实施例1,本发明提供了一种基于梯度提升树的输电线路山火风险等级预报方法,其流程示意图如图1所示,包括以下步骤:
步骤1:选取预报区域,将选择的预报区域按经纬度为基准单位划分为预定大小的空间网格,预报区域的选取以气候和用火习俗相近的一片区域为宜。同时由于山火发生的随机性,需要一定范围的空间尺度才会有足够的真实火点数据产生代表性的模型,一般地,一省份划分1~3片区域为宜。优选地,在本发明的一个实施例中,按经纬度为基准单位,将选择的预报区域划分为0.25°×0.25°的空间网格。
步骤2:采集该预报区域的每个空间网格内核实的真实火点数量历史数据、历史气象数据、植被类型、卫星监测到的历史热源的月分布情况。
具体地,由于工农业用火习俗和植被情况不断变化,历史火点年限过长会带来很多无效数据影响模型的准确性,而年限过小无法反应一些偶发因素对模型鲁棒性的影响,综合各种情况,取近五年为宜。
采集某一空间网格内的真实火点数量历史数据时,以天为单位,采集预报日之前近五年的经线路运维人员现场核实的距最近输电线路3km以内的火点数量,形成“天”为单位的火点数量序列。一般的,距输电线路3km以外的山火不会对其运行造成威胁。
采集历史气象数据时,以天为单位,采集预报日之前近五年的历史数据,形成以“天”为单位的气象数据序列。
采集植被类型时,将各空间网格细分为数量为d×d的二次网格,读取分辨率为
的植被类型。
步骤3:根据步骤2中采集的火点数量历史数据,计算山火风险等级。
具体地,步骤3包括以下步骤:
步骤301:根据采集的火点数量历史数据,基于以下公式,计算每个火点对于输电线路的山火危险值:
n=w1+0.5w2+0.3w3
式中:n为某火点对应的输电线路山火危险值,w1为处于此火点周围1km内的220kV及以上的输电线路数量,w2为处于此火点周围1km以上2km以内的220kV及以上的输电线路数量,w3为处于此火点周围2km以上3km以内的220kV及以上的输电线路数量。山火多发区域附近输电线路电压等级主要在220kV及上,所以此处只考虑220kV及以上电压等级输电线路。
在本发明的一个实施例中,某火点周围1km内有220kV及以上的输电线路数量1条,1-2km有2条,2-3km有1条,则该火点对输电线路的危险值n=2.3。
步骤302:通过以下计算各空间网格内第i天的日山火危险值:
其中,ni表示某一空间网格内第i天的日山火危险值,nx表示该网格内第x个火点对应的输电线路山火危险值,In为当日该网格的火点数量。
步骤303:计算各空间网格12个月份山火危险值的近5年平均值,记某月的山火危险值近五年平均值记
其中,任意网格某月的山火危险值等于当月各日的山火危险值之和。
步骤304:在历史数据中,假设第i天为预报日,计算该预报日的山火危险值的参考值。具体地,考虑每日山火数量具有随机性大、散步很宽和稀疏性很大(0值众多,某些网格某年可能90%以上天数可能都没有火源点)的特点,将网格预报日的山火危险值ni和其对应月的山火危险值近5年平均值相加得到预报日山火危险值的参考值nβ:
需要说明的是,计算预报日山火危险值的参考值时,假设历史数据当中的第i天作为预报日,计算该天的日山火危险值的参考值,进而获得该预报区域的日山火危险值参考值序列。
步骤305:指数移动加权平均通过对过去的观察值加权平均来进行预报,观察值越远其权数呈指数下降。考虑到输电线路山火爆发存在波动性,以及一定时间长度内存在关联性,对山火危险参考值进行指数移动加权平均可以在反映序列趋势的情况下消除短期随机波动对序列的影响。采用下式计算各个空间网格预报日山火危险值参考值的指数移动加权平均值。
式中:nβj为近五年该网格以“天”为单位山火危险值参考值序列中第j日的值,t为预报日在序列中的位置,mt为预报日网格山火危险参考值的指数移动加权平均值,a为平滑系数,取值范围为(0,0.5]。平滑系数a越小,对序列平滑作用越强,但对实际数据的变动反应越迟缓。通常如果序列变化比较平缓,平滑系数值可取小于0~0.2;如果序列变化比较剧烈,平滑系数值取0.3~0.5。a的取值根据预报区域近5年山火危险值参考值的实际情况选取。
图2为华北某省份某网格2019年的山火风险参考值及其指数移动加权平均值序列数据。如图2所示,在本发明的一个实施例中,经过平滑系数a=0.3的指数移动加权平均后消除了山火风险参考值序列的过度波动,同时保证延时在可接受范围,依然可以及时反映局部数据的变化。
需要说明的是,由于算法的固有缺陷,会在序列初期因为之前的数据缺乏,出现指数移动加权平均值与真实值的差距很大(指数移动加权平均后会明显小于真实值)的情况,因此,在本发明中,进一步的引入偏差修正因子,计算修正后的指数移动加权平均值m't,从而解决序列初期指数移动加权平均值与对应真实值的差距很大问题。具体公式如下:
步骤306:其后根据表1的分级标准对预报日修正后的山火危险参考值指数移动加权平均值m't进行分级,得到山火风险等级。分级标准可根据具体预报区域情况做适当调整。
表1
步骤4:根据步骤2采集的历史气象数据、植被类型以及卫星监测到的历史热源的月分布情况,计算山火气象指数I、植被燃烧系数L、工农业用火指数C。
具体地,计算山火气象指数I包括以下步骤:
步骤401:从历史气象数据中获取每日各个空间网格的平均气温/℃(摄氏度)、平均相对湿度/%(百分率)、平均最大风速/m/s(米/秒)、连续无降水日数/d(天),通过以下公式计算火险气象因子U:
U=f(V)+f(T)+f(rRH)+f(M)
其中,U为火险气象因子,V为平均最大风速,T为平均气温,rRH平均相对湿度,M为连续无降水日数。其中各气象因子的取值可参考森林火险气象标准,见表2:
表2
步骤402:从历史气象数据中获取每日各空间网格的24h累计降水量Rr/mm(毫米)和24h雪深Hs/mm(毫米),并根据以下公式计算山火气象指数I:
I=U×Cr×Cs
其中,Cr和Cs分别为降水量和积雪修正系数,24h降水Rr≥1mm时,Cr=0;Rr<1mm时,Cr=1;24h雪深Hs>0cm时,Cs=0;Hs=0cm时,Cs=1。
计算植被燃烧系数L包括以下步骤:
步骤403:从预报区域林业数据库中读取各二次网格的植被类型,代入对应燃烧系数,基于以下公式计算各空间网格的植被燃烧系数:
其中,L表示整个预报区域的植被燃烧系数;Lc,δε表示第δ行、ε列二次网格的植被燃烧系数。根据我国主要植被类型引发山火的难易程度,将其分为4类,分别定义其植被燃烧系数,见表3。
表3
计算工农业用火指数C包括以下步骤:
步骤404:统计近5年该区域卫星监测到的历史热源的分布情况,生成热源月分布图。
步骤405:根据热源的月分布图,取前p个最高峰值所对应的月份作为用火高峰月份,使其工农业用火指数为2。
取前m个最低峰值所对应的月份作为用火低峰月份,使其工农业用火指数为0.5。
其余月份作为用火一般月份,使其用火指数为1。
清明和春节时段单独统计分析。具体地,针对清明节,计算近五年清明节当日及前后各三日共七日周期内的热源每日平均值与近五年3-4月份的热源每日平均值之比q1;春节期间,计算近五年除夕和正月十五当日热源均值与近五年1-2月份的热源每日平均值之比q2和q3。其后根据表4,确定清明七日、除夕和正月十五当日的工农业用火指数C。春节其余时段(初一至初十四)按所在月份取对应工农业用火指数。
表4
比值q |
工农业用火指数C |
(0,2) |
按所在月份取值 |
[2,3) |
2.5 |
[3,∞) |
3 |
图3为华北某省份2015-2019年的卫星监测热源的月分布图。如图3所示,在本发明的一个实施例中,3、4、10和11月为四个热源高峰月份,6、7、8月为3个低谷月份,其余月份正常;清明节七日热源异常增多,热源每日平均值与近五年3-4月份的热源每日平均值之比q1=4.1;除夕和正月十五当日热源均值与近五年1-2月份的热源每日平均值之比q2和q3分别为3.2和2.5。针对此省区域,工农业用火指数C可设定为3-4、10-11月为2,6-8月为0.5,其余月份取1,清明节七日取3,除夕取3,正月十五取2.5。
时间为2016年9月5日的某网格样本见表5。
表5
山火气象指数 |
植被燃烧系数 |
工农业用火指数 |
山火等级 |
0.63 |
2.4 |
1 |
2 |
步骤5:采用步骤3-4的计算结果,用近五年的所有样本构建样本空间。
步骤6:基于梯度提升树算法构建山火风险等级预报模型,以山火气象指数I、植被燃烧系数L、工农业用火指数C为输入,山火风险等级为输出进行训练。
具体地,采用Python sklearn程序基于梯度提升树算法构建山火风险等级预报模型。
步骤7:采用网格搜索寻找最优超参数,并输出最终的山火风险等级预报模型。具体包括以下步骤:步骤701:使用算法默认的迭代过程参数,设置不同的最大深度和最小划分样本数的参数组合,输入山火气象指数I、植被燃烧系数L、工农业用火指数C,输出在不同最大深度和最小划分样本数的参数组合下的山火风险等级,计算其10次分层10折交叉验证的准确率,生成在不同最大深度和最小划分样本数的参数组合下的准确率表。其中,准确率指模型正确划分山火风险等级的样本数占总样本数的比例。
步骤702:从步骤701的计算结果中,选取准确率最高的一组最大深度和最小划分样本数的参数组合作为最佳决策树参数。
具体地,“最大深度”即单个决策树的最大深度,可以控制树内部节点的数量。以二叉树为例,深度为h的树最多可拥有2h-1个可划分结点。“最小划分样本数”即划分一个内部结点所需的最小样本数,其通过设定划分条件来控制树的结构。如果其值过小,树被完全展开,常常会发生过拟合;其值过大的话,对训练样本学习的精确度就会下降。可根据样本和模型的实际情况设置这两个参数搜索的范围。
准确率指模型正确划分山火风险等级的样本数占总样本数的比例。由于样本空间中不同山火风险等级的样本所占比例可能差别很大,分层10折交叉验证可以保证在最大程度地利用样本数据的同时,在交叉验证的训练集和验证集中不同山火风险等级的样本依然保持与原训练集相同的比例。10次分层10折交叉验证即重复10次分层10折交叉验证过程,最后取10次模型准确率的均值作为最终结果。10次分层10折交叉验证避免了模型评估过程的随机性和不稳定性,最大程度确保了评估结果的可靠性。
表6为本发明的一个实施例中针对华北某省区域建立模型后,最大深度取2-14、最小划分样本数取2-8的模型的性能得分列表,用10次分层10折交叉验证的准确率表示,灰色底纹标出的为最佳参数组合下的模型准确率。
表6
注:表头第一列2-8为“最小划分样本数”取值,第二行2-14为“最大深度”取值。
步骤703:将步骤702中的最佳决策树参数带入到山火风险等级预报模型中,设置不同学习率和基学习器数,输入山火气象指数I、植被燃烧系数L、工农业用火指数C,输出在不同学习率和基学习器数下的山火风险等级,并计算其10次分层10折交叉验证的准确率,生成在不同学习率和基学习器数下的准确率表。
步骤704:从步骤703的计算结果中,选取准确率最高的一组学习率和基学习器数作为最佳迭代过程参数。
步骤705:选取最佳决策树参数和迭代过程参数完成训练,输出最终的山火风险等级预报模型。
需要说明的是,迭代过程参数包括“学习率”和“基学习器数”学习率v通过缩放步长来控制基学习器对整体模型的贡献,其和基学习器数量密切相关。如果希望维持训练误差不变,较小的学习率意味着需要更多的基学习器数量。通俗地讲,通过学习率缩减步长,可以认为是每次走一小步,多走几次,这样更容易逼近真实值。如果步长较大,使用梯度下降法时,容易迈过最优点。
同样的,利用网格搜索寻找最优超参数的过程通过Python sklearn程序实现。
表7为本发明的一个实施例的选取5个学习率[0.01,0.05,0.1,0.25,0.5],5个基学习器值[10,30,50,70,90],不同参数组合下的模型性能。可以看到最佳的学习率、基学习器数组合为(0.1,50),模型准确率为81.0%,比第一步调参提高了10.7%。
表7
则此例的最佳参数为:“最小划分样本数”=7、“最大深度”=14、“学习率”=0.1、“基学习器数”=50。在此参数组合下,模型10次分层10折交叉验证的准确率达到81%,证明其拥有较强的泛化性能,可以一定程度上准确预报预报区域的山火风险等级。
步骤8:获取各个空间网格待预报日的平均气温(摄氏度)、平均相对湿度(百分率)、平均最大风速(米/秒)、连续无降水日数(天),24h累计降水量(毫米)和24h雪深(毫米)天气要素参量数值,计算山火气象指数I;计算各个空间网格的植被燃烧系数L和预报日的工农业用火指数C,代入山火预报模型,得到各空间网格的山火风险等级。
图4为华北某省份某日的山火风险等级预报结果图。其中灰色线为区域500kV及以上输电线路,白色线为省界和市界,网格大小为0.25°×0.25°,网格不同山火风险等级用不同灰度表示,颜色越深等级越高,共分四级。
本发明的一种基于梯度提升树的输电线路山火风险等级预报方法,以历史真实火点数据和卫星监测热源数据、气象大数据,地表植被数据等为基础,利用梯度提升树算法构建了山火风险等级预报模型,并通过超参数调节获取了最佳性能的模型,实现了对预报区域任一网格未来每日的山火风险等级预报。此方法建立的山火风险等级预报模型兼具准确性和鲁棒性,可操作性强,提升了输电线路山火风险预报的科学性和精确性。
本方法相比现有技术主要有以下优点:通过结合考虑历史当月山火情况和指数移动加权平均处理,解决了日山火数量随机波动性大、散步宽、稀疏性大难于准确预报分级的问题;同时结合山火发生相关的真实火点数据、卫星监测热源数据、气象数据、植被数据等大数据和运行经验知识,构建了以山火气象指数I、植被燃烧系数L、工农业用火指数C三个属性为输入,山火风险等级为输出的基于梯度提升树的预报模型,实现了数据和知识双重驱动,克服了传统预报过度依赖经验和专家知识的问题,提升了预报的科学性;对构建的梯度提升树模型采用两步超参数调节,利用网格搜索找到最佳决策树参数和迭代过程参数,同时采用10次分层10折交叉验证的准确率评估模型性能,提高了模型预报的精确性和稳定可靠性。
本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。