基于随机森林的卫星快变遥测数据建模

来源:优秀文章 发布时间:2023-01-19 点击:

张雪欢,孙剑伟,赵黛岩

(中国电子科技集团公司第十五研究所,北京 100083)

现代卫星功能多、价值大,需要其具备提供高连续性服务的能力[1]。卫星长期运行在距地面数百至数万公里的真空、极温、强辐射太空环境中。为了解其在轨工作状态,及时发现问题,地面技术人员需要对采集的遥测数据进行分析[2]。

卫星快变遥测数据包由该领域专家根据卫星有效载荷提取核心参数组成,数据包参数达到上百个,包含主备钟状态、各频点功率测量值等,是判断卫星工作状态的重要数据。因快变遥测数据复杂、数据量大,现有使用人工分析对快变遥测数据建模的方法存在效率较低的问题,而将机器学习算法引入快变遥测数据建模中,可以提高建模效率,为卫星遥测数据分析和智能运维提供了参考。

目前,许多学者在卫星遥测数据建模方面开展了大量研究。Xu[3]针对遥测数据值不平稳和周期变化的特性,使用小波分析方法建立卫星电压、功率遥测值模型,并利用周期延拓的方法对模型进行完善,结果表明模型预测值和实际值吻合良好。Sazonov[4]使用国际空间站“曙光”功能舱近似遥测数据建立太阳能电池数学模型,可以在3~4%的误差范围预测发电量。张弓[5]建立基于改进SumSin的导航卫星服务舱光学太阳反射镜温度模型,并对温度趋势进行预测,平均误差在0.01 ℃左右。梅玉航[6]采用动态加权集成学习方法建立遥测数据模型,结合集成学习和多层感知机的算法提高了预测实时性。王旭[7]使用多种机器学习方法,建立星载铷钟遥测参数模型,并使用模型对锁定信号值进行预测,效果较好的模型均方差为5左右。但上述研究均只提取了少量遥测数据参数进行模型建立,对于包含大量参数(上百个)的高维遥测数据研究较少。同时,目前尚未有研究将机器学习算法应用到卫星快变遥测数据建模中。本文拟将随机森林算法应用于卫星快变遥测数据回归模型的建立,使用模型对某频点功率测量值进行预测,采用R2值、预测误差率等作为评估标准,结果显示该模型拥有较好的预测效果,为卫星快变遥测数据建模提供了一种可行方法,为人工智能在卫星运维方面的应用提供思路。

随机森林(random forest, RF)算法由Leo[8]在2001年提出,它是一种基于决策树的集成学习方法。

决策树是一种经典的机器学习算法,作为一种树模型,其树状结构直观、可解释性强,被广泛应用于数据分析领域[9]。常见的决策树算法包括ID3(iterative dichotomiser 3)算法、C4.5算法和CART(classification and regression tree)算法,三种算法的主要区别在于节点分裂标准。ID3算法使用信息增益作为节点分裂标准,这种建树方法较为简单,但信息增益标准会偏袒取值较多的属性。C4.5算法使用信息增益率作为节点分裂标准,这种方法避免了信息增益标准对取值较多属性的偏好,但因其需要对数据集进行多次计算,导致算法效率较低。CART算法使用基尼系数作为节点分裂标准,这种方法通过建立二叉树的方式简化计算,效率较高。

虽然决策树具有简单直观、可解释性强等优点,但其极易过拟合,为了解决这一问题,随机森林算法应运而生。随机森林算法可以使用多个决策树共同完成学习任务,解决单一学习器训练结果不准确、容易过拟合等问题,提高算法对噪声的容忍度,拥有更好的泛化性能[10-11]。随机森林可以用于解决分类和回归两种问题[12-13]。在解决分类问题时,随机森林方法根据每棵树的分类结果选择多数作为最终结果;
在解决回归问题时,随机森林方法则通过计算每棵树预测值的平均值作为结果[14]。

本文主要使用随机森林处理回归问题,随机森林回归算法的基本原理为:首先,通过bootstrap抽样在原始数据集中有放回地随机抽取数据组成训练样本集,其中,需要保证训练样本容量与原始样本容量一致,并且重复多次创建不同的训练样本集[15-16]。然后,根据抽取的训练样本集分别构建决策树,得到各决策树的回归结果。最后,对各决策树的回归结果计算均值得到最终结果。随机森林回归算法原理示意图如图1所示。

