2022 年首届“钉钉杯”大学生大数据挑战赛B题:航班数据分析与预测——国奖论文代码分享

这篇具有很好参考价值的文章主要介绍了2022 年首届“钉钉杯”大学生大数据挑战赛B题:航班数据分析与预测——国奖论文代码分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023年的钉钉杯挑战赛马上要来了~这里给大家分享一下去年的国奖论文思路与代码

摘要:

        随着民航事业的迅速发展 , 飞机出行已成为未来发展的一种必然趋势,然而近年来, 航班延误现象频频发生,成为困扰机场和航空公司的难题。对航班延误做出合理评价是 分析航班延误总体水平、降低延误成本,以及制定相关处置预案的重要基础,有着重要 的现实运用价值。
        针对机场聚类分析问题的第一部分,首先按照题目要求的五种属性对原始数据集进 行预处理和计算,整理成 2006-2008 年所有航班数据涉及的全部机场属性数据集。在进行聚类分析前,我们采用霍普金斯统计量判断数据集的聚类趋势,计算得到该值为 0.94 , 十分接近于 1 ,即可以认为数据集具有较好的聚集特性,适于采用聚类方法。接着,我们分别采用 k-means 聚类、层次聚类、 DBSCAN 聚类方法基于计算出的五种属性对机场进行分类讨论,并采用轮廓系数对聚类结果进行评价与比较。结果得出,K-means 聚类方法对于该问题的聚类效果最好,机场在五个维度的属性变量下被分为了四类。
      针对机场聚类分析问题的第二部分,首先需要基于 2006-2008 年的航班信息和机场数据进行特征属性的提取。综合考虑机场的延误情况、航班特征和地理位置,人工筛选以及计算出若干属性变量,接着利用低方差过滤的方法剔除方差过小的属性,得到 21个机场属性特征。然后对 21 个属性进行因子分析,提取出 5 个公因子,分别反映机场的出发延误属性,到达延误属性,航班起落属性,地理属性和航班异常属性。对其进行层次聚类分析,结合聚类结果及一致性聚类分析判断出机场被分成 4 类效果较好。通过上述两种聚类方式与结果的对比,我们采用的自选综合性因子属性具有更好的解释性, 且聚类效果显著,稳定性高。针对起飞航班的延误分析,我们首先筛选可能影响到飞机是否延误的影响因素,接着考虑到总体数据量较大,故对全部的航班信息进行均匀随机抽样。将影响因素特征作为训练集输入,然后将延误与否视作虚拟变量(True False )输出进行分类。在建立模型时,我们发现,数据输入与输出具有良好的线性特征,拟合效果好,预测正确率高, 其输入数据的非线性性不强。我们采用 Logistic 回归 预测模型判断航班是否延误,测试
集准确率达到 0.9476
    针对到达航班延误的分析,我们采取与起飞航班相同的处理方法,根据机场分布对 原始数据集进行抽样,使用 Logistic 回归 预测模型判断航班是否延误最终测试结果准确 率可以达到 0.9677
关键字: 航班延误 K-means 聚类 层次聚类 Logistics 逻辑回归

数据预处理

