基于决策树算法的海州湾地区海雾预测

2022-06-01 04:12史达伟张静曹庆李超朱云凤
气象科学 2022年1期
关键词:能见度决策树样本

史达伟 张静 曹庆 李超 朱云凤

(1 连云港市气象局,江苏 连云港 222006;2 江苏省气象台,南京210008;3 上海海洋中心气象台,上海 200030)

引 言

海雾是一种海面边界层大气水汽凝结或者凝华致使大气能见度不足1 km的灾害性天气现象[1]。我国的海雾主要发生在黄海和东海北部[2]。海州湾是位于我国黄海西部,江苏省最北端重要的海港渔港,气候上属于南北气候的过渡带,既具南北方气候特点,同时兼具陆地和海洋双重影响[3-5]。海州湾的海雾是造成当地沿海低能见度事件发生的主要诱因,对沿海地区的人民的日常生活、生产运输、海上作业等带来不便,持续时间较长、能见度极低的海雾常常引发严重海上交通事故,不仅如此,海雾会阻隔太阳辐射,使海水水质变坏,导致海水养殖的虾贝等大量死亡[6-10]。总之,海雾使沿海地区的海上航行、农渔生产、国民经济和社会生活受到重大影响。

海雾的生消往往与湍流输送、辐射降温、雾滴沉降、风切变、雾顶夹卷等复杂物理过程有关[11]。中尺度数值模式对海雾中复杂的边界层过程还难以准确反馈,海雾的数值预报还存在许多困难[12-14]。海雾预报目前最有效的方法仍以基于历史海洋气象资料的传统统计方法为主[15-17]。大多数统计预报采用逐步回归等统计分析方法,一些学者建立青岛地区海雾预报方法以及黄海和东海海雾短期客观预报方法等[17-18]。海雾的生成发展和消散往往具有显著的地域特点,我国海雾的发生频率随纬度升高而提高,即北方比南方更易发生海雾。海州湾处于海雾多发区域。海州湾海雾是否发生的准确预测将对海州湾乃至江苏省沿海的社会安全、经济发展产生重要的现实意义。

随着大数据、云计算和人工智能技术的不断推进,机器学习技术在诸多领域实现了广泛的应用。同样,也有越来越多的学者将机器学习技术应用于气象科研业务领域。史达伟等[19-20]利用决策树算法对道路结冰及特强浓雾灾害建立了较为准确的诊断或预测模型;ZHANG, et al[21-22]利用机器学习对台风路径是否转向与台风是否登陆建立了较为准确的分类预测模型。然而,机器学习技术应用于区域性海雾研究的成果还不丰富。本文将对海州湾海雾的统计特征进行分析,并利用决策树算法对海州湾海雾建立预测模型。

1 资料与方法

1.1 资料来源

利用江苏省气象局提供的2014—2018年西连岛(站点号:58041)气象站点的逐小时地面气象观测要素(2 m气温、海平面气压、相对湿度、10 min平均风向、10 min平均风速、降水量、相对湿度、能见度)。该套数据较以往人工观测数据具有观测频次高、无主观观测误差等优点。将数据集中的缺测数据剔除,另外降水时段亦可发生低能见度,但非海雾的情况,故将有降水时段的数据进行剔除。整套数据共计42 770个有效数据样本,其中发生海雾的样本数为1 139个(占比2.66%),未发生海雾的样本数为41 631个(占比97.34%)。西连岛站是国家一般观测站,是海州湾区域离港较近、观测数据时间序列最长、数据质量最好的海岛站,对海州湾海雾的监测具有重要的指示作用和实际意义。

1.2 C4.5决策树算法

C4.5决策树算法是一种分类与预测算法,1979年由J R Quinlan发明,后提出ID3算法,主要针对离散型属性数据,经过不断改进,最终形成C4.5算法。

这种算法通过属性信息增益的大小选择每个节点上的分类属性,根据能够带来最大信息增益的属性拆分样本,递归拆分直到达到停止条件。最后对结论进行检验,将那些对模型没有显著贡献的样本子集进行修剪和剔除。

