使用机器学习预测航班

2025年3月17日 | 阅读13分钟
Predicting Flights Using Machine Learning

机器学习在航空领域已变得至关重要,能够预测包括延误、取消和准时到达在内的航班结果。该工具通过利用海量数据和复杂算法,优化航空公司运营,提高整体出行效率,并改善客户体验。

数据收集是航班预测的基础。机场、航空公司和航空管理部门会产生大量数据集。这些数据集的例子包括过去的航班时刻表、气象信息、空中交通管制数据,甚至社交媒体趋势。机器学习算法可以利用这些数据来发现人类分析师常常忽略的联系和模式。

数据准备,包括组织和清理原始数据,是过程的第一步。这是一个重要的阶段,因为它处理缺失值,去除噪声,并确保数据处于适合分析的格式。例如,为了保证精确的时间对齐,天气信息和航空公司行程需要进行同步。

接下来是特征工程,即从原始数据中选择或创建相关特征。起飞和着陆时间、行程长度、天气(包括能见度、风速和降水)、空中交通拥堵,甚至飞行员和机组人员的排班,都是航班预测的重要组成部分。这些特征为模型提供了生成准确预测所需的背景知识。

数据准备好后,就使用机器学习技术。神经网络、决策树、随机森林和回归模型是航班预测中常用的几种方法。回归模型有助于评估延误的可能性,而决策树和随机森林能够处理数据中复杂的非线性关系。每种方法都有其优点和缺点。特别是深度学习模型,它们使用神经网络,能够捕捉多个变量之间复杂的联系和模式。

代码

现在我们将尝试预测航班。

导入库

读取数据集

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

EDA

现在我们将尝试可视化和检查数据集在各种参数上的情况。

星期几条形图

现在,我们将两个数据帧按星期几进行分组,计算每个星期几取消航班的百分比,并在条形图中显示它们。

输出

Predicting Flights Using Machine Learning

根据这个图,星期二取消航班的数量是星期一的两倍,而星期一的比例最低。

输出

Predicting Flights Using Machine Learning

这表明早班和晚班航班被取消的可能性略高。

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

由于我们只有三个月的数据,少量统计数据很可能导致这种结构。

距离直方图

在这里,我们生成一个标准化的航班距离直方图,以分析已取消航班与未取消航班分布的差异。

这表明,已取消航班的分布偏向于短途行程。换句话说,短途航班被取消的可能性更高。

输出

Predicting Flights Using Machine Learning

滑行时间直方图

这说明了飞机在有机会起飞前取消航班的频率。

输出

Predicting Flights Using Machine Learning

图应该是一样的,但所有滑行时间为 0 的航班都应该被删除。这表明,平均而言,在滑行后被取消的航班滑行时间更长。

输出

Predicting Flights Using Machine Learning

承运人延误和原因

为了了解不同承运人的平均延误时间和延误原因,我们按承运人分组并汇总了所有延误原因。

输出

Predicting Flights Using Machine Learning

承运人取消航班和原因

为了显示取消原因的分布以及每个承运人的取消数量,我们根据承运人和取消代码对数据进行了分类。为了进行标准化,我们还在下方绘制了每个承运人的总航班数。

很明显,夏威夷航空的航班取消次数非常少(尽管仍然很少),而且没有一次是因天气原因造成的,这考虑到夏威夷天气状况良好,这是合乎情理的。

输出

Predicting Flights Using Machine Learning
Predicting Flights Using Machine Learning

现在,这里有一个承运人的汇总表,显示了各种平均值和总计。该表的唯一目的是帮助我们更好地理解我们的数据。

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

这表明,当按航空公司计算平均值时,平均航班延误与平均滑行时间呈正相关,而平均航班取消百分比与平均航班时长呈负相关。然而,这些关系都不是非常强。

现在我们可以通过按始发地城市分组来检查数据的更详细部分,始发地城市比唯一承运人的数量要多得多。

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

现在我们可以做同样的事情,但按目的地而不是始发地分组,看看是否能找到一些有趣的东西。

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

这表明,与按始发地或目的地机场分组相比,平均航班延误和滑行时间与按承运人分组的取消次数更相关。

建模

现在我们将引入各种模型。

我们将平均承运人延误作为一列添加到主数据集中,并将其用作特征而不是承运人列,因为按承运人分组时,平均承运人延误似乎与取消次数有关。


随机森林分类器

输出

Predicting Flights Using Machine Learning

梯度提升树

输出

Predicting Flights Using Machine Learning

利用现有数据,决策树算法未能正确预测任何被取消的航班。

支持向量分类器

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

神经网络

输出

Predicting Flights Using Machine Learning

分类摘要

毫不奇怪,这里展示的机器学习系统在预测被取消航班方面都没有表现出色。除支持向量分类器外,任何分类器准确预测的航班约占 2%。如果航空公司使用机器学习模型来预测取消航班,这些模型可能更复杂,并使用我们无法获得的一系列数据源。具体来说,是有关机场/飞机维护以及当前天气的数据。如果您不需要当前数据来预测取消航班,那么最后一刻的取消次数应该会少得多。

现在让我们检查一下我们的回归模型预测航班延误时间的能力。


在这里,我们将尝试使用特征的多项式来拟合一个线性回归模型,该模型试图预测延误时间。

输出

Predicting Flights Using Machine Learning

我们发现 5 次多项式特征效果最好,但效果并非很好。

输出

Predicting Flights Using Machine Learning

输出

Predicting Flights Using Machine Learning

预测延误时间的特征并不依赖于在航班日期前几天或几周未知的某些信息。有人可能会反驳说,平均特征包含了来自多个飞机视角的未来数据。由于没有理由认为这些平均值会随时间发生显著变化,因此我认为这不会引起有关数据泄露的严重担忧。此外,为生产做好准备的模型可以设计成绕过这个问题,只使用在预期航班之前航班的平均值。


下一主题NTLK语料库