import pandas as pd
import numpy as np
#06-08预处理
df1=pd.read_csv('2006.csv')
df2=pd.read_csv('2007.csv')
df3=pd.read_csv('2008.csv')
df=pd.concat([df1,df2,df3])
df=df.fillna(0)
df.to_csv('06-08.csv',index=None)
df=pd.read_csv('06-08.csv')
df=df.drop(labels=['Year',
'Month','DayofMonth','DayOfWeek','UniqueCarrier','FlightNum','TailNum'], axis=1)
df.to_csv('r06-08.csv',index=None)
#06-08计算
df=pd.read_csv('r06-08.csv')
df1=df['Origin'].value_counts()
df2=df['Dest'].value_counts()
df1.to_csv('ORIGIN.csv')
df2.to_csv('DEST.csv')
#计算起飞和到达航班总数
df1=pd.read_csv('ORIGIN.csv')
df2=pd.read_csv('DEST.csv')
df=pd.merge(df1, df2, on=['airport'], how='outer')
df=df.fillna(0)
df['Sum']=df['Origin']+df['Dest']
df.to_csv('Airports.csv',index=None)
#计算到达延迟超过10分钟航班的比例,出发延迟超过10分钟航班的比例,取消航班的比例,该机场所有航线的平均距离
df=pd.read_csv('Airports.csv')
ss=['ArrDelay10','DepDelay10','Cancelled','AveDistance']
for s in ss:
df[s]=0
df0=pd.read_csv('r06-08.csv')
ii=0
for i in df['airport']:
num1=len(df0[(df0['Dest']==i) & (df0['ArrDelay']>10)])
df['ArrDelay10'].loc[ii]=num1/df['Dest'].loc[ii] #计算到达延迟超过10分钟航班的比例
num2 = len(df0[(df0['Origin'] == i) & (df0['DepDelay'] > 10)])
df['DepDelay10'].loc[ii] = num2 / df['Origin'].loc[ii] #计算出发延迟超过10分钟航班的比例
num3 = len(df0[(df0['Cancelled'] == 1) & (df0['Dest'] == i)])
num4 = len(df0[(df0['Cancelled'] == 1) & (df0['Origin'] == i)])
df['Cancelled'].loc[ii] = (num3+num4) / df['Sum'].loc[ii] # 计算取消航班的比例
df00=df0[(df0['Origin'] == i) | (df0['Dest'] == i)]
df['AveDistance'].loc[ii] =df00['Distance'].sum() / df['Sum'].loc[ii] #
计算所有航线的平均距离
ii=ii+1
df.to_csv('Airport.csv',index=None)
#新属性计算
#计算到达延迟超过10分钟航班的比例,出发延迟超过10分钟航班的比例,取消航班的比例,该机场所有航线的平均距离
df=pd.read_csv('Airport.csv')
df=df.fillna(0)
ss=['ArrDelay30','DepDelay30','SumDelay10','SumDelay30','AveArrDelay','AveDepDelay','AveArrDelay0','AveDepDelay0']
for s in ss:
df[s]=0
df0=pd.read_csv('r06-08.csv')
ii=0
for i in df['airport']:
num1=len(df0[(df0['Dest']==i) & (df0['ArrDelay']>30)])
df['ArrDelay30'].loc[ii]=num1/df['Dest'].loc[ii] #计算到达延迟超过30分钟航班的比例
num2 = len(df0[(df0['Origin'] == i) & (df0['DepDelay'] > 30)])
df['DepDelay30'].loc[ii] = num2 / df['Origin'].loc[ii] #计算出发延迟超过30分钟航班的比例
df['SumDelay30'].loc[ii] = (num1+num2)/df['Sum'].loc[ii]#计算总延迟超过30分钟航班的比例
num3 = len(df0[(df0['Dest'] == i) & (df0['ArrDelay'] > 10)])
num4 = len(df0[(df0['Origin'] == i) & (df0['DepDelay'] > 10)])
df['SumDelay10'].loc[ii] = (num3 + num4) / df['Sum'].loc[ii] # 计算总延迟超过10分钟航班的比例
df00=df0[(df0['Dest'] == i) & (df0['ArrDelay'] > 0)]
df['AveArrDelay'].loc[ii] =df00['ArrDelay'].sum() / len(df00) #
计算所有航班的平均到达延误时间(+)
df01 = df0[(df0['Origin'] == i) & (df0['DepDelay'] > 0)]
df['AveDepDelay'].loc[ii] = df01['DepDelay'].sum() / len(df01) #
计算所有航班的平均出发延误时间(+)
df02 = df0[(df0['Dest'] == i)]
df['AveArrDelay0'].loc[ii] = df02['ArrDelay'].sum() / len(df02) #
计算所有航班的平均到达延误时间(all)
df03 = df0[(df0['Origin'] == i)]
df['AveDepDelay0'].loc[ii] = df03['DepDelay'].sum() / len(df03) #
计算所有航班的平均出发延误时间(all)
ii=ii+1
df.to_csv('Airports_extended.csv',index=None)
#计算到达延迟超过10分钟航班的比例,出发延迟超过10分钟航班的比例,取消航班的比例,该机场所有航线的平均距离
df=pd.read_csv('Airports_extended.csv')
df=df.fillna(0)
ss=['DelayforA','DelayforB','DelayforC','DelayforD','lat','long']
for s in ss:
df[s]=0
df0=pd.read_csv('r06-08.csv')
dfa=pd.read_csv('airports.csv')
ii=0

2022 年首届“钉钉杯”大学生大数据挑战赛B题:航班数据分析与预测——国奖论文代码分享,钉钉

2022 年首届“钉钉杯”大学生大数据挑战赛B题:航班数据分析与预测——国奖论文代码分享,钉钉

 文章来源地址https://www.toymoban.com/news/detail-594513.html

完整版pdf请私戳获取 