令S为包括s个数据样本的训练集,S(Ci)为S中属于Ci类的样本个数(i=1,2,...,m),那么训练集中样本属于第i类的概率为:

(1)

此时训练集S的信息(熵)定义为:

(2)

而后需通过属性A将信息S分为{S1,S2,…Sv},那么叶节点对于分类信息的信息熵为:

(3)

则信息增益计算如下:

gain(A|S)=info(S)-infl(A|S),

(4)

增益率为:

(5)

C4.5算法是基于ID3算法发展起来的,其中一大改进就是可以处理连续数据,C4.5算法对于连续属性数据的一般的处理过程如下:(1)对结点中的属性数据进行排序;(2)用不同的阈值将训练集数据进行动态划分;(3)将输入数据的两端的两个值的中点作为阈值,输入改变时便确定新的阈值;(4)根据阈值确定两个划分,将所有数据样本划分到这两类中;(5)得到所有可能的阈值,并计算所有的划分情况下的信息增益和增益率。(6)最后每个连续属性都会被阈值划分为两类(大于等于阈值和小于阈值)。

算法模型效果检验采取交叉验证的方式,即用一部分数据进行模型的训练,即训练集。另一部分独立的数据进行模型的检验,即测试集。通常训练集样本总量为测试集样本的4倍左右。训练正确的样本数比训练总样本数为学习准确率,测试正确样本数比测试总样本数为测试准确率。

2 海州湾海雾的统计特征分析

海州湾属于温带季风区,是江苏省海雾最多发的区域。本文以海州湾海雾为目标展开研究,本节通过统计海州湾海雾发生的时间分布特征及主要的气象要素特征总结规律,亦可与后文的决策树模型互为映证。本文将以在海州湾海区内的西连岛气象站作为海州湾的代表站进行下一步研究。

图1 2014—2018年海州湾海雾的年分布(a,虚线为线性趋势线)及月分布(b)Fig.1 Annual distribution (a, dotted line is linear trend line) and (b) monthly distribution of sea fog in Haizhou Bay from 2014 to 2018

2.1 海州湾海雾的时间分布特征

由2014—2018年海州湾海雾的年分布(图1a)可知,海雾在各年份均有发生,其中2014年发生频次最高,有310个时次观测到海雾(占总样本27.2%)。2017年发生频次最少,仅有152个时次发生海雾(占总样本13.3%)。整体上看,海雾的发生频次呈一定下降趋势。由2014—2018年海州湾海雾的月分布(图1b)可知,从季节上,海州湾海雾在冬春季最易发生,夏秋季发生较少。从各月看,2月是海州湾发生海雾最多的月份,共观测到219个时次发生海雾(占总样本19.2%),9月最少,在数据样本中未出现海雾。

图2为2014—2018年海州湾海雾的时次分布。可以看出,1 d中凌晨至上午最易发生海雾,午后海雾发生频次明显较少。海雾发生的峰值时段为04—08时(北京时,下同),其中05时观测到的海雾频次最多,达到78个时次,占总样本6.8%。海雾发生的低谷时段为14—20时,其中14时观测到的海雾频次最少,仅有27个时次,占总样本2.4%。

通过对海州湾海雾时间分布统计分析,发现海州湾海雾在年际分布上呈下降趋势;海州湾海雾往往多发于冬春季节,夏秋季节较为少见;海州湾海雾在1 d中多见于凌晨至上午,午后少有出现。

2.2 海州湾海雾的气象要素统计分析

对海州湾海雾的气象要素特征进行分析,主要从相对湿度、风向、风速等角度对海州湾海雾发生规律进行统计,用以描述海州湾海雾发生时气象要素分布。

图3为海州湾海雾发生时相对湿度的分布,可见,当相对湿度不足80%时,海雾鲜有发生,仅有6个时次观测到海雾,占总样本的0.5%;当相对湿度≥96%时,观测到海州湾海雾发生的频次最多,有792个时次观测到海雾,占总样本的69.5%。海州湾海雾的发生频次随着相对湿度的增加呈指数型增长趋势。

图2 2014—2018年海州湾海雾的时次分布Fig.2 Time distribution of sea fog in Haizhou Bay from 2014 to 2018