图1 随机森林回归算法原理示意图

随机森林回归算法的数学推导为:对原始数据集中自变量(输入数据)X和因变量(需预测输出数据)Y,假设(X,Y)的分布独立,随机在(X,Y)中抽取训练样本集K,预测结果设为g(X),则其均方泛化误差为:

EX,Y[Y-g(X)]2

(1)

假定有k颗决策树,对k颗决策树计算其预测值{g(K,Xk)}的均值得到随机森林回归的预测结果。当k→∞时,有下式:

(2)

式中,EX,Y[Y-EK(X,Kk)]2表示泛化误差,记为PE**,当k趋近于无穷大时,每颗决策树的泛化误差记为PE*,PE*满足:

PE*=EKEX,Y[Y-g(X,K)]2

(3)

其中:K满足:

(4)

Y=Ekg(X,K)

(5)

2.1 数据描述

本实验采用某卫星于2022年2月21日18时至2022年2月21日22时,4小时内产生的快变遥测数据。其中,数据采样率为1条/秒,4小时内共收集14 400条数据,每条数据包含103个特征,数据维度和数据量较大。

快变遥测数据以.csv的格式存储,为了将数据读入算法中,本文使用pandas包中pandas.read_csv()函数。该函数用法简便,只需将原始数据的.csv格式文件的绝对路径作为函数参数,便可将快变遥测数据存至pandas包中定义的DataFrame数据结构中。DataFrame是一种二维数组,由索引和内容组成,存入DataFrame后可以方便的使用Python中函数对数据进行分析处理。

需要注意的是,采样得到的快变遥测数据值取自星上发送的原始数据值,部分数据值含有字符,直接进行数据处理会因字符型值无法转换为数值型而出现错误,需要对快变遥测数据进行修正。含有字符的数据值存在三类情况:(1)原始数据值由十六进制数表示导致采样数据值中含有字符,这类情况需要将十六进制数转换为十进制数。(2)原始数据值包含字符用于分隔数据,在这类情况中,字符并无表示数据的实际意义,直接删除即可。(3)快变遥测数据中部分参数为状态参数,使用不同字符代表不同状态,这类情况需要将不同字符转化为离散数值,使用离散数值代表原始数据代表的不同状态。

完成修正后将数据按照10 000条和4 400条划分为训练集和测试集,准备进行特征预处理。

2.2 特征预处理

2.2.1 野值剔除

在地面接收来自卫星的遥测数据过程中,受天气、磁场等多种环境因素作用,接收到的遥测数据可能与卫星发送的数据产生较大偏差,这种数据被称为野值。对卫星遥测数据进行处理时,其数据准确性会直接影响遥测数据分析建模效果,如果数据中存在野值,容易造成误判,为地面技术人员分析卫星服务状态增加干扰。

常见的野值剔除方法包括3σ准则、奈尔准则、53H准则等。本文使用53H准则进行野值剔除,其剔除方法为首先对数据值序列求两次中值得到新的数据值序列。然后将新序列通过下式组合成参考值。

y(i)=0.25·xnew(i-1)+0.5·xnew(i)+

0.25·xnew(i+1)

(6)

最后,若有下式成立则当前值为野值,并用参考值替换。

|y(i)-x(i)|>t

(7)

在代码实现上,本文利用Python的数据处理功能,循环遍历所有数据值对所需的各类数据进行计算,得到参考序列,以此为标准进行野值剔除。

2.2.2 特征归一化

卫星快变遥测数据维度较高,其中包含多种有效载荷产生的不同类别特征,各个特征量纲不同、物理含义也不同,需要对数据进行归一化,防止部分特征数量级较大导致特征对模型的影响大于其他特征,造成模型偏差变大,影响最终的模型效果。同时,归一化操作还可以使模型收敛速度加快,提高模型构建效率[17]。

归一化方法有Min-Max归一化、Sigmod归一化等。本文使用Min-Max归一化方法对快变遥测数据进行处理,其变换函数如式(8):

(8)

由上述公式可知,Min-Max归一化将数据中最大值和最小值作为映射标准,对原始数据进行线性变换。由于原始数据均不会超过最大值,因此可以将各个数据值等比例的映射至[0,1]的范围,实现对原始数据的等比缩放。

