APP下载

基于CART决策树算法的飞行动作识别研究∗

2021-09-09王凤芹徐廷学颜廷龙

舰船电子工程 2021年8期
关键词:特征参数基尼系数决策树

王凤芹 徐廷学 颜廷龙

(海军航空大学 烟台 264001)

1 引言

随着电子信息技术、自动化技术、计算机科学与人工智能等技术的飞速发展,飞行训练实施过程中飞行质量的自动化评估需求越来越迫切。要开展飞行质量的自动化评估,首先要进行飞行动作的自动化识别。谢川等在文献[1~2]中针对复杂特技飞行动作的识别问题,构建了基于专家知识库和知识推理机的飞行动作识别方法,该识别方法受限于专家知识库;孟光磊等在文献[3]中以飞行模拟训练的机动动作对应飞参数据为研究对象,构建了机动动作识别的动态贝叶斯网络模型,借助基于网络模型的递归推理的智能方法识别飞行动作;周超等在文献[4]中主要针对战术机动动作数据随机性强和长度不一的特点,提出了基于改进动态时间规整算法的飞行动作识别方法,该方法利用飞行动作的不同特征参数设置不同贡献度,计算飞参数据与标准模板数据的帧匹配距离,根据距离大小进行飞行动作的识别。这三篇文献都在某个具体应用场景下实现了飞行动作的自动识别,模型所涉及的样本数据集偏小,没有借助机器学习的优势。

当前,随着飞机上各组成部件信息化水平的提高,飞行过程中按照时间能采集到的数据越来越丰富,形成飞参大数据。如何有效利用飞参大数据、采用机器学习算法进行飞行动作的自动化识别是当前飞行训练领域的一个研究热点。为此,需要研究两个方面的内容:一是各飞行动作对应的关键特征参数;二是如何应用机器学习算法将基于时间序列的飞参数据进行分段,标识各分段序列对应的飞行动作。

2 飞行动作识别问题分析

2.1 问题描述

飞机飞行过程中借助各类传感器产生的大量数据,都存储在飞机上的快速存取记录器QAR(Quick Access Recorder)中,这些数据经过飞参译码系统的分析和译码,得到按照时间序列排列的飞参数据。飞行动作的自动化识别就是输入译码后的飞参数据,经过机器学习算法的分析处理,输出各时间段的飞行动作。

2.2 特征参数

不同飞机机型的飞行训练大纲不同,本文主要以起飞滑行、爬升、平飞、转弯、降落和着陆共6个最基本动作为例,进行基于机器学习算法的自动化识别。在算法处理之前,首先依据飞行训练大纲和飞行专家的意见,建立飞行动作的主要特征参数[5],如表1所示。

2.3 流程设计

针对飞行动作的自动化识别问题,算法设计之前首先进行识别流程设计,识别步骤如图1所示。

整个模型主要包括飞参数据和飞行动作识别标准库采集入库、数据预处理[6]、飞行动作识别和识别结果反馈四个步骤。表2描述了每个步骤的主要工作内容。

3 飞行动作识别算法设计

为每个时间点特征参数向量标注飞行动作的问题属于分类问题的一种,决策树是解决分类问题的经典机器学习算法之一。算法利用6个基本动作对应模板时间序列数据D={D1,D2,......,D6}训练机器学习模型,递归构建CART(Classification And Regression Tree)决策树,然后用建立的决策树模型标注各时间段的数据集合T对应的飞行动作。

算法输入:

1)m个时间点的飞参数据集合记为T={t1,t2,......,tm};

2)6个标准动作对应模板时间序列数据集合记为D={D1,D2,......,D6}。

算法输出:

标记飞参数据集合T={t1,t2,......,tm}中每个时间点ti=(ti1,ti2,......,tin)对应的飞行动作及所处的阶段。

算法步骤:

步骤1对于标准动作模板数据D={D1,D2,......,D6},计算标准飞行动作Dr第u个时间点的n元特征参数向量之间的高度变化率 Δh、俯仰角变化率Δα、航向角变化率Δβ、倾斜角变化率Δγ,首先按照式(1)计算数据集D的基尼系数。

式(1)中pk表示数据集D中第k个类别在D中所占比例,相对于采用信息增益率计算对数的方式,要简单。基于数据集D,按照式(2)计算特征c的基尼系数。