到了这里,关于2022 年首届“钉钉杯”大学生大数据挑战赛B题:航班数据分析与预测——国奖论文代码分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究高级版代码(迁移学习+kmeas聚类强特征生成))

    赛道 B:北京移动用户体验影响因素研究 移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设,网络覆盖越来越完善。各个移动运营商,越来越重视客户的网络使用体验,从而进一步提升网络服务质量。客

    2024年02月13日
    浏览(34)
  • 2022 年 MathorCup 高校数学建模挑战赛A题

    赛道 A:“58 到家”家政服务订单分配问题         “58 到家”是“58 同城”旗下高品质、高效率的上门家政服务平台,平 台向用户提供家政保洁、保姆、月嫂、搬家、维修等众多生活领域的服务。 在家政保洁场景中,用户在平台下单购买服务后,平台会将订单分配给一

    2024年02月10日
    浏览(28)
  • 第十六届“华中杯”大学生数学建模挑战赛C题思路

    光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号,其基本原理是当外界环境参数发生变化时,会引起光纤传感器中光波参量(如波长、相位、强度等)的变化,即外界信号变化会对光

    2024年04月25日
    浏览(24)
  • 2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)

     A 题目描述        有一个长为 n (1le n le 1000)n (1≤n≤1000) 的序列,序列上的元素两两不同。你需要用最少的操作步数翻转这个序列。        每次操作你需要给出三个数 i,j,k(1le ile j k le n)i,j,k(1≤i≤jk≤n),交换序列中下标属于 [i,j][i,j] 的元素与下标属于 [j+1,k][j+

    2024年02月08日
    浏览(91)
  • 2022全国高校计算机能力挑战赛【初赛Java组】真题(选择+编程)

    闲来无事水一期比赛 这里主要给出题目,并不包含正确答案。 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 第十一题 第十二题 第十三题 第十四题 第十五题 答案仅供参考! 第一道: 思路:模拟 实现: 第二题: 思路: 模拟 实现: 第三题:

    2024年02月07日
    浏览(33)
  • 22年下数维杯国际大学生数学建模挑战赛C题与D题解析与思路

    关于2022.11月数维杯国际赛的赛题,首先从赛题类型和难度进行分析,为大家提供选题建议 其中 A (自动地震层位追踪) 属于 机理分析 赛题 、B (红蓝军团对抗) 属于 优化类 赛题 、C (阿尔茨海默病诊断) 属于 聚类 赛题 、D (拉尼娜事件) 属于 预测和评价类 赛题。 由于工作原因

    2024年02月13日
    浏览(42)
  • 2023 年第八届数维杯大学生数学建模挑战赛 B 题 节能列车运行控制优化策略

    在城市交通电气化进程快速推进的同时,与之相应的能耗增长和负面效应也 在迅速增加。城市轨道交通中的快速增长的能耗给城轨交通的可持续性发展带来 负担。2018 年,北京、上海、广州地铁负荷占全市总负荷的 1.5%-2.5%,成为了 城市电网的最大单体负荷[1]。在“双碳”政策

    2024年02月06日
    浏览(48)
  • 2023 年第八届数维杯大学生数学建模挑战赛 C 题 宫内节育器的生产

    宫内节育器 (IUD) 是一种相对安全、有效、经济、可逆、简便,广大妇女 易接受的节育器具, 目前已成为我国育龄妇女的主要避孕措施。据悉,我国约 70%妇女选用IUD 作为避孕方法, 占世界 IUD 避孕总人数的 80% 。某公司研发了 两种型号的 VCu记忆型宫内节育器,分别为 VCu260 记

    2024年02月11日
    浏览(33)
  • 第十六届“华中杯”大学生数学建模挑战赛(B题)深度剖析|建模完整过程+详细思路+代码全解析

    问题1的建模过程如下: 假设信号灯周期固定不变,且已知所有车辆的行车轨迹,我们可以建立如下模型来估计信号灯的红绿周期: 首先,我们需要定义一些符号: T s i g n a l T_{signal} T s i g na l ​ :信号灯的红绿周期,单位为秒 T t r a c k T_{track} T t r a c k ​ :车辆行车轨迹数

    2024年04月28日
    浏览(59)
  • 【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析

    一、问题背景 近年来,随着智能手机的产生,发展到爆炸式的普及增长,不仅推动了中 国智能手机市场的发展和扩大,还快速的促进手机软件的开发。近年中国智能手 机市场品牌竞争进一步加剧,中国超越美国成为全球第一大智能手机市场。手机 软件日新月异,让人们更舒

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包