基于线性回归的航班延误预测研究与系统开发
冯耀 梅晓 吕燕宾 丁沂
摘要:航班延误预测在航空领域有着广泛的应用,不仅可以减少航空公司在经济和信誉等方面的损失,而且可以给旅客提供更多的便利和更好的服务。利用线性回归方法设计一个Web服务,用来预测航班是否延误。用户输入航班号、出发时间、出发机场和到达机场,系统利用航班的历史记录和天气等信息预测航班到港时间。
关键词:航班延误预测;线性回归模型;Web服务;训练;测试
随着社会和经济发展以及人们生活水平的提高,越来越多的人开始去国内外发展生意或旅游。为了更加便利、省时,在选择出行工具时,多数人都会选择搭乘航旅工具。近年来随着空中航班航行次数的增加,航班延误成为航旅中不可避免的一个问题。如果能够提前预知航班的延误,那么必然可以采取应对措施来减少由于延误影响带来的经济和信誉的损失,从而提高用户的满意度。
影响航班延误的因素很多,比如出发机场、出发机场的天气、飞机机型、出发时间、飞行过程中的天气情况、到达机场、到达机场的天气等等,其原因很复杂,且多属不确定因素,航班延误问题一直不能有效解决。航班延误主要分为出发延误和到达延误,通过对航班测试数据集的分析发现,航班的出发延误时间和到达延误时间之间有明显的线性相关性,而且出发延误比到达延误受到的影响因素要少得多。因此,只要能合理预测出航班的出发延误,就能根据这种关系推理出航班的到达延误。
1 线性回归分析
在统计学中,线性回归是利用线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个回归系数的模型参数的线性组合。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计,这些模型被叫作线性模型。最常用的线性回归建模是给定x值的Y的条件均值是x的仿射函数。不太一般的情况,线性回归模型可以是一个中位数或一些其他的给定X的条件下Y的条件分布的分位数作为x的线性函数表示。像所有形式的回归分析一样,线性回归也把焦点放在给定X值的Y的条件概率分布,而不是X和Y的联合概率分布(多元分析领域)。
2 基于线性回归的航班延误预测模型
2.1 线性回归模型的建立
通过对数据集的分析发现,航班的出发延误与到达延误之间有明显的线性相关性(见图1),可以使用线性回归模型来预测航班的到达延误,具体的公式为:航班到达延误=参数1×航班出发延误+参数2,可以通过最小二乘法来估计模型的参数。一旦利用测试数据估计出最优的参数1和参数2,就可以将航班出发延误带入公式计算出航班到达延误。
2.2 航班延误预测算法
(1)输入航班号、出发时间、出发机场、到达机场,在测试数据中找到要预测的航班。
(2)根据该航班记录的出发天气,机型和机场等信息在训练数据中找到相近的数据并计算这些记录的出发延误时间。
(3)将这些相近数据的出发延误时间的平均值作为要预测的航班的出发延误时间。
(4)将出发延误时间带入线性回归方程计算航班的到达延误时间。
(5)如果航班到达延误时间大于30分钟,判断该航班延误。
3 实验分析
3.1 数据说明及数据预处理
数据采用的是国内多个机场的航班数据,其中数据的时间是自2015年11月03日至2016年02月26日的119432条航班信息,每条航班包括航班号,航空公司,出发机场,出发城市,目的机场,目的城市,航班日期,计划起降时间与实际起降时间,经停次数,航线,机型,距离,最高温度,最低温度,天气描述,风向,风力,空气指数,空气质量描述,空气质量级别等21个因素。
对航班原始数据进行了几步预处理操作:
(1)去除航班取消的情况。原始数据中存在实际到达时间为空的航班,即航班因故取消,或者未知等情况,对此就对包含该因素的数据不进行考虑,于是把这些航班数据进行了去除。
(2)选择因素。在航班预测方面,希望这个数据是能够对预测的影响是比较大的,因素与航班延误之间的相关性越大,对于预测帮助也就更大。删除因素包括删除原始数据中的重复因素和无关因素两种,其中有些因素的性质重复,将其归结到了重复因素;有些通过以往的数据和经验判断发现于航班延误无关或者关联不大,就将其分为无关因素。对原始数据的21个因素,我们进行了筛选,最终发现航班的出发延误时间和到达延误时间之间有明显的线性相关性,而且出发延误比到达延误受到的影响因素要少得多。因此,只要能合理预测出航班的出发延误,就能根据这种关系推理出航班的到达延误。
3.2 实验结果分析
测试数据总共82366条,均误差为29.7分钟。其中无延误的数据(到达延误时间小于30分钟)69157条,延误数据(到达延误时间大于30分钟)13209条,延误数据占整个数据量的16%。对于没有发生延误的数据,预测的数据准确数为68093条,预测准确率高达98%;对于延误了的数据,预测的准确数为603条,预测准确率4.6%;最终预测正确的数据为68696条,其中预测错误的条数为13670条,错误率为16.5%。
另外,预测值和实际值相差绝对值在30分钟内的有61985条;预测值和实际值相差绝对值在50分钟内的有9888条;预测值和实际值相差绝对值在100分钟内有6253条;预测值和实际值相差绝对值在100分钟以上有4240条。
4 Web服务开发
4.1 开发工具和环境
处理器:Inter(R)Core(TM) i7-4710MQ CPU@2.5GHz
内存:4.00GB
系统类型:64位
硬盘:500G
操作系统:Windows 10
开发及运行环境:Visual Studio 2015、Microsoft.NETFramework 4.0
4.2 系统功能及运行
(1)输入接口:http GET请求形:http://[hostname]/query?flightno=[航班号]&depairport=[出发机场三字码]&arrairport=[到达机场三字码]&date=[计划日期,形如"YYYY-MM-DD"]。
(2)输出接口:返回结果为json格式,包含请求的航班号、计划起飞日期和时刻、计划到达日期和时刻、预测起飞日期和时刻、预测到达日期和时刻、是否延误。系统运行界面如图2所示。
5 结语
对于国内航班到港延误预测问题,我们提出了一个线性回归模型,开发了一个Web服务对航班延误进行预测,并在一个国内真实的航班历史记录数据集上对方法和系统的有效性和可用性进行了验证。将在今后的工作中进一步优化系统,提高系统预测的准确率,降低预测平均误差。