发明内容
本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种用于集合数值天气预报成员的层次聚类方法,能够去除噪点的层次聚类方法,并且根据集合数值天气预报成员的数据特点优化聚类的时间复杂度,从而使得集合预报成员的归类筛选更加的高效和准确。
本发明为解决上述技术问题采用以下技术方案:
一种用于集合数值天气预报成员的层次聚类方法,包含以下步骤:
步骤1),根据集合数值天气预报成员的数据特点建立最小距离连通图;所述最小距离连通图无向无环,包含n个顶点的唯一标识和n-1条连接顶点的边,且n-1条边为n个顶点按照最临近距离相互连接而成,如图1所示;
步骤1.1),令
x
i={x
i1,x
i2,…x
im}为第i个顶点的数据,1≤i≤n,n为顶点总数即集合数值天气预报成员的总数,m为集合数值天气预报成员的数据维度,id
i为第i个集合数值天气预报成员的数据的唯一标识,顶点id
i即第i个顶点;并令最临近边矩阵E
11初始为空矩阵;
随机选取X中第i个顶点即顶点id
i,分别计算顶点id
i到其余各顶点的欧氏距离,生成距离矩阵
式中,d
ij为顶点id
i到顶点id
j的欧氏距离,1≤j≤n且j≠i;并令集合EX={id
i};
步骤1.2),从距离矩阵XD中查找距离的最小值di_min,并将距离矩阵XD中其所在行[idi,idj,di_min]加入到最临近边矩阵E11后从距离矩阵XD删除;
步骤1.3),将顶点id
j加入到集合EX中,计算id
j到集合EX中顶点以外各顶点的距离,生成距离矩阵
p为集合EX中顶点以外各顶点的数量,d
jp为顶点id
j到顶点id
p的欧氏距离;
步骤1.4),将距离矩阵XD和距离矩阵XD2进行合并,形成新的距离矩阵XD;
步骤1.5),重复步骤1.2)至步骤1.4),直到集合EX中的顶点数量等于n;
步骤1.6),根据集合ID11[id1,…,idn]和最临近边矩阵E11生成最小距离连通图MDG[ID11,E11];
步骤2),利用最小距离连通图的最大差分值逐层分割数据成簇并剔除噪点:
步骤2.1),以最小距离连通图MDG[ID11,E11]作为第一层最小距离连通图;
步骤2.2),将最小距离连通图MDG[ID11,E11]分割为若干个第二层最小距离连通图;
步骤2.2.1),计算最临近边矩阵E11中除第一行外每一行第三列和上一行第三列的差值,取其中的最大值dd1在最临近边矩阵E11中对应行第三列的值以及对应行下一行第三列的值计算平均值,得到均值ddt1;
步骤2.2.2),根据均值ddt1分割最小距离连通图MDG[ID11,E11]的最邻近边矩阵E11,形成最小距离连通图集合,并将该最小距离连通图集合作为第二层最小距离连通图集合,其中,根据均值分割最小距离连通图的最邻近边矩阵、形成最小距离连通图集合的具体步骤如下;
步骤2.2.2.1),令均值为T,最小距离连通图的最邻近边矩阵为EE,根据均值T分割最邻近边矩阵EE,得到若干个分割后的最邻近边矩阵;
步骤2.2.2.1.1),将最邻近边矩阵EE中第三列的值大于均值T的所有行删除,新建矩阵EA;
步骤2.2.2.1.2),将矩阵EA置为空矩阵,将最邻近边矩阵EE中的第一行放入矩阵EA中的末尾后从最邻近边矩阵EE中删除;
步骤2.2.2.1.3),对于矩阵EA中的每一行,在最邻近边矩阵EE的第一列、第二列中查找是否存在和其第一列或第二列的值相同的值,如果存在,将该值在最邻近边矩阵EE中的所在行放入矩阵EA中的末尾后从最邻近边矩阵EE中删除;
步骤2.2.2.1.4),重复执行步骤2.2.2.1.3),直至最邻近边矩阵EE的第一列、第二列和矩阵EA中第一列、第二列不存在相同的值;
步骤2.2.2.1.5),新建空矩阵,将矩阵EA中的值赋予给该空矩阵,得到一个分割后的最邻近边矩阵;
步骤2.2.2.1.6),重复执行步骤2.2.2.1.2)至步骤2.2.2.1.5)直到EE为空矩阵,得到若干个分割后的最邻近边矩阵,形成矩阵集合BB;
步骤2.2.2.2),对于矩阵集合BB中的每个最邻近边矩阵,提取其各条边对应的顶点的唯一标识,得到其对应的顶点集合,生成其对应的最小距离连通图;
步骤2.2.2.3),根据矩阵集合BB中各个最邻近边矩阵对应的最小距离连通图,生成第二层最小距离连通图集合;
步骤2.2.3),标记出第二层最小距离连通图集合中的噪点,其中,标记最小距离连通图集合中的噪点方法如下:对于最小距离连通图集合中各个最小距离连通图对应的顶点集合,依次判断其包含的顶点数量是否小于等于预设的比例阈值乘以n,如果小于等于,则该最小距离连通图为稀疏簇,将该最小距离连通图标记为噪点;
步骤2.2.4),标记出第二层最小距离连通图集合中的自然簇,其中,标记出最小距离连通图集合中的自然簇的方法如下:对于最小距离连通图集合中各个最小距离连通图对应的最邻近边矩阵,分别判断其是否符合正态和指数分布检验,如果符合,则将该最小距离连通图标记为自然簇;
步骤2.3),将第二层最小距离连通图集合作为当前层最小距离连通图集合;
步骤2.4),对当前层最小距离连通图集合进行分割;
步骤2.4.1),对于当前层最小距离连通图集合中的除噪点和自然簇以外的最小距离连通图对应的各个最邻近边矩阵,分别计算其内除第一行外每一行第三列和上一行第三列的差值,获取其中的最大值dd2;
步骤2.4.2),对于dd2对应的最邻近边矩阵,取dd2在该最邻近边矩阵中对应行第三列的值以及对应行下一行第三列的值计算平均值,得到均值ddt2;
步骤2.4.3),根据均值ddt2分割dd2对应的最邻近边矩阵,对其进行分割,形成下一层最小距离连通图集合;
步骤2.4.4),标记出下一层最小距离连通图集合中的噪点和自然簇;
步骤2.4.5),将当前层最小距离连通图集合中除dd2对应的最小距离连通图之外的最小距离连通图加入至下一层最小距离连通图集合中;
步骤2.5),将下一层最小距离连通图集合作为当前层最小距离连通图集合;
步骤2.6),重复步骤2.4)至步骤2.5),直至当前层最小距离连通图集合中不存在噪点和自然簇以外的最小距离连通图为止;
步骤3),找出代表性的集合预报成员,完成聚类:
步骤3.1),令当前层的层数为L,对于每一层最小距离连通图,筛选出其中非噪点的最小距离连通图作为该层的待筛选簇集合;
步骤3.2),依次将L层到第一层待筛选簇的数量和预设的个数范围阈值进行比较,直到某一层待筛选簇的数量在预设的个数阈值范围内为止,将该层的待筛选簇集合作为最终待筛选簇集合;
步骤3.3),对于最终待筛选簇集合中的任何一个最小距离连通图,筛选出其内最接近簇心的顶点作为其代表顶点,得到最终待筛选簇集合中各个最小距离连通图的代表顶点;
步骤3.4),将终待筛选簇集合中各个最小距离连通图的代表顶点所对应的集合数值天气预报成员作为代表成员。
作为本发明一种用于集合数值天气预报成员的层次聚类方法进一步的优化方案,所述预设的比例阈值优先设定为10%。
作为本发明一种用于集合数值天气预报成员的层次聚类方法进一步的优化方案,所述预设的个数阈值范围为3个至5个。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、与Ward聚类法相比,本发明的时间复杂度为
要小于Ward聚类法的O(n
3),且本发明具有Ward不具备的去噪点功能。与管子法和距平相关系数分簇法相比,本发明具有生成多层次聚类结果的功能,可以在各层级上择优选取最合适的簇数,且不需要设置核心参数。
2、与已有的层次聚类算法相比,如优化过的凝聚层次聚类方法最近邻链法(Nearest Neighbor Chain)的时间复杂度O(n2)且不能去噪,变色龙法(Chameleon)的时间复杂度O(n2)且需要设置k最近邻图的k值(核心参数),利用层次结构的平衡迭代归约和聚类法(BIRCH)需要设置簇直径阈值T(核心参数)且聚类结果还具有随机性,所以本发明在时间复杂度、核心参数设置、去噪点功能等方面依然是具有优势的。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明公开了一种用于集合数值天气预报成员的层次聚类方法,包含以下具体步骤:
步骤1),根据集合数值天气预报成员的数据特点建立最小距离连通图;所述最小距离连通图无向无环,包含n个顶点的唯一标识和n-1条连接顶点的边,且n-1条边为n个顶点按照最临近距离相互连接而成,如图1所示;
步骤1.1),令
x
i={x
i1,x
i2,…x
im}为第i个顶点的数据,1≤i≤n,n为顶点总数即集合数值天气预报成员的总数,m为集合数值天气预报成员的数据维度,id
i为第i个集合数值天气预报成员的数据的唯一标识,顶点id
i即第i个顶点;并令最临近边矩阵E
11初始为空矩阵;
随机选取X中第i个顶点即顶点id
i,分别计算顶点id
i到其余各顶点的欧氏距离,生成距离矩阵
式中,d
ij为顶点id
i到顶点id
j的欧氏距离,1≤j≤n且j≠i;并令集合EX={id
i};
步骤1.2),从距离矩阵XD中查找距离的最小值di_min,并将距离矩阵XD中其所在行[idi,idj,di_min]加入到最临近边矩阵E11后从距离矩阵XD删除;
步骤1.3),将顶点id
j加入到集合EX中,计算id
j到集合EX中顶点以外各顶点的距离,生成距离矩阵
p为集合EX中顶点以外各顶点的数量,d
jp为顶点id
j到顶点id
p的欧氏距离;
步骤1.4),将距离矩阵XD和距离矩阵XD2进行合并,形成新的距离矩阵XD;
步骤1.5),重复步骤1.2)至步骤1.4),直到集合EX中的顶点数量等于n;
步骤1.6),根据集合ID11[id1,…,idn]和最临近边矩阵E11生成最小距离连通图MDG[ID11,E11]。
本方法的空间复杂度S(n(m+1)+3n(n-1)/2),时间复杂度
其中n表示数据量,m表示数据维度。
中
这一项表示的是生成距离矩阵XD和XD2的总时间复杂度,这部分时间消耗和数据维度呈正相关关系,
这一项表示的是遍历XD查找最小距离值的总时间复杂度,这部分时间消耗和数据量呈正相关关系。那么由于针对ECMWF全球集合预报成员的聚类,其数据维度为33600(地面格点数量)或12600(高空格点数量),而其数据量为50,可见数据维度是远大于数据量的,至于NCEP全球集合预报、T639全球集合预报也同样数据维度是远大于数据量的,因此上述时间复杂度可以简化为
步骤2),利用最小距离连通图的最大差分值逐层分割数据成簇并剔除噪点,由于最小距离连通图MDG[X,E]的边矩阵E保存的是连接顶点所形成的边相互串联起来的一条路径,并且这条路径的生成是以最小距离为优先从某随机顶点开始不断延伸拓展出来的,所以路径中边的顺序必然是先延伸拓展完就近距离的本类簇才会进入到其它类簇中。因此,可以用最大差分值分割边矩阵E的路径形成类簇,步骤如下:
步骤2.1),以最小距离连通图MDG[ID11,E11]作为第一层最小距离连通图;
步骤2.2),将最小距离连通图MDG[ID11,E11]分割为若干个第二层最小距离连通图;
步骤2.2.1),计算最临近边矩阵E11中除第一行外每一行第三列和上一行第三列的差值,取其中的最大值dd1在最临近边矩阵E11中对应行第三列的值以及对应行下一行第三列的值计算平均值,得到均值ddt1;
步骤2.2.2),根据均值ddt1分割最小距离连通图MDG[ID11,E11]的最邻近边矩阵E11,形成最小距离连通图集合,并将该最小距离连通图集合作为第二层最小距离连通图集合,其中,根据均值分割最小距离连通图的最邻近边矩阵、形成最小距离连通图集合的具体步骤如下;
步骤2.2.2.1),令均值为T,最小距离连通图的最邻近边矩阵为EE,根据均值T分割最邻近边矩阵EE,得到若干个分割后的最邻近边矩阵;
步骤2.2.2.1.1),将最邻近边矩阵EE中第三列的值大于均值T的所有行删除,新建矩阵EA;
步骤2.2.2.1.2),将矩阵EA置为空矩阵,将最邻近边矩阵EE中的第一行放入矩阵EA中的末尾后从最邻近边矩阵EE中删除;
步骤2.2.2.1.3),对于矩阵EA中的每一行,在最邻近边矩阵EE的第一列、第二列中查找是否存在和其第一列或第二列的值相同的值,如果存在,将该值在最邻近边矩阵EE中的所在行放入矩阵EA中的末尾后从最邻近边矩阵EE中删除;
步骤2.2.2.1.4),重复执行步骤2.2.2.1.3),直至最邻近边矩阵EE的第一列、第二列和矩阵EA中第一列、第二列不存在相同的值;
步骤2.2.2.1.5),新建空矩阵,将矩阵EA中的值赋予给该空矩阵,得到一个分割后的最邻近边矩阵;
步骤2.2.2.1.6),重复执行步骤2.2.2.1.2)至步骤2.2.2.1.5)直到EE为空矩阵,得到若干个分割后的最邻近边矩阵,形成矩阵集合BB;
步骤2.2.2.2),对于矩阵集合BB中的每个最邻近边矩阵,提取其各条边对应的顶点的唯一标识,得到其对应的顶点集合,生成其对应的最小距离连通图;
步骤2.2.2.3),根据矩阵集合BB中各个最邻近边矩阵对应的最小距离连通图,生成第二层最小距离连通图集合;
步骤2.2.3),标记出第二层最小距离连通图集合中的噪点,其中,标记最小距离连通图集合中的噪点方法如下:对于最小距离连通图集合中各个最小距离连通图对应的顶点集合,依次判断其包含的顶点数量是否小于等于预设的比例阈值乘以n,如果小于等于,则该最小距离连通图为稀疏簇,将该最小距离连通图标记为噪点;
步骤2.2.4),标记出第二层最小距离连通图集合中的自然簇,其中,标记出最小距离连通图集合中的自然簇的方法如下:对于最小距离连通图集合中各个最小距离连通图对应的最邻近边矩阵,分别判断其是否符合正态和指数分布检验,如果符合,则将该最小距离连通图标记为自然簇;
步骤2.3),将第二层最小距离连通图集合作为当前层最小距离连通图集合;
步骤2.4),对当前层最小距离连通图集合进行分割;
步骤2.4.1),对于当前层最小距离连通图集合中的除噪点和自然簇以外的最小距离连通图对应的各个最邻近边矩阵,分别计算其内除第一行外每一行第三列和上一行第三列的差值,获取其中的最大值dd2;
步骤2.4.2),对于dd2对应的最邻近边矩阵,取dd2在该最邻近边矩阵中对应行第三列的值以及对应行下一行第三列的值计算平均值,得到均值ddt2;
步骤2.4.3),根据均值ddt2分割dd2对应的最邻近边矩阵,对其进行分割,形成下一层最小距离连通图集合;
步骤2.4.4),标记出下一层最小距离连通图集合中的噪点和自然簇;
步骤2.4.5),将当前层最小距离连通图集合中除dd2对应的最小距离连通图之外的最小距离连通图加入至下一层最小距离连通图集合中;
步骤2.5),将下一层最小距离连通图集合作为当前层最小距离连通图集合;
步骤2.6),重复步骤2.4)至步骤2.5),直至当前层最小距离连通图集合中不存在噪点和自然簇以外的最小距离连通图为止。
在逐层分割最小距离连通图的过程中,除了排除稀疏簇(噪点)以外,对同层各簇的边矩阵做正态性分布检验和指数分布检验也可以减少步骤2.4)的分割操作并且找到自然簇。其中由于在逐层分割的过程中,大差分值的距离会不断地被去掉,因此各簇边矩阵的距离值分布会不断趋向于正态分布(该分布的X轴为距离值,Y轴为距离值出现频率),所以采用Lilliefors Normal Distribution检验方法来判断距离值分布是否符合正态分布。指数分布检验的目的是判断簇内数据的分布是否呈现超球体以及是否具有真正接近于簇心(簇内数据在各维度上的均值)的数据,由于最小距离连通图的边是以最临近距离相互连接而成的,所以边中各顶点的出现频率即表示其在簇里面所处的位置是边缘还是中心,因此将簇的顶点数量按照出现次数来进行分类并按出现次数升序排序后得到顶点数量的向量xv,对其进行指数分布变换(变换公式yv=1-xv/xv_max,式中xv_max表示向量xv的最大值)后,如yv趋向于指数分布(该分布的X轴为顶点出现次数,Y轴为yv值),则该簇基本呈超球体且具有簇心,这里采用Lilliefors Exponential Distributions检验方法来判断顶点出现次数的分布是否符合指数分布。
步骤3),找出代表性的集合预报成员,完成聚类,本专利对于不断滚动更新的集合预报产品来说具有良好的适用性,能够根据集合预报成员数据的超高维度和小数据量特点,在分裂最小距离连通图生成多层次聚类结果的同时标识出自然簇和噪点。其选择集合预报成员代表的具体步骤如下:
步骤3.1),令当前层的层数为L,对于每一层最小距离连通图,筛选出其中非噪点的最小距离连通图作为该层的待筛选簇集合;
步骤3.2),依次将L层到第一层待筛选簇的数量和预设的个数范围阈值进行比较,直到某一层待筛选簇的数量在预设的个数阈值范围内为止,将该层的待筛选簇集合作为最终待筛选簇集合。预设的个数阈值范围优先设定为3个至5个(一般认为分簇数量最好介于3-5个,否则簇数过多会导致其代表成员的可信程度较低,簇数过少会导致其代表成员的可参考性较差)。如无满足条件的层次,则认为噪点过多,集合成员不具备可聚类性。
步骤3.3),对于最终待筛选簇集合中的任何一个最小距离连通图,筛选出其内最接近簇心的顶点作为其代表顶点,得到最终待筛选簇集合中各个最小距离连通图的代表顶点;
步骤3.4),将终待筛选簇集合中各个最小距离连通图的代表顶点所对应的集合数值天气预报成员作为代表成员。
最后输出代表成员所在簇的预报成员数占预报成员总数的百分比(即代表顶点所在最小距离联通图的顶点数量占顶点总数的百分比)作为该代表成员的可信度。
所述预设的比例阈值优先设定为10%。
所述预设的个数阈值范围为3个至5个。
为说明本发明专利(MDG层次聚类法)在现实中的实施方法,以ECMWF全球集合预报产品为例,其系统流程图如图2所示。
从图2可以看出,ECMWF全球集合预报系统所生成的预报产品经MDG层次聚类法聚类后,以格点数量为维度、成员总数为数据量,在各时次、各时间分辨率上都会生成一个代表成员数量在3至5个的聚类结果,但如果噪点过多不可聚类的话,则会提示不可聚类的信息并给出全部50个集合成员作为聚类结果,最后该结果经图形可视化处理后呈现给预报员使用。
现举例某一次的集合预报聚类如下,取地面层气温的目标时间为2016年8月31日00时(世界时)的6小时预报为聚类时间,则50个集合成员进行一次MDG层次聚类后,再将各代表成员的地面层格点数据双线性内插到南京站,用来考察南京站的6小时地面气温的集合预报可信度,其MDG层次聚类法的结果如下表:
可信度=代表成员所在簇的预报成员数占预报成员总数(50个)的百分比。
按照TS评分方法,认为气温预报的绝对误差在2℃范围内都是击中的(见王艺橙《基于卡尔曼滤波和MOS方法的江苏地区夏季最高气温预报》一文)。那么从上表中可以看出,集合预报成员代表6、15、39号都有所击中,所以本次集合预报成员聚类结果即为6、15、39号集合成员,且其各自的可信度为(36%、28%、16%),而其准确率是击中可信度/总可信度(80%/92%=87%)。
最后,将上表基于时间点的聚类结果扩展到时间段上。选取资料时间:2016年6-8月00Z和12Z的6小时预报;地点:南京、徐州、射阳三地;聚类分析要素:50个集合成员的地面气温预报,其3个月MDG层次聚类结果和Ward、管子法比较如下表:
地点 |
管子法准确率C<sub>mean</sub> |
Ward准确率C<sub>mean</sub> |
MDG层次聚类准确率C<sub>mean</sub> |
南京 |
67% |
70% |
80% |
徐州 |
73% |
75% |
85% |
射阳 |
76% |
78% |
86% |
C
i=排除不可聚类情况的某次集合预报成员聚类结果的准确率,准确率
(n=92天×2次/天-不可聚类次数)
上表中MDG层次聚类的结果是优于Ward聚类和管子法的,准确率可以达到80%以上,这是因为其具有的去噪功能可以屏蔽稀疏簇的干扰而只考虑自然簇的聚类准确性,以及避免了因固定的核心参数设置而带来的对动态时序变化数据的不适用性问题。而从地域上来看南京的聚类准确率普遍偏低一些,这是因为南京地区受周边山地江河的影响,天气形势较其它两地更为复杂多变,因此集合数值预报的总体准确率本身就会有所降低,而基于集合数值预报产品的MDG层次聚类结果自然也就相应的较差一些。
附:本专利算法的所有运行效果及结论依据如下计算机软硬件实现:
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。