1. 引言
及时、准确、高效的交通预测结果作为交通管理系统中的先决输入条件,是交通信息诱导系统的核心模块。通过建立合理模型进行科学快速的预测来降低出行者出行成本,对交通管理者实现交通控制和公共交通系统的有效发挥也有决定性影响。因此运用准确性强、运行效率高、鲁棒性好的预测模型成为关键。在过去的几十年里,学者们提出了许多短期交通参数预测方法,主要涉及到时间序列 [1] 、统计概率 [2] [3] 和机器学习 [4] [5] 等领域的模型。然而,大量的研究发现,交通数据具有随机性和非线性,时间序列算法依赖于线性关系,因此不适合用于分析非线性交通数据。统计概率方法基于概率论和数理统计,建模和求解过程相当复杂,且该方法对数据分布敏感,也导致预测模型稳定性差。基于机器学习的预测方法高效、快速、准确,在预测问题上有着广泛的应用也取得了出色的表现。近年来,为了寻找更好的交通参数预测方法,许多学者将注意力放在交通数据的特征上,如交通数据的周期性、波动性和时空特征等,并基于上述预测模型构建更先进的模型,在以下两方面做出了很多突破与创新:
在交通数据分解方面,很多学者提出将交通数据分解为线性和非线性两部分,研究出组合模型可以对两部分进行分别预测,并取得了更好的预测效果,验证了交通数据分解工作的有效性。如Khashei等 [6] 提出使用自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model, ARIMA)预测交通流序列的线性部分,用人工神经网络(Artificial Neural Networks, ANN)预测其非线性部分,最后将两部分预测结果相加得到最终预测结果,与原先单一模型的预测结果对比组合模型有效提高了预测精度。Chen等 [7] 采用Fourier变换的方法来对交通流中的周期部分进行建模,采用长短记忆网络(Long Short Term Memory, LSTM)模型、支持向量机(Support Vector Machines, SVM)模型、渐进梯度回归树(Gradient Boost Regression Tree, GBRT)等监督学习方法来预测含有时空信息的波动项,再将两个预测结果组合在一起,得到了准确度高、稳定性强的结果。
在时空特征方面,道路网络是一个复杂的连通网络,某处的交通不仅在时间上与历史流量相关,而且在空间上受到邻近区域交通的影响 [8] 。为了更好地捕捉时间和空间特征,很多学者利用深度神经网络(Deep Neural Networks, DNN)的模型来学习数据的空间特征,如深度信念网络(Deep Belief Network, DBN)、卷积神经网络(Convolutional Neural Networks, CNN)、稀疏自动编码(Sparse Autoencoder, SAE)和降噪自动编码(Denoising Autoencoder, DAE)等模型;再结合时间序列算法、监督学习算法来学习数据的时间特征,如ARIMA、LSTM和SVM等,从而实现提取交通数据的时空信息,并运用到整个城市的交通流预测中去 [9] [10] [11] [12] 。这种结合的方法的优点是针对具有时空拓扑性质的交通数据,能够有效提取交通数据的时空特征,从而提升交通数据的预测精度。
本文通过研究交通数据的特征,如周期性、非线性和时空相关性等,基于以上特征提出TDD + STFE预测模型。从交通数据分解和时空特征提取的角度出发,将交通数据分解为线性部分和非线性部分,再分别采用合适的方法进行预测。具体地,在线性部分可采用Fourier级数理论拟合交通数据的周期项并实现预测,在非线性部分借助CNN-GRU组合模型提取波动项数据时空特征建模预测,最后将两部分的预测值相加,以提高预测的准确度。此外通过模型对照来验证交通数据分解和时空特征提取工作对于提高预测准确度的有效性。
2. 交通数据特征分析
交通数据在时间维度和空间维度均具有非常明显的特性,如,在时间维度上,由于人们的社会作业及外出出行需求,导致交通数据表现出非常明显的周周期性;在空间维度上,由于道路的网络空间拓扑结构,使得邻近交叉口的交通之间具有较强的相关性。同时,交通数据的预测性能与数据序列合理的特征选择息息相关,因此在进行预测时,将交通数据的相关特征考虑进来,是提高预测精度的必由之路。
2.1. 交通数据的周期性和波动性
同一交叉口的交通数据,在宏观角度上具有一定的日相关性,较强的日相关性称为周期性,周期性属于交通数据中的线性部分;在微观角度上又呈现出高度的随机性、复杂性和非线性,这是交通数据的波动性,存在于交通数据去除周期项的波动项中 [13] 。
1) 城市居民的出行表现出一定的规律性,这体现在交通状态上,会呈现出畅通、拥堵等现象的日循环。分析时间序列更长的连续交通数据会发现,由于工作日和非工作日的周重复性,每隔一周交通数据也会呈现出高相似的数据趋势。图1是贵州省贵阳市东林寺路与长岭北路交叉口2021年3月1日~7日(周一到周日)的平均车速(每5 min)时序图,从图中可看出,观测路口周一到周日平均车速趋势相似度大,工作日和非工作日的数据趋势虽有所不同,但走势变化不大。一周7天平均车速数据的Pearson相关系数的如表1,从表中可以看出,7日的相关系数值均在0.8以上,说明平均车速的日相关性较高。选择该交叉口连续5周的周三平均车数数据,绘制成平均车速时序图如图2所示,计算的Pearson相关系数的如表2。无论是从时序图还是从相关系数表中,都可以发现各日车辆平均车速数据之间的周期性变化规律。
2) 在交通条件方面道路车道数、路况和连通度等对驾驶员会产生影响;由于出行者出行目的不同及考虑的重点各不相同,那么他们制定的行车计划就可能存在巨大的差异;再加上驾驶员自身的状况,比如驾驶经验和心理素质,驾驶员对同一交通状况的反应和选择各不相同。在交通条件、出行习惯、驾驶员状况这三方面的综合作用下,增加了交通流的随机性,导致交通流量数据出现波动,但这些影响不会线性叠加,会相互作用,使得交通流呈现复杂的非线性特征。
![](//html.hanspub.org/file/1-1700581x8_hanspub.png?20230403102231516)
Figure 1. Timing diagram of one-week average vehicle speed
图1. 一周平均车速时序图
![](Images/Table_Tmp.jpg)
Table 1. Pearson correlation coefficient of one-week average speed at intersection
表1. 交叉口一周平均车速Pearson相关系数
![](//html.hanspub.org/file/1-1700581x9_hanspub.png?20230403102231516)
Figure 2. Time series diagram of average vehicle speed on Wednesday in adjacent 5 weeks
图2. 相邻5周周三平均车速时间序列图
![](Images/Table_Tmp.jpg)
Table 2. Pearson correlation coefficient of average speed on Wednesday in adjacent five weeks
表2. 相邻5周周三平均车速Pearson相关系数
2.2. 交通数据的时空相关性
交通数据具有时空特征信息。对于某一地段,在时间视角需考虑其自身的历史交通对未来交通的影响,未来时刻的平均车速、等效饱和度、车辆平均延误时间与历史数据相关。在空间视角,由于传播性质,当邻近路口道路情况发生变化时,当前交叉口的交通情况也会随之改变,因此
时刻的交通数据不仅受前一段时间交通的影响,还受当前时刻不同邻近路口交通的影响,这反映的就是交通数据在时空维度的相关性特征,如图3所示。同样,当聚焦到交通数据的波动项上时,亦可推理出其也具有较强的时空相关性。
![](//html.hanspub.org/file/1-1700581x11_hanspub.png?20230403102231516)
Figure 3. Temporal and spatial correlation of road traffic
图3. 道路交通的时空相关性
3. 基于交通数据分解和时空特征提取的交叉口交通状态预测模型
研究证明,将交通数据分解成不同的部分,并采用合适的方法进行预测是能够提升准确度的,因此针对城市道路交叉口交通数据上所体现出的周期性与波动性,基于交通数据分解的思想,根据其性质的不同,将其分解为两部分,一部分是周期项,即交通数据中线性趋势的确定值,另一部分是波动项即交通数据真实值去除周期项的剩余残差项。如式(1)所示。
(1)
式中,
为
时刻交叉口
的交通数据的真实值,
为周期项,
为剩余波动项,
。记交通数据的周期向量为
,波动项向量为
,对两个部分分别采用使用不同的方法进行预测,交通数据的周期部分应是具有固定时间周期性变化和周期性模式的时间序列,本文选用Fourier级数对其进行拟合;对于交通数据中的波动部分,考虑借助具有强大特征提取能力的循环卷积神经网络模型对波动项进行预测。总结以上所介绍的交通数据预测方法,在预测时将交通数据分解及时空特征提取的工作加入进来,本文将此预测方法记为TDD + STFE预测模型。预测模型的基本框架如图4:
![](//html.hanspub.org/file/1-1700581x21_hanspub.png?20230403102231516)
Figure 4. Frame diagram of TDD + STFE prediction model
图4. TDD + STFE预测模型框架图
3.1. 基于Fourier变换的周期项预测
3.1.1. Fourier级数理论
任意一个具有2L周期的频谱都可用正余弦曲线组合的三角函数来表达。交通数据呈现出非常典型日周期模式,因此采用Fourier变换的方法将交通流的周期部分展开为Fourier级数的形式是非常合适的,使周期部分最终形成周期正弦和余弦的组合 [14] ,具体计算过程如式(2)所示。
(2)
其中,
为当前时刻时间戳,2L为周期,J为Fourier级数展开项数,a0为常数项,各项正弦余弦系数计算如式(3)、式(4)所示。
(3)
(4)
根据既有的周期性部分
,再结合式(3)、式(4)计算Fourier级数各项系数,进而确定周期项的表达式,进一步将周期项从交通数据中分离出来,得到剩余波动项,完成交通数据分解的工作,同时也能实现交通数据未来时刻周期项的预测。
3.1.2. Fourier级数展开项数的确定
赤池信息量准则(Akaike Information Criterion, AIC)是衡量统计模型拟合优度的标准,最早是由日本统计学家赤池弘次提出的 [15] ,AIC准则基于熵的概念,提供了一个可以权衡估计模型复杂性和拟合数据优度的标准,通常从多个模型中进行选择时,一次计算出各模型的AIC值,挑选AIC值最小的模型为最优模型。本文采用AIC准则来选择Fourier级数的最佳展开项的项数
[16] ,进而确定交通数据线性部分的周期表达式。AIC值的计算方式如式(5)所示,表示为拟合精度与参数个数的加权函数,式中L为似然函数。
(5)
3.2. 基于循环卷积神经网络的波动项的预测
3.2.1. RNN模型概述
循环神经网络(Recurrent Neural Networks, RNN)目前已在时间序列处理领域获得巨大成功,单向RNN由输入层、隐含层和输出层组成,是最简单的循环神经网络结构,模型结构示意图如图5所示。从结构上看,RNN神经元能保存前神经元的信息,与当前神经元的输入信息结合后输出给下一个神经元。每一时刻的输出,就是当前时刻的输入信息结合上一时刻的信息得到一个输出,其独特环路结构原则上可以保留时序数据的长期时间上下的信息,因此在处理序列数据方面表现优异。它自带反馈的神经元,对具有序列特性的数据非常奏效,对于任意长度的时序数据它都能高效处理 [17] ,上述突出的优点使得在RNN模型成为交通相关指标数据预测主流模型。RNN的缺点在于由于模型对所有时序信息均作了保留,因此会引发梯度爆炸或者梯度消失问题,导致其只能学习到短期的依赖关系 [18] 。
3.2.2. LSTM模型概述
LSTM是一种从RNN延伸出来的模型,在RNN的基础上添加了记忆细胞和3个门的概念,即输入门(Input Gate)、输出门(Output Gate)和遗忘门(Forget Gate),通过这3个门控制信息在记忆单元中添加或从记忆单元中遗忘,有选择性的储存信息,使其能够提供明确的长期记忆,从而解决了RNN随着数据量增大而造成的梯度爆炸或梯度消失的问题 [19] [20] 。LSTM的网络结构如图6所示。
LSTM网络状态更新的过程可以用下式表示,其中
表示
时刻的输入序列,
,
,
和
表示权重向量,
表示输入门,
表示遗忘门,
表示输出门。
表示新的细胞状态,
表示更新细胞状态,
表示隐藏层输出,其中
,
,
和
均为偏差向量,
是激活函数。
(6)
(7)
(8)
(9)
(10)
(11)
3.2.3. GRU模型概述
GRU模型常被称为是LSTM模型的变体,其背后的目的与LSTM非常相似,同样是在保留长期序列信息下减少梯度消失问题。GRU模型内部有两个门控机制,分别是重置门(Reset Gate)和更新门(Update Gate),重置门决定遗忘先前信息的程度,更新门用于控制信息输入和遗忘之间的平衡。通过这两个门控制信息的累积速度,达到长期记忆的效果。图7给出了GRU的神经元结构,与LSTM相比,GRU的神经元更为简单,却能实现与LSTM相同或者更好的性能,同时它也比LSTM的训练更快 [21] 。
GRU网络状态更新的过程可以用下式表示,其中
表示
时刻的输入序列,
,
和
表示权重向量,
,
和
均为偏差向量,
表示重置门,
表示更新门,
表示新的细胞状态,
表示序列输出,
是激活函数。
(12)
(13)
(14)
(15)
3.2.4. CNN-GRU模型概述
卷积层是构建CNN模型的核心,卷积的一个重要特点就是可以降低噪音,增强特征信息,输入数据和滤波器通过卷积计算,提取数据的局部特征,特征提取层有多个特征信息,后续的池采样层进一步提取特征;此外卷积计算过程中,一般会先提取初级特征,多层频繁的卷积和池采样提取中级、高级特征,不断的提取和压缩,得到较高层次的特征信息,最终,就是利用这一高层次的特征信息完成任务,CNN模型的计算过程可通过式(16)~(18)表示。
(16)
(17)
(18)
其中,
为卷积核的特征映射结果,
为卷积层激活函数,
是权重向量,
是偏差向量,“
”表示卷积计算,
为第
次池化的输出结果,
为全局最大池化的输出结果。
CNN-GRU模型是简单的卷积层与GRU的集成,二者的结合不仅能够继承GRU处理时间特征的优势,还能借助卷积层提取数据的空间特征,从而构建时空特征模型 [22] ,因此在对交通数据的波动项进行预测时,本文了选用CNN-GRU模型。此模型可以划分为三部分,第一个部分是从输入到卷积层,数据输入经过卷积和池化运算提取数据的空间特征。第二部分是由循环神经网络构成,经过卷积层提取的结果,再输入到GRU循环神经网络层来学习其数据的时序特征,实现准确的时间序列预测,同时加入Dropout层隐藏掉部分神经元,防止模型过拟合现象,也能加快训练的速度。第三部分是MLP层,由Dense组成,输入两个网络提取出的信息后完成最终的预测,该层的输出结果即为车辆平均车速波动项的预测值。CNN-GRU网络结构如图8所示。
![](//html.hanspub.org/file/1-1700581x83_hanspub.png?20230403102231516)
Figure 8. CNN-GRU network structure
图8. CNN-GRU网络结构
3.2.5. CNN-GRU模型训练及参数设置
在神经网络模型的训练过程中,参数设置的差异会直接影响到模型的性能,因此模型训练的同时找到使预测值和真实值的误差值尽可能小的参数是非常重要的 [23] 。模型参数寻优的方法有随机搜索(Random Search) [24] 、网格搜索(Grid Search) [25] 、贝叶斯优化方法(Bayesian Optimization) [26] 以及梯度下降搜索(Gradient Descent Search) [27] 等,以上方法都是通过比较模型的预测效果进行参数调整。
神经网络训练过程中,完整的数据集通过一次神经网络并且返回了一次的过程被称为是一个epoch。但是对于数据有限的情况下,神经网络的训练仅依靠一个epoch是远远不够的,需要将完整的数据集在同样的神经网络中传递多次,增加模型的epoch值,从而达到降低训练误差的效果,但epoch的值也不是越大越好,当其增加到一定程度,模型的训练过程改善收效甚微甚至会出现过拟合的现象。当一个数据样本数量太过庞大时,会影响到模型的优化程度和速度,可以把它分成多个小块,也就是就是分成多个batch来进行训练,batch_size为一次训练所选取的样本数,为1时意味着模型训练采用全数据集的形式。epoch和batch_size这两个参数的确定尤为重要,通过仔细调整,才能达到高精度和时效性的要求。
通常神经网络的层数越多,模型结构越深,模型的表达和学习能力也会随之增强,模型的预测精度也会逐步提高,但是模型变深的同时同样也为训练工作增添了难度,加大了计算量和训练时间成本。对于CNN-GRU模型中卷积层的设置,根据经验,一般设置为两个卷积加一个最大池化层较为合理。对于循环神经网络层,开始训练时,初始设定模型的层数为1,逐步增加层数,同时通过实验对目标进行预测,寻求预测误差最小的层数为最优的循环神经网络层层数。全连接层就算神经网络中最普通的层,往往设置两个Dense层是足够的,层中还需要指定神经元的数量,以及激活函数,本文选用“relu”为激活函数。对于CNN-GRU模型中各层卷积核及神经元数量的确定,本文是借鉴相关领域专家的经验,并学习他们的网络模型架构的设计来设置相关参数。
4. 案例分析
选取贵阳市长岭南(北)路4个交叉口进行实例分析,分别为长岭南路与阳关大道交叉口、长岭南(北)路与观山东(西)路交叉口、长岭北路与金珠东路交叉口和长岭北路与东林寺路交叉口,为方便后续描述,分别将以上4个交叉口简称为交叉口①、交叉口②、交叉口③和交叉口④。长岭南(北)路位于贵阳市观山湖区,是区内交通性主干道,周围有国际会议中心、金融城、城市公园等交通吸引点,车流量较多,各交叉口地理位置见图9。针对TDD+STFE模型训练工作的开展,选取数据集内前21天的数据构建训练集,选取最后7天的数据构建测试集。
![](//html.hanspub.org/file/1-1700581x84_hanspub.png?20230403102231516)
Figure 9. Spatial distribution of intersections
图9. 交叉口空间分布图
4.1. 误差分析
为了评估模型的预测效果,选用两个评价指标来度量我们模型的有效性:均方根误差(Root Mean Square Error, RMSE)和平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)。
(19)
(20)
其中
为预测值,
为实际值,
为评估样本的大小。RMSE反映的是预测值与实际值均方根误差,可以评价预测的偏差程度,RMSE的值越小,说明预测模型描述实验数据具有更高的精确度。MAPES使用绝对值来避免正误差和负误差相互抵消,是一种相对性度量,MAPE为0%表示完美模型,MAPE大于100%则表示劣质模型。
4.2. 交通数据的分解
本文利用R软件对己知周期性部分进行Fourier变换,得到各观测点周期部分Fourier级数展开式。分别计算展开式项数为1~60对应的AIC值,选取AIC值最小的项数为展开式的最佳项数。以东林寺路与长岭北路交叉口为例,图10给出了平均车速Fourier级数设置不同展开项数时所对应的AIC值。从图中可以看出当Fourier级数展开式的项数设置为17时,AIC值最小,对应前17项正余弦系数见表3。由此我们可得Fourier级数展开式的具体计算公式,根据式(1)和式(2)计算得出各时刻对应周期值、波动值和未来时刻周期项的预测值。图11绘制了东林寺路与长岭北路交叉口车辆平均车速的原始值、周期项和波动项的时序图。
路网中交通数据里的波动部分具有时空相关性,时间上的相关性很容易理解,历史时间上交通数据的动荡会引发下一时刻的数据变动。交通数据空间上的相关性主要体现在,邻近区域交通的相似变化情况。图12给出了4个交叉口的平均车速波动部分的时序图,从图中可以看出,4个交叉口的波动项变化趋势很相似,处在高峰期时,数据波动的区间大,处在非高峰期时,数据变化的幅度小。
![](//html.hanspub.org/file/1-1700581x90_hanspub.png?20230403102231516)
Figure 10. AIC values corresponding to the first 60 terms of the Fourier series expansion
图10. Fourier级数展开前60项数对应的AIC的值
![](Images/Table_Tmp.jpg)
Table 3. The expansion coefficient of Fourier series at intersection ① (number of terms J = 17)
表3. 交叉口① Fourier级数的展开系数(项数J = 17)
![](//html.hanspub.org/file/1-1700581x91_hanspub.png?20230403102231516)
Figure 11. Original value, periodic term and fluctuation term of average vehicle speed
图11. 平均车速的原始值、周期项和波动项
![](//html.hanspub.org/file/1-1700581x92_hanspub.png?20230403102231516)
Figure 12. The average speed fluctuation part of four intersections
图12. 4个交叉口的平均车速波动部分
4.3. CNN-GRU模型的构建
本文实验使用的深度学习计算平台为8核CPU,语言环境为Python3.8,开发环境是1.8版本的Tensorflow。为消除各交叉口波动项数据之间的量级影响,实验首先对波动项数据进行归一化处理,具体计算方式如式(21),其中
为交叉口
车辆平均车速波动项的最大值,
为交叉口
车辆平均车速波动项的最大值。
(21)
确定好模型的结构和训练集后,开展模型参数寻优的工作。首先,在训练初始化时设置多组超参数,快速训练模型,然后使用训练好的模型进行训练,并设置测试集,计算预测值和实际值的误差,最后选择预测性能最好模型的超参数,在此基础上进一步微调,逐步提升模型的训练。基于本文数据设定模型的epoch为50,batch_size设置为64,Dropout设置为20%,输入的历史序列长度指定为10。表4给出了CNN-GRU模型基于多组波动项数据及不同循环神经网络层层数设置下模型的误差值排序,综合3组数据预测准确度排名来看,当循环神经网络层层数为3时训练效果最优。
![](Images/Table_Tmp.jpg)
Table 4. Error ranking of CNN-GRU model under different levels of cyclic neural network
表4. 不同循环神经网络层层数设置下CNN-GRU模型误差排名
综上,本文选定的最佳CNN-GRU模型网络结构如下表5:
![](Images/Table_Tmp.jpg)
Table 5. CNN-GRU model network structure
表5. CNN-GRU模型网络结构
4.4. 预测结果分析
基于以上交通数据分解及模型训练的工作,本节将在测试集上进行预测,并研究模型的预测性能。模型分别以4个交叉口的平均车速数据作为输入,图13绘制了交叉口①在测试集上的车辆平均车速真实值与预测值对比图,从图中可以看出,本文所提TDD + STFE模型预测值与实际值可以很好地吻合,在数据平稳变化的时段,模型的预测能够把握整体的变化趋势。数据变化比较剧烈处,在整体趋势变化和波峰波谷的转折变化方面都能准确预测。
![](//html.hanspub.org/file/1-1700581x98_hanspub.png?20230403102231516)
Figure 13. Prediction effect diagram of average vehicle speed prediction model
图13. 平均车速预测模型的预测效果图
为了更直观地评估本文所提出模型的预测效果,实验选取了未进行交通流分解的模型(CNN-GRU, GRU和RNN)和未考虑交通流量时空特征的模型(GRU和RNN)与所提TDD + STFE模型进行对比。所有实验都是用同一组数据重新训练得到的最优模型。不同模型的在测试集上的性能评价结果见表6,TDD + STFE模型均具有最小的RMSE和MAPE,说明在做交通数据预测时增加交通数据分解和提取时空特征的工作都能够提升预测的准确性。
![](Images/Table_Tmp.jpg)
Table 6. Error of each prediction model under average vehicle speed
表6. 平均车速下各个预测模型的误差
5. 结论
本章建立了基于交通数据分解和时空特征提取的车辆平均车速预测模型。在预测模型中,首先借助傅立叶级数理论将车速数据中的周期部分描述为三角正余弦的组合,再将交通数据分解为周期项和波动项,进一步借助CNN-GRU模型进行预测同时对输入波动项进行时空特征提取,最后将未来时刻周期项和波动项预测值相加得到平均车速的预测值。为验证TDD + STFE模型的性能,本研究使用中国贵阳市长岭南(北)路交叉口过车数据进行实验,实验结果分析得到,本文所提出的预测模型具有更准确的预测效果,在两个评价指标RMSE、MAPE上都优于对照模型,表明在对交通车辆平均车速数据进行预测时同时考虑交通数据周期性和时空特征能够有效提高预测的准确度。综上所述,基于TDD + STFE模型的交叉口交通状态预测方法是有效、先进的预测方法。
对于未来的工作,我们侧重于以下三点:1) 将处理更多类型的交通数据,以证明本文的TDD + STFE模型的准确性和普适性。2) 对于大型城市交通网络,卷积对路网交通流量的空间特征建模的能力可能有限,后续考虑研究更强大的模型,如图卷积网络。3) 考虑到交通数据预测的实时性也是非常重要的,将进一步研究在线预测模型。
致谢
感谢中国贵州省贵阳市公安交通管理局提供的检测器数据。
基金项目
本项目受国家自然科学基金(12161016, 11661018)、贵州省科技计划项目([2020] 5016)资助。
NOTES
*通讯作者。