基于Spark的决策树算法对航班延误预测研究

2021-03-22 02:53谌婧娇
电脑知识与技术 2021年4期

谌婧娇

摘要:在大数据环境下,为了提高航班延误预测精确度和数据处理速度,提出基于Spark框架下处理海量数据方法。本文使用决策树算法对航班数据进行分析,预测航班的延误情况,并与使用支持向量机,Logistic回归分类算法的预测结果进行比较。结果证明决策树算法具有较高的准确率和灵敏度,表明决策树算法可以应用到航班延误预测中,给航空机构提供数据支持。

关键词:Spark;航班延误预测;决策树算法

中图分类号:TP391     文献标识码: A

文章编号:1009-3044(2021)04-0217-03

Abstract: In the big data environment, in order to improve the accuracy of flight delay prediction and data processing speed, the method of processing massive data based on Spark framework was first proposed to improve the speed of big data processing.The decisiodtree algorithm is used to predict the flight delay, and the results are compared with those of SVM and logistic regression. The results show that the decision tree algorithm has high accuracy and sensitivity, which shows that the decision tree algorithm can be applied to flight delay prediction and provide data support for aviation agencies.

Key words: Spark;Flight delay prediction; Decision tree algorithm

随着国家经济的飞速发展,居民出行量的日益增大,出行方式也有了很大的改变,航空出行逐渐成为居民出行方式的首选之一。随着民航旅客需求快速增长,截止到2019年,选择航空出行方式的旅客量达到6.1亿人次。随着航班量的增加,航班延误作为一个热点问题一直困扰着国内外民航业。

据统计,我国2017年民航的准点率只有71%,即29%的航班存在延误。航班延误会影响乘客正常行程,使航空公司付出额外运营成本,对航空公司声誉也存在负面影响。因此,对航班延误进行预测迫在眉睫。

航班延误预测是指对航班是否晚点进行预警,可以将预测结果反馈到机场,以便提前采取措施,将航班延误经济损失降到最低;也可以将预测结果反馈给旅客,以便其提前做好行程安排[1] [6]。因此航班延误预测,对于航空业来说,具有重要的实际意义和研究价值。

本文结合航空数据的特点以及大数据技术的发展,采用Spark集群作为内存计算框架,使用决策树来建立模型,对航空数据进行预测分析,实验结果可以为航空机构提供数据支持。

1 Spark平台

1.1 Spark简介

Spark是由美国加州大学伯克利分校于2010年开发,基于内存计算的大数据并行计算框架。目前已经形成了完整的生态圈,它以Spark Core为核心,可以使用不同的组件,如:SparkStreaming,SparkMLlib,GraphX等。主要力图在算法,机器和人之间通过大规模集成来实现大数据应用的平台。

1.2环境说明

在环境安装中,首先配置3台安装Centos7 Linux系统的虚机,配置虚机间的SSH免密钥登陆和系统时间同步,安装Java环境和Hadoop环境。在Hadoop集群配置成功后,以Spark on Yarn模式安装Spark集群。

2航班數据介绍

2.1 数据来源

本次课题研究主要分析从Data Expo 上提供的飞行准点率统计数据,数据集大小为657M,共29列数据,包括年,月,日,航空公司,飞机编号,起点机场编号,到达时间,起飞时间,飞行距离等相关信息。

2.2数据清洗

航班数据在采集过程中,可能会受到各种影响,比如噪声,通信故障等等,所以数据可能存在不准确的情况,比如数据出现空值,部分数据存在特殊字符等问题。为了避免对后期数据分析的结果产生影响,需要对数据进行清洗。

对航班数据进行清洗,包括过滤空值条目和重复数据,过滤存在特殊字符的数据,以及判断航班是否晚点。对于如何判断飞机是否延误,由于各国航空运输系统存在差异,所以各个国家对于航班延误的定义也有区别。一般来说,航班实际离场时间比计划离场时间迟15min及以上,或者航班实际起飞时间比计划起飞时间迟15min及以上,或者航班取消均可视为航班延误。