在代码实现上,本文选择sklearn.preprocessing包中MinMaxScaler方法。需要注意的是,在对训练集进行归一化后,还需对测试集进行归一化,否则将会因为训练集、测试集特征数量级不一致导致使用测试集得到的预测值大幅度偏离真实值。同时,sklearn的MinMaxScaler方法使用fit_transform函数对训练集进行归一化,使用transform函数对测试集进行归一化,保证训练集、测试集的归一化参数一致。如果对测试集也使用fit_transform函数会导致两者归一化参数不同、处理方式不同,从而对预测结果产生影响。

2.2.3 PCA降维

主成分分析(principal component analysis, PCA)是一种常用特征工程方法,PCA使用正交变换方法将原始变量转换为不相关的变量,得到的一组新变量为主成分[18]。

维度较高的快变遥测数据直接建立模型可能会造成“维度灾难”,而PCA可以将高维向量转换为低维向量来解决问题。

在代码实现上,本文选择sklearn.decomposition包中PCA方法。参数选择n_components=0.99、svd_solver=“full”。其中n_components影响降维后的特征维度,当n_components为正整数n时,PCA方法返回的特征维度为n;
当n_components为[0-1]的浮点数时,PCA方法返回满足保留n_components指定百分比的信息量的特征维度,并且此时svd_solver需要选择“full”。本文使用PCA(n_components=0.99, svd_solver=”full”)函数对归一化后的数据进行降维,处理后特征维度为18维,显著降低了数据复杂度。

2.3 模型建立

建立基于随机森林的卫星快变遥测数据回归模型,使用2.1节选取的快变遥测数据中某频点功率测量值作为回归模型预测值,快变遥测数据剩余参数作为输入值,实现基于随机森林的卫星快变遥测数据某频点功率测量值回归预测模型,其主要步骤为:

1)卫星快变遥测数据获取。采用某卫星产生的4小时快变遥测数据作为原始数据,并根据2.1节介绍的原始数据修正方法对数据进行修正。

2)训练集与测试集划分。将步骤1)中获取的修正后原始数据按照10 000条和4 400条的比例划分为训练集和测试集。

3)数据预处理。首先将卫星快变遥测数据集进行野值剔除,根据2.2.1节介绍的方法对野值进行处理。然后进行特征Min-Max归一化处理,根据2.2.2节介绍的归一化方法将原始数据等比映射至[0,1]范围内。最后进行PCA降维处理,根据2.2.3节介绍的PCA降维方法降低数据复杂度。

4)模型参数选取。针对随机森林算法,对4.2节确定的重要参数n_estimators和max_depth通过改进的二次网格搜索方法循环遍历所有候选参数,并通过3.1节介绍的评价指标优选参数。

5)随机森林回归模型构建。根据步骤4)选取的最优参数,使用训练集数据构建随机森林回归模型。构建模型时采用sklearn.ensemble包的RandomForestRegressor函数。

6)模型预测结果分析。将测试集数据输入步骤5)构建的随机森林回归模型,对某频点功率测量值进行预测,使用3.1节的评价指标进行模型预测结果分析评价。

根据以上步骤,得到基于随机森林的卫星快变遥测数据回归模型流程图如图2所示。

图2 模型建立流程

为验证基于随机森林的卫星快变遥测数据模型效果,使用Python语言和Jupyter Notebook开发工具进行实验,参照2.3节所述流程建立对快变遥测数据中重要参数——某频点功率测量值进行预测的回归模型,再利用运行时间、误差率等指标对预测效果进行评价,从而实现模型效果分析。实验的主要步骤为:

1)数据处理。根据2.1节和2.2节方法使用Python库获取实验所需数据,并依据建模和效果分析需求将数据划分为训练集和测试集。

2)回归模型建立。使用1)中划分的训练集数据,运行Python中sklearn库RandomForestRegressor函数,依据2.3节中构建模型子流程建立训练集数据回归模型。

3)模型预测。使用2)中建立的回归模型对1)中划分的测试集数据进行预测。保存预测值准备进行模型评估。

4)模型评估。按照3.1节选取的评价指标,使用Python库中time函数计算运行时间,可以代表当前模型在数据集上的效率;
使用sklearn中score函数计算R2值,可以表示模型拟合时产生的偏差;
使用sklearn中mean_absolute_error函数计算MAE值,表示不考虑方向的预测值平均误差程度;
使用Python库计算误差率及误差率分布,可以直观展示各预测值与其对应的真实值的偏差;
绘制模型预测曲线。计算得到各评价指标结果后,根据结果对模型运行效率、模型预测误差进行分析,评估回归模型效果。