图3 2014—2018年海州湾海雾发生频次在不同相对湿度情况下的分布(虚线为指数趋势线)Fig.3 Distribution of frequency of sea fog in Haizhou Bay underdifferent relative humidity conditions(Dotted line is exponential growth line)

根据海雾能见度的不同区间,对相对湿度的均值进行统计(图4),发现海雾的发生往往伴随着空气相对湿度的显著提高,往往相对湿度在90%以上更加有利。当能见度介于0.5~1 km之间时,相对湿度均值在94%附近,当能见度下降到0.5 km以下时,相对湿度均值升高至98%附近。

图4 2014—2018年海州湾海雾不同能见度下相对湿度均值分布Fig.4 Mean distribution of relative humidity under differentvisibility in Haizhou Bay in 2014-2018

图5 2014—2018年不同风力情况下海州湾海雾分布Fig.5 Sea fog distribution in Haizhou Bay under differentwind conditions from 2014 to 2018

通过上述统计发现,发生海雾时对相对湿度的要求较高,较高的相对湿度(98%以上)更有利于海上浓雾的发生。

海州湾海雾发生时往往伴随着不同的天气形势,近地面表现为风场上的差异。通过对海州湾海雾发生时不通过风力等级情况下海雾分布的统计(图5),可以看出海州湾海雾在0~6级及以上风力背景下均有发生,当风力达2~3级时发生海雾的频次最多,其中当风力大小为2级时有419个时次发生了海雾,占比36.8%。在静风和6级以上风力的背景下发生海雾的频次最少,分别为16个时次和9个时次,占比1.4%和0.79%。可以发现,在合适的风力条件下,海州湾海雾更易发生,风力过大或过小均不利于海雾的发生发展。

通过对气象要素的统计分析可以发现,海州湾海雾的发生发展和气象要素的变化密切相关,当相对湿度、风力等气象要素在合适的条件下就可以促使海州湾海雾的发生。综上,文章对海州湾海雾发生的时间分布规律及气象要素特征进行了统计分析,结论如下:(1)季节上看,海州湾海雾多发生于冬春季节,少见于夏秋季节;(2)从日变化看,海州湾海雾多发生于凌晨至上午,少见于午后时段;(3)当相对湿度高于90%,风力2~3级时有利于海州湾海雾的发生和发展。

3 基于C4.5算法的海州湾沿海海雾的分类预测模型构建

上文的统计分析显示出海雾发生的基本特征和规律以及有利的气象条件。但海雾天气的发生发展是非常复杂且非线性的天气过程。为了更加准确的把握海州湾海雾发生发展的规律,本文将利用2014—2018年西连岛站气象观测数据基于机器学习中经典的C4.5算法对海州湾是否发生海雾建立决策树模型。

图6 基于C4.5算法的海州湾是否发生海雾预测决策树Fig.6 Decision tree based on C4.5 algorithm for sea fog diagnosis in Haizhou Bay

3.1 实验数据的预处理

本文使用的C4.5算法是一种经典的带标签的有监督机器学习算法,这一类算法最长使用的建模策略为留出法,即将总数据样本分为训练样本集与测试样本集两部分,且训练集和测试集之间为互斥关系,利用训练集数据建立决策树模型,将测试集数据用于检验模型的一般性和鲁棒性。一般地,训练集占总样本的80%左右,测试集数据占总样本的20%左右。首先,将2014—2017年数据作为模型的训练集(约占80%),将2018年数据作为测试集(约占20%),把海州湾“能见度是否低于1 km”抽象成为一个是与否的二元分类的问题。分别对训练集数据样本和测试集数据样本进行统计,训练集中共有34 168个数据样本,其中能见度低于1 km的海雾样本为959个,对测试集而言,共有8 622个数据样本,其中能见度低于1 km的海雾样本为180个。为了维持目标变量“是否为海雾”中“是”与“否”的样本数量平衡关系,也为模型最后效果更加客观真实,文章分别对训练集和测试集中“是”海雾的数据样本采取有放回采样的策略,将海雾数据样本量扩大至与非海雾数据样本量相当,既在扩大海雾数据样本规模的同时,也保留原始数据的数据特征。如表1所示。这样就完成C4.5决策树算法所需训练集与测试集的选取与处理。