对数据集进行处理过后,最终得到数据集类别如下:

3 基于Spark的预测算法实现

3.1 CART分类树

CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布,CART算法生成的是二叉树,只有“是,否”两个类别。

CART分类树通过GINI指数选择最优特征。GINI系数表示模型的不纯度,GINI系数越小,则不纯度越低,特征越好。因此可以通过选择较小的GINI系数来得到分类条件,以此作为切分点依次分配。

在分类问题中,假设有k个类别,第k个类别的概率为,则GINI系数的表达式为:

对于给定的样本D,假设有K个类别,第K个类别的数量为,则样本D的GINI系数表达式为:

对于样本D,如果根据特征A的某个值a,把D分成D1和D2两部分,在特征A的条件下,D的GINI系数表达式为:

GINI系数越大,样本集合不确定性越大。

3.2评价指标

在分类模型中,评价分类器的优劣主要基于混淆矩阵,ROC和AUC来进行判断。

混淆矩阵是用来表示精度评价,主要用来判别分类好坏的指标,以二分类为例,0和1代表两类样本,其中TP:真阳性,预测是1,实际也是1; FP:假阳性,预测是1,实际也是0;TN:真阴性,预测是0,实际也是0; FN:假阴性,预测是0,实际也是1。

准确率:分类正确的样本占总样本数的比例,表示评估的准确率。

精确率:表示被分为正样本中实际为正例的比例。

灵敏度:实际为正样本且被划分为正样本在正样本中所占的比例,表示所有正样本中被分对的比例,目的是衡量分类器对正例的识别能力。

ROC是一条曲线,由FPR和TPR的点连成。横轴是FPR,纵轴是TPR。

AUC:ROC的曲线面积就是AUC值,AUC主要用于衡量二分类问题中机器学习算法性能或者泛化能力。ROC曲线越靠左上角效果越好,AUC的值越大,效果越好。

4实验结果与分析

实验中使用交叉验证,随机划分测试集与训练集,其中训练集占数据量70%,测试集占30%。使用Spark编程实现决策树算法,并分析算法的性能。同时,与其他两种算法进行比较,结果如下表所示:

由上表中结果可知,使用决策树算法对航班数据进行预测其分类准确率,灵敏度都比较高。分类准确率高表明该模型对航班是否延误能做出准确的判断,灵敏度高表明该模型的误测率较低。因此可以得出结论,决策树算法在航班预测判断过程中更加有效。

5结语

本文介绍了决策树算法原理,并将其应用于航班数据的预测分析中,实验得到的预测准确率,灵敏度,召回率等指标都达到了较高的水平。因此该方法可以为航班延误的预测提供有效的数据支持,能够提高航班晚点预测效率,具有广泛的应用前景。

参考文献:

[1] 徐海文,韩松臣,刘晓东.基于旅客角度的航班延誤影响因素分析[J].中国市场,2015(52):221-224.

[2] 高彦杰.Spark大数据处理技术.应用与性能优化[M].北京:机械工业出版社,2015.

[3] 梁彦.基于分布式平台Spark和YARN的数据挖掘算法的并行化研究[D].广州:中山大学,2014.

[4] 何洋,朱金福,周秦炎.基于支持向量机回归的机场航班延误预测[J].中国民航大学学报,2018,36(1):30-36,41.

[5] 罗赟骞,陈志杰,汤锦辉,等.采用支持向量机回归的航班延误预测研究[J].交通运输系统工程与信息,2015,15(1):143-149,172.

[6] 刘小平.航班延误情境下旅客群体性突发事件致因机理及预警机制研究[D].武汉:武汉理工大学,2013.

[7] 庄荣,李玲娟.基于Spark的CVFDT分类算法并行化研究[J].计算机技术与发展,2018,28(6):35-38.

【通联编辑:梁书】