5)对比实验及分析。通过对比实验展示随机森林回归模型效果。采用默认参数随机森林、逻辑回归、K近邻和多层感知机建立回归模型,使用模型进行预测和效果评估,流程参照步骤2)~4)。模型单独评估后,再根据评价指标对比各个模型预测情况,分析模型效果。

根据以上步骤,得到实验流程图如图3所示。

图3 实验流程图

3.1 评价指标

使用某频点功率测量值作为回归模型预测值,快变遥测数据剩余参数作为输入值,利用3.2节选取的使用最优参数的回归模型对某频点功率测量值进行预测,通过预测效果评价模型效果,预测效果指标如下。

3.1.1 运行时间

运行时间为各个模型使用训练集进行拟合和模型使用测试集进行预测的时间。可以代表当前模型在数据集上的效率。针对在轨卫星数据分析这一场景,地面技术人员需要实时了解在轨卫星服务状态,以便对卫星运行时的各类问题做出快速反应。同时,在数据处理方面,卫星快变遥测数据采集间隔短,庞大的数据采集量要求研究人员尽可能提高数据分析处理效率,因此需要选择能够快速生成预测结果的模型。

基于以上要求,本文选取运行时间作为评价指标,通过计算模型在数据集上的运行时间,对模型效率进行表征,运行时间越短,表示模型在数据集上的效率越高。

在代码实现上,选用Python中time函数,在模型开始拟合前运行time函数,并将其记录在start变量中,当模型完成预测时再次运行time函数,并将其记录在end变量中,二者做差便可得到运行时间。

3.1.2R2

R2,亦被称为决定系数、可决系数,表示目标变量在回归中被其他变量(解释变量)拟合时产生的偏差。如果R2小于零,表示模型的预测效果非常差,如果R2大于零,则R2值越大,模型的预测效果越好[19-20]。

计算R2需要样本的残差平方和RSS(residual sum of squares)以及总平方和TSS(total sum of squares),其公式如式(9)和(10):

(9)

(10)

(11)

在sklearn中,预测模型的R2值可以通过模型的score函数得到,例如,针对随机森林模型可以使用RandomForestRegressor.score(testx1, testy1)。其中,testx1为测试集输入值,testy1为测试集真实值。

3.1.3 平均绝对误差

平均绝对误差(mean absolute error, MAE)源于平均误差的度量,是真实值与预测值之差绝对值的和,可以表示不考虑方向的预测值平均误差程度,通常用于评估回归模型。

平均误差的另一种形式是均方根误差(root mean squard error, RMSE),但在大多数情况下,MAE在测量平均模型精度方面优于RMSE[21-22],因此选择MAE作为一种评价指标,其公式如(12)所示:

(12)

在sklearn中,预测模型的MAE可以通过metrics包mean_absolute_error函数得到。

3.1.4 误差率

为更加直观展示各预测值与其对应的真实值的偏差,除了3.1.3节所述平均绝对误差外,本文还引入误差率这一评估指标。通过计算预测值、真实值之差对真实值的比例,可以得到每个预测值的偏差程度,误差率公式如(13):

(13)

3.2 模型参数选择

机器学习算法参数是在开始学习过程之前设置的参数,其对模型效果有较大影响。机器学习算法参数定义了关于模型的更高层次的概念,如复杂性或学习能力。针对随机森林算法,重要的参数包括n_estimators和max_depth,分别代表随机森林中基学习器的数量和基学习器的最大深度[23]。

为了建立效果较好的卫星快变遥测数据随机森林回归模型,本文采用改进的二次网格搜索方法对上述两个参数进行调优。二次网格搜索方法设置两次搜索循环,第一次循环时设置较大的参数搜索范围,并设置较大的循环步长,可以在扩大搜索范围的同时防止时间开销过大。第二次循环时,通过第一次搜索得到的较优参数缩小搜索范围,并设置步长为1,从而得到最优参数组合。二次网格搜索方法相比普通的网格搜索方法,通过一次大范围大步长搜索和一次小范围小步长搜索,显著降低了网格搜索的时间开销。

