单 浠,朱天心,叶佳欣,王燚潇,孙佩茹,陈雪东
(湖州师范学院 理学院,浙江 湖州 313000)
暴雨是指24 h内产生较强降雨的天气现象.气象规定日降雨量在50~100 mm之间为暴雨;日降雨量在100~250 mm之间为大暴雨;日降雨量在250 mm以上为特大暴雨.中国是典型的多暴雨国家,受季风、地形等影响,加之森林被破坏、围湖造田等因素导致暴雨加剧,给农业、服务业、交通运输业等带来不赀之损,也给国民经济和人民财产造成不可估量的损失.
目前关于暴雨灾害的研究已有很多.杜志强等[1]根据时序分析模型,由历史降水数据和实时降水数据分析识别异常降水,实现了暴雨型洪涝灾害预警;于琛等[2]根据降水—流量关系模型分析暴雨灾害危险性空间变化,并对暴雨灾害的危险程度进行量化分析及预警;连治华等[3]设计了一种新的降水准确度计算方法,并将其作为暴雨灾害发生的依据之一;王岚等[4]利用平台集约化信息判断风险形势,研究提前暴雨灾害预警.暴雨灾害预警和风险评估等研究层出不穷,粗糙集理论和方法也是一种可行的研究方法,但它在暴雨灾害方面的应用研究还处于起步阶段.
粗糙集理论是一种分析和处理具有不确定性、不精确性和不完善特征的信息系统的新兴数学工具.面对庞大而复杂的知识库,它能基于严密的数学知识,将其中无关的隐藏信息、知识挖掘出来进行属性约简,得到简洁美观的知识库[5].粗糙集的主要思想是在维持知识系统分类能力不变的情况下经过知识约简删减部分冗余属性,导出问题的决策和分类准则.粗糙集作为一种较新的软件计算方法,是当前国际上人工智能理论及应用领域中的研究热点,但它与不同领域的应用结合还需要更多的探索与尝试.本文基于粗糙集理论,分析上海奉贤区降水、气温、气压等数据,从而建立完备且简约的知识库,便于后期对灾害进行检索和预测,为相关部门提前预测暴雨灾害提供参考依据.
知识是一种遵循事物特征并将其比物连类的能力.知识库别名数据库,是基于知识且具有智能性的系统,也是数据的汇总归纳.一个知识库S是一个系统(U,A),其中对象空间U和A均是有限非空集,U中的元素称为对象,A中的元素称为属性.如果A=C|D,则系统YU、AY为一个决策表,其中C内的属性称为条件属性,D内的属性称为决策属性[6].
建立知识库的一般步骤(图1)为:
(1) 搜集大量的历史数据,建立原始数据库;
(2) 对数据进行预处理,即补充缺失数据并加以分类,再在粗糙集理论下实行属性约简,创建新的知识库;
(3) 进行检索,若有相似案例则检索成功,若没有则将新数据补充到知识库.
图1 一般知识库流程Fig.1 General knowledge base process
决策表中的不同条件属性对决策属性的作用程度是不同的,有些条件属性的存在与否对整个知识系统的最后结果是无关紧要的,可以在保持知识库分类能力不变的基础上删除不相关或不重要的属性,这就是属性约简.
若Q⊆P,则Q中所有等价关系的交集称为Q上的不可区分关系,记为IND(Q);若Q是独立的,且IND(Q)=IND(P),则称Q为P的一个约简,P的所有约简的交集称为P的核,记作card(P).
(1) 计算各个等价关系的等价类,U/IND(C),U/IND(D)、U/IND(C-{ai});
(2) 计算条件属性在决策属性中的正域,POSC(D)和POSC-{ai}(D);
(3) 计算所有条件属性的重要度,即rC(ai)|i=1,2,…,7|;
(4) 根据依赖度值判断属性的重要程度,若rC(ai)=0,则表示该属性对决策属性无法产生任何影响,可约去;若rC(ai)>0,则保留该条件属性,录入知识库[7].
本文在搜集上海奉贤地区1959—2019年暴雨相关数据的基础上建立原始数据库,从而利用粗糙集及属性约简建立知识库.具体步骤如下:
(1) 缺失值处理.运用SPSS查询缺失数据的个数和位置;对数据库中缺失的数据进行填充,分别尝试期望最大化(遗漏率不高于10%)、回规估计法、均值替代及多重填充技术(遗漏率大于10%)进行缺失数据填充.由于日降水量遗漏数为2 387个,遗漏率达10.8%,故只对日降水量的缺失数据采取多重填充技术进行补充完善,其余缺失数据采取邻近7个点平均值的均值替代法进行补充.再用补充完整的数据表计算最高气温、最低气温、最高气压、最低气压、平均风速、平均湿度、日降水量,并将其保存在数据表中.变量遗漏情况见表1.
表1 变量遗漏情况
(2) 筛选数据.在22 160个数据中全天降水量为0 mm的个数有12 160个,占比约为54.87%;降水量小于等于5 mm的个数有18 609个,占比约为83.98%.可见,降水量偏小的占比过多.该模型符合“零膨胀模型”,即观察事件发生数中含有大量的0值.删去部分无意义的数据后作密度函数分布图(图2).
图2 年降水量和暴雨降水量密度函数分布图Fig.2 Density function distribution of annual precipitation and rainstorm precipitation
从图2可以看出,1959—2019年上海奉贤地区降水量绝大部分小于100 mm,但也会出现大于100 mm甚至200 mm以上的情况.从图2(b)可以看出,出现暴雨现象时,大部分都是正常暴雨,降水量约为60 mm的占比最大;降水量大于100 mm的天数较少;特大暴雨极难出现.
气象底层数据一般都是连续数据,但基于粗糙集进行数据处理时必须用离散化数据,因为只有有效而精确地将连续数据离散化,才能进行约简和CBR检索.采用不同的离散化方法其结果截然不同,这更加说明选择恰当离散化方法的重要性.此次数据离散化分类主要采取3种方法:K-means聚类、密度函数分布、地理规定等级划分.再将得出的分类结果进行检验,采取dependency最高值的分类方法,即决策属性对条件属性的依赖度越高,说明此分类方法越有用.3种离散化方法择优选取.
2.2.1 K-means聚类
运用Matlab计算依赖度绘制聚类质心图和聚类分支图(图3、图4).聚类质心图表示通过Matlab得到聚类中的一次迭代过程,其中两个叉号分别代表两个簇最终不会发生变化的质心,星形标示号分布较集中,极小一部分严重偏离质心,结果易受初始质心个数及离群值的影响[8].Matlab可根据最小距离将数据离散成“0”“1”两大类,从图4可知,将样本集分成{E1,E2,E3,E4,E8,E9,E10}和{E5,E6,E7}两大类,输出结果为{0,0,0,0,1,1,1,0,0,0},最终运行代码结果为dependency=0.600 3,说明此聚类方法使输出结果对各个属性的依赖度较低,离预期值较远(设定预期值为0.8),也诠释本次数据离散化有所偏差,仍需继续修正.其修正可以通过变更随机选择的样本个数或迭代次数来提高K-means聚类方法的依赖度[9].
2.2.2 密度函数分布法
条件属性:平均气温、气压、风速、湿度、降水量.
决策属性:是否暴雨(0,1),根据各个密度函数将其划分.
平均气温、平均气压的密度函数图见图5.平均风速、温度和降水量的密度函数图见图6.
图3 聚类质心图Fig.3 Cluster centroid diagram
图4 分支图Fig.4 Branch diagram
图5 平均气温、平均气压的密度函数图Fig.5 Density function of average temperature and pressure
图6 平均风速、湿度和降水量的密度函数图Fig.6 Function chart of average wind speed, humidity and precipitation density
相比K-means聚类而言,密度函数分类法更加多元化,更具主观性,每个条件属性的数据是依据其自身密度函数分布图的起伏进行切割划分的,可以分成2个区间、3个区间或更多区间,以此完成离散化.其运行代码结构为dependency=0.880 3,达到预期值,说明输出结果对属性依赖度较高.此方法可将条件属性数据的区间划分得更加详细,以进一步提高依赖度.平均气温、平均气压、平均风速、湿度和降水区间见表2.
表2 平均气温、平均气压、平均风速、湿度和降水区间
2.2.3 地理规定等级划分
条件属性:最高最低气温、最高最低气压、平均风速、平均湿度、降水量.
决策属性:是否暴雨(0,1).
依据中国地理规定,气象等级将最高最低气温分为7个区间;将最高最低气压分为8个区间;将风速分为8个区间;将全部湿度分为5个区间;按密度函数分布将降水量分为[0,5.4)和[5.4,197)两个区间.最终代码运行结果为dependency=0.932 8.输出结果对属性依赖度是3种分类方法中最高的,说明该分类方法具有较好的可靠性.本文采取此分类方法.地理等级划分见表3.
表3 地理等级划分
2.3.1条件属性约简
为使冗长而复杂的数据库变得简洁且易操作,需要对条件属性进行约简.从离散程度最好的数据中随机抽取9个较典型的案例进行模拟实验,并根据粗糙集理论依次计算条件属性的重要度.决策表见表4,重要度见表5.
表4 决策表
表5 重要度
计算属性a1的重要度:
(1) 各等价关系的等价类:
U/IND(D)={{E1,E2,E3,E4,E5},{E6,E7,E8,E9}};
U/IND(C)={E1,E2,E3,E4,E5,E6,E7,E8,E9};
U/IND(C-{a1})={{E4,E9},E1,E2,E3,E5,E6,E7,E8}.
(2) 计算条件属性在决策属性中的正域:
POSC(D)={E1,E2,E3,E4,E5,E6,E7,E8,E9};
POSC-{a1}(D)={E1,E2,E3,E5,E6,E7,E8}.
(3) 计算所有条件属性的重要度:
其他属性的重要度如表5所示.
由模拟实验可知,属性重要度的排列顺序为{a7,a6,a1,a2,a3,a4,a5}.{a7,a6,a1,a2,a3}与决策属性有着不可分割的关系,需要保留,并重点关注属性a7的影响力.虽然属性a4和a5的重要度都等于0,但并不代表这两个属性对暴雨的产生毫无影响,只是粗糙集注重的是此属性在论域中对分类子集影响力的大小,属性约简可使决策表更加简洁、更有价值.值得注意的是,采取数据库中案例的不同或摘取的个数不同都会导致属性重要度的变化,从而容易产生误删或少删条件属性,且多余属性的存在容易干扰天气预报和浪费存储空间,因此属性约简仍需进一步完善[7].
2.3.2 知识库的生成
由上述计算结果可知,属性a4和a5的重要度都等于0,因此在决策表中可将最低气压和湿度舍去,保留5个条件属性,分别是最高气温、最低气温、最高气压、风速、降水量.为避免知识库的内容过于冗杂,须删去决策表中的重复记录,即{E7,E8}只保留一个.此约简后的决策表对原有数据系统的检索不会产生任何负面影响.
从决策表中归纳出的较理想的知识库具有以下4个特征:
(1) 确切性:每个知识真实可靠,都有确凿数据作支撑.
(2) 纯粹性:知识库中每个知识的最终结果都有降雨,只是降雨量不同.
(3) 完备性:任意一个案例均能在知识库中检索到相匹配的知识.
(4) 互斥性:知识库中的知识两两互相排斥,检索时有且仅有一条知识与其匹配,对没有匹配的则需添加新知识.
一般而言,以上4个特征难以同时满足,之间往往相互冲突.因此,在保证每个知识大体上满足纯粹性和确切性的基础上,可率先考虑完备性,最后考虑互斥性[10].
暴雨知识库建立流程见图7.
图7 暴雨知识库建立流程Fig.7 Stormwater knowledge base establishment process
由反复发生的暴雨极端事件表明,人类在暴雨灾害面前极为脆弱.因此,设置及时的监测预警,对有效预防和减轻暴雨灾害造成的影响至关重要.本文搜集了上海奉贤区1959—2019年的气象数据,运用SPSS对缺失数据进行补充完善,使其对结果的影响达到最小;分析粗糙集在天气预报中的作用和功能,对补充完善后的数据进行离散化处理,并运用粗糙集理论中的属性约简方法,针对离散后的数据资料,通过Matlab计算各个条件属性的重要度,对决策表进行简化;依据知识库的4个特征,将知识填充到知识库,使知识库更加完备有效,为后期的检索和预测提供方便.该方法可为国家提前预测暴雨气候提供有益参考.