其中,|D|表示数据集D所有时间序列向量的数目,E表示特征c在数据集D上的取值类别总数,|De|表示数据集合D中所有特征c取值为e的向量总数,Gini(De)是按照式(1)计算基尼系数。

步骤2数据集D依据基尼系数值最小的特征参数C,划分为两部分得到其左右节点,记为Dleft和Dright。

步骤3停止构建决策树的条件有两个,一是判断阈值与当前基尼系数大小关系,若当前基尼系数小于阈值,则当前节点停止构建决策树子树,否则继续构建;二是检查找飞参特征参数集合D中是否存在能继续分解集合的分类特征,如果没有找到,则停止构建决策树。

步骤4对D节点的左右子节点Dleft和Dright递归执行步骤1至步骤4,直到从满足步骤3的条件退出,返回决策树训练模型Tree。

步骤5标准模板数据集D的训练数据集完全决定了上述决策树的建立过程,该过程特别容易产生决策树模型的过拟合问题,可以通过对决策树进行剪枝的方式避免。所谓剪枝,删除非叶子节点{T1,T2,T3,......,Tn}中表面误差率增益值最小(计算方法如式(3)所示)的αi对应非叶子节点Ti的左右子节点,用子树的叶子节点替换非叶子节点Ti,重复该过程直至没有任何非叶子节点可以替换,剪枝完成。

利用生成的决策树Tree对m个时间点的飞参数据集合记为T={t1,t2,......,tm}进行飞行动作的自动化识别,标注各时间段的飞行动作。

4 实验设计与性能分析

4.1 实验设计与实现

步骤1数据采集:实验选取某型飞机优秀飞行员飞出的包含6个标准飞行动作的基于时间序列的飞参数据作为数据集,由多名飞行领域专家对该飞参数据进行分段动作标注,标注后的飞参数据作为飞行动作识别标准库。

步骤2数据预处理:利用sklearn.preprocess⁃ing包中 Imputer类填补缺失值、scale,MaxAbsScal⁃er,MinMaxScaler类将数据标准化、normalize方法将数据归一化。

步骤3飞行动作识别:利用飞行动作识别标准库进行CART决策树模型的训练和测试,取其中80%的数据作为训练数据集,20%数据作为测试数据集。利用sklearn.tree包决策树分类器Decision⁃TreeClassifier构建CART决策树,利用sklearn.mod⁃el_selection包GridSearchCV类对DecisionTreeClas⁃sifier进行调参,寻找到最优的参数,使得构建决策树最优。利用构建的最优决策树对待识别的飞行动作时间序列参数进行动作识别。

步骤4识别结果反馈:将步骤3中飞行动作识别的结果按照预定义的数据结构导入至数据库,为飞行训练质量评估提供数据支持。

4.2 性能分析

利用模型训练集准确度、测试集准确度、精准率和召回率共四个指标来衡量生成决策树模型的性能。调用sklearn包的函数库,计算决策树模型在GridSearchCV调优前和调优后的性能指标(如图2所示)。从图中看出调优前模型训练集准确度为1,说明GridSearchCV调优前生成的决策树模型产生过拟合现象。经过GridSearchCV调优后,决策树模型各项指标有了较大提升,说明调参后决策树减少了过拟合,四项指标都达到了90%以上,说明利用机器学习算法生成的决策树模型能有效地识别飞行动作,具有较好的模型泛化能力。

图2 GridSearchCV调优前后的模型性能指标对比

5 结语

本文以起飞滑行、爬升、平飞、转弯、降落和着陆共6个基本飞行动作为例,设计了基于机器学习算法——CART决策树算法的飞行动作自动化识别模型的流程,并利用Python语言实现了算法,实验结果表明调优后的决策树模型能有效识别飞行动作,而且识别准确度较高。本文设计实现的基于CART决策树的飞行动作自动化识别模型,也可以针对其他飞行动作进行自动化识别,识别结果为飞行质量评估奠定了良好的数据基础。

猜你喜欢

特征参数基尼系数决策树
基于视频图像序列的船用雷达目标检测和目标特征参数提取
简述一种基于C4.5的随机决策树集成分类算法设计
基尼系数
基尼系数
决策树学习的剪枝方法
说话人识别特征参数MFCC的提取与分析
民用飞机预测与健康管理技术与系统特征参数研究
基尼系数
基尼系数 Gini coefficient
决策树在施工项目管理中的应用