表1 通过有放回采样方式平衡训练集与测试集“是否发生海雾”二元目标变量样本Table 1 Balance the binary target variable samples of “whether sea fog occurs” between training set and test setby means of sampling with playback

3.2 基于C4.5决策树算法的海州湾海雾分类预测模型

以是否为海雾为模型的目标变量,模型的输入变量为气温、气压、相对湿度、10 min平均风速、10 min平均风向等观测要素。将预处理好的训练集输入C4.5算法,文章选取预剪枝策略以防止模型的过拟合,增强决策树模型的鲁棒性。具体做法是控制决策树模型的深度,通过比对发现当决策树深度为5时模型效果最优,通过计算得到具体决策树(图6)。

表2 C4.5算法发现的海州湾海雾气象观测要素特征预测规则集Table 2 Feature diagnosis rule set of meteorological observation elements of Haizhou Bay sea fog discovered by C4.5 algorithm

决策树具有形式直观,符合人类逻辑判断思维方式的特点,观察决策树可以发现,根节点为相对湿度,也就是说对于海州湾海雾是否发生最重要的因子就是相对湿度的大小。在决策树模型中,每从根节点(相对湿度)到一个叶节点(T/F)均可抽象为一条If…then形式的决策规则,将决策树中的每条规则归纳可形成方便人们学习使用的决策规则集(表2)。

通过决策树抽象出判断海州湾是否发生海雾的规则集,根据训练集数据建立决策树模型,该决策树模型学习准确率为92.85%。接着,将根节点至叶节点抽象出决策规则,每条规则都可得到学习准确率,方便与实际情况对照参考。最后,将预处理好的测试集数据对该决策树模型的泛化能力进行测试,测试准确率为93.51%。综上,该决策树模型的分类效果好,泛化能力强。对于海州湾海雾的发生提供了简洁、可理解、有价值的参考。

4 结论

本文针对海州湾海雾天气进行了时间分布特征和气象要素统计特征的分析,并利用机器学习相关算法与海洋气象科研业务问题相结合得到了较为实用有效的结论。利用机器学习技术中经典的C4.5决策树算法针对连云港西连岛(58041)站点的海雾天气建立了预测模型。主要结论如下:

(1)通过对海州湾海雾天气特征的统计分析,发现海州湾海雾的发生具有年际的下降趋势;季节上看,主要发生在冬春季,少发于夏秋季;日变化上看,多发生于凌晨到上午,少见于午后等时间分布特征。

(2)通过对海州湾海雾气象要素特征的统计发现,当相对湿度高于90%,风力2~3级,风向有偏东风分量时有利于海州湾海雾的发生和发展;当相对湿度较低,静风或风力过大,风向有偏西偏南的分量时不利于海州湾海雾的发生和发展。

(3)经过数据预处理,基于机器学习中经典的C4.5决策树算法对海州湾海雾是否发生建立预测模型,并得到方便使用的海州湾海雾预测规则集;决策树模型的自学习准确率为92.85%,测试准确率为93.51%,模型性能较好,具备较强的泛化能力和应用价值。

海雾是一种边界层内复杂的海洋天气现象,决策树算法尽管能够很好地探寻海雾发生发展的统计规律,但对其复杂的物理机制缺乏解释能力。物理机制的深入研究是统计分析的重要基础。相信随着海雾基础理论的不断深入研究以及机器学习算法的不断迭代升级,利用机器学习技术预测海雾会取得更加有意义的成果。

猜你喜欢
能见度决策树样本
天津市东丽区低能见度事件特征分析
规划·样本
决策树和随机森林方法在管理决策中的应用
浅析常州市PM2.5对能见度干扰
随机微分方程的样本Lyapunov二次型估计
决策树学习的剪枝方法
决策树多元分类模型预测森林植被覆盖
南京市气溶胶和相对湿度对能见度的影响
决策树在施工项目管理中的应用
“官员写作”的四个样本