具体到本文模型,应用二次网格搜索,首先将n_estimators设置为范围30~300、步长10,max_depth设置为范围5~100、步长5,通过嵌套循环搜索每一种参数组合。分析结果,n_estimators为40和180、max_depth为5时均取得score=0.984、MAE=12.27,但n_estimators为180时运行时间为7.87 s,远大于40时的1.9 s,因此将新范围确定为n_estimators:30~50、max_depth:1~10,步长均为1,并再次进行嵌套循环。对第二次搜索结果进行分析,得到n_estimators为39、max_depth为3时有最优结果score=0.984、MAE=12.25、运行时间1.09 s。因此最终确定基于随机森林的快变遥测模型参数为n_estimators=39、max_depth=3。

3.3 模型预测结果分析

使用测试集数据分析模型效果,随机选择30对预测值和真实值画出随机森林模型的预测曲线,如图4所示。

图4 随机森林模型预测曲线

同时,分析模型的预测误差率,计算得到测试集4 400个数据中共有3 912个数据误差率小于2%,并且最大误差率不超过±5%。误差率分布如表1所示。

结合score=0.984、MAE=12.25、运行时间1.09 s共四个评价指标可知,模型可以较好地预测某频点功率测量值,且模型运行效率高。

表1 随机森林模型预测误差率及分布

上述模型使用改进二次网格搜索算法对模型进行了参数调优,可以得到模型的最优参数,提高模型预测效果。若不进行参数调优,使用默认参数直接建模其误差率如表2所示。

表2 默认参数随机森林模型预测误差率及分布

此外,使用默认参数的随机森林模型score=0.97、MAE=12.33、运行时间39.46 s。由此可知,虽然其在预测误差方面与经过参数调优的随机森林模型差距较小,但默认参数随机森林模型运行时间远远大于参数调优后的模型。通过改进的二次网格搜索得到的最优参数对模型运行效率有显著提升,这对于提高卫星快变遥测数据建模实时性具有一定意义。

除了随机森林算法代表的装袋算法,本文还选择了机器学习中线性算法、非线性算法以及神经网络算法作为对比,具体方法为逻辑回归、K近邻、多层感知机。三种算法的误差率如表3~5所示。

表3 逻辑回归模型预测误差率及分布

表4 K近邻模型预测误差率及分布

表5 多层感知机模型预测误差率及分布

四种算法的score、MAE、运行时间对比如表6所示。

表6 四种算法的评价指标对比

对比发现,随机森林算法在±2%以内误差率样本数量、score和MAE三个指标上明显好于逻辑回归和K近邻算法。同时,虽然多层感知机在误差率、score和MAE方面较为接近随机森林算法,但多层感知机的训练时间长、效率不高,类似未经参数调优的随机森林模型,多层感知机在遥测数据建模方面实时性较差,具有一定劣势。因此随机森林算法在卫星快变遥测数据建模方面优于其他几种方法。

实现卫星快变遥测数据建模有助于了解卫星服务状态,推动人工智能在卫星运维中的应用。本文使用随机森林算法建立卫星快变遥测数据模型,对某频点功率测量值进行预测,结果显示模型预测效果较好、运行效率高。对比逻辑回归、K近邻和多层感知机算法,随机森林算法在评价指标上具有明显优势。然而,在实验过程中多层感知机算法也表现出了极大的潜力。作为神经网络的一种基础算法,多层感知机已有较好的效果,在未来的研究中应该重点关注神经网络算法在快变遥测数据建模上的应用,以期获得更好的预测效果。

猜你喜欢 遥测卫星森林 前馈复合控制在提高遥测跟踪性能中的应用遥测遥控(2022年1期)2022-02-11miniSAR遥感卫星军民两用技术与产品(2021年10期)2021-11-25静止卫星派科学家(2019年3期)2019-08-18远程控制式遥测地面站关键技术研究民用飞机设计与研究(2019年2期)2019-08-05基于WPF的遥测CAS信息实时监控系统设计开发民用飞机设计与研究(2019年2期)2019-08-05自适应模糊PID控制的遥测方舱温度调节方法电子制作(2019年11期)2019-07-04哈Q森林作文大王·笑话大王(2017年1期)2017-02-21哈Q森林作文大王·笑话大王(2016年10期)2016-10-18Puma" suede shoes with a focus on the Product variables科学与财富(2016年28期)2016-10-14哈Q森林作文大王·笑话大王(2016年7期)2016-08-08推荐访问:遥测 建模 随机
上一篇:基于WAE改进模型的文本分类方法研究
下一篇:广电5G室内覆盖分析与研究

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有