29基于贝叶斯(Bayes)判别的机场航班延误因素分析(附matlab程序)

news2024/12/29 10:22:47

1.简述

      学习目标:  基于贝叶斯判别的机场航班延误因素分析 

                        利用所创建的朴素贝叶斯分类器对象ObjBayes,对训练样本进行判别

                       并利用贝叶斯预测误差统计

         中国民航业近年来快速发展,航班量增多,航班密度逐步加大,许多资源配置的矛盾也日益凸显出来.机场大面积航班延误难以避免.针对上述问题,在航班延误波及分析的基础上,建立机场航班延误的贝叶斯网络分析模型.通过机场航班数据网络学习和测试,得到了不同因素对机场航班延误的影响程度,不同时间段的延误情况,为机场当局解决大面积航班延误提供决策依据.

 

关键词:

在网络上介绍贝叶斯定理,贝叶斯网格的资料随处可见,我在此处就简单给大家的阐述一下什么是贝叶斯,贝叶斯方法其实在高中的时候我们就已经开始接触了,高中的概率大部分讲述的就是贝叶斯方法。

其实在贝叶斯方法真正的被人们认可之前,频率派是概率的主导,假设又一袋球,里面有若干红球和黑球,在贝叶斯之前你随便问一个人拿出红球的概率是多少,他会说50%。嘿!懵逼不?没有黑球红球的数量怎么知道的50%,频率派中的思考方式是不是红球就是黑球,所以50%。

 贝叶斯方法的提出

托马斯·贝叶斯Thomas Bayes(1702-1763)在世时,并不为当时的人们所熟知,很少发表论文或出版著作,与当时学术界的人沟通交流也很少,用现在的话来说,贝叶斯就是活生生一民间学术“屌丝”,可这个“屌丝”最终发表了一篇名为“An essay towards solving a problem in the doctrine of chances”,翻译过来则是:机遇理论中一个问题的解。你可能觉得我要说:这篇论文的发表随机产生轰动效应,从而奠定贝叶斯在学术史上的地位。

首先声明,概率确确实实是一个不确定的值,因为既然叫概率,就包含有运气的成分,假设以一个朋友创业来说,创业无非成功与失败两种结果,依照频率论的方式,他成功就是50%。但是你了解他的为人,他有想法,有思路,有毅力,所以你可能认为他成功的概率为70%,这就是贝叶斯的思考方式。他区别于传统频率派的非黑即白,加入了前提。

 贝叶斯定理

在讲述贝叶斯定理之前,先介绍几个定义

1)条件概率(后验概率)就是事件A在另一个事件B已经发生的条件下发生概率,公式表示为P(A|B),读作“在B条件下A的概率”。

2)联合概率表示两件事情共同发生的概率。A与B的联合概率表示为p(A,B).

3)边缘概率(又称先验概率)是某个事件发生的概率。边缘概率是这样得到的:在联合概率中,把最终结果中那些不需要的事件通过合并成它们的全概率,而消去它们(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率),这称为边缘化(marginalization),比如A的边缘概率表示为P(A),B的边缘概率表示为P(B)。

贝叶斯网络的定义

贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一。从1988年由Pearl提出后,已经成为近几年来研究的热点.。一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量结点及连接这些结点有向边构成。结点代表随机变量,结点间的有向边代表了结点间的互相关系(由父结点指向其子结点),用条件概率进行表达关系强度,没有父结点的用先验概率进行信息表达。结点变量可以是任何问题的抽象,如:测试值,观测现象,意见征询等。适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全、不精确或不确定的知识或信息中做出推理。

 

2.代码

clc,clear,close all
load('sourcedata.mat');
load data.mat
load('datatest.mat');
n=size(data);

%%   创建朴素贝叶斯分类器对象
%%  创建朴素贝叶斯分类器对象ObjBayes
training=data(1:103,1:5);
group=data(1:103,6);
ObjBayes = NaiveBayes.fit(training,group,'Distribution','kernel')
%%  对训练样本进行判别
%%  利用所创建的朴素贝叶斯分类器对象ObjBayes,对训练样本进行判别
pre0 = ObjBayes.predict(training);
disp '贝叶斯分类器训练数据和实际结果是否相等,相等为1,否则为0'
isequal(pre0, group)         % 判断判别结果pre0与分组向量group是否相等

pre1 = ObjBayes.predict(data(1:103,1:5));

figure,
subplot(211),bar(data(:,6));figure(gcf);axis tight,box off,grid on
title('原始数据---> 用于训练网络---103组数据 ---实际延误率')
subplot(212),bar(pre1);figure(gcf);axis tight,box off,grid on
title('贝叶斯网络训练结果---预测延误率')

%% 贝叶斯预测误差统计
By1=ysw(data,pre1)

%%
%%  对于样本进行预测
test=datatest(:,1:5);
datatestresult=datatest(:,6);
pre2 = ObjBayes.predict(test);
figure,

subplot(211),bar(datatest(:,6));figure(gcf);axis tight,box off,grid on
title('输入待检验的数据,实际结果')
subplot(212),bar(pre2);figure(gcf);axis tight,box off,grid on
title('贝叶斯网络训练结果')

%% 贝叶斯预测误差统计
By2=ysw(datatest,pre2)
 

3.运行结果

b5ca283b651543889d4203c476ed06d3.png

 0e22a3b20fc24b749654c5d672a8e1a1.png

 

4.参考文献

[1]邵荃, 罗雄, 吴抗抗,等. 基于贝叶斯网络的机场航班延误因素分析[J]. 科学技术与工程, 2012, 20(30):5.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Godot 4 源码分析 - 代码自动补全流程

使用Godot 4过程中,有一点比较吸引我:代码自动补全 用RAD开发时,代码自动补全功能一直被吐槽,主要是速度慢 但我看Godot 4中的Script编写过程中,代码补全很快,这个可以研究一下。 研究代码可找到&#x…

Linux国产操作系统,UCA-系统工程师学习必备技能,使用dpkg管理软件包、apt命令、内网获取依赖包及源码安装

目录 ​编辑 1.使用dpkg管理软件包 2.apt命令 3.内网获取依赖包 4.源码安装 1.使用dpkg管理软件包 第一种方法当然可以上网搜索软件安装包,下载然后解压成软件。 第二种也就是我接下来要介绍的,dpkg 命令,dpkg 全称叫做debian package…

Linux系统编程:进程的管理和创建

目录 一. 什么是进程 二. Linux对进程的管理方法 2.1 PCB描述进程 2.2 进程的组织 2.3 进程的查看 三. 子进程的创建 3.1 子进程创建函数fork的使用 3.2 子进程创建的原理 四. 总结 一. 什么是进程 进程(process)是指计算机中已经存在并运行的…

动态规划 DP (一)

1.动态规划(Dynamic Programming,简称DP) 维基百科的定义说的很清楚: 动态规划不能解决所有的问题, 只能应用于有最优子结构的问题。例如背包问题、最长公共子序列问题、最短路径问题等。 最优子结构:局部…

Vue3通信方式之defineProps、defineEmits、useAttrs、插件mitt和v-model

目录 1、使用defineProps2、使用defineEmits接受自定义事件2.1原生DOM事件2.2自定义事件 3、全局事件总线(插件mitt)4、v-model5、useAttrs 1、使用defineProps props可以实现父子组件通信,在vue3中我们可以通过defineProps获取父组件传递的数据。且在组…

Opencv医学图片分割-以血管、胼胝体MR等分割为例

用到环境 1、pycharm community edition 2022.3.2 2、Python 3.10 后面应该会传代码到资源,比较需要的可以私信我。 总体设计 图1 扩展实验二“医学图像分割”流程图 ## 具体步骤 1. 导入OpenCV和NumPy库 2. 定义阈值分割方法threshold_segmentation,接…

spring框架-概述(spring特性、生命周期)(一)

文章目录 什么是springspring重要特性spring生命周期知识扩展 什么是spring Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器 ,是为了解决企业级编程开发中的复杂性,实现敏捷开发…

[进阶]网络通信:TCP通信-支持与多个客户端同时通信

目前我们开发的服务端程序,是否可以支持与多个客户端同时通信? 不可以的。因为服务端现在只有一个主线程,只能处理一个客户端的消息。 代码演示如下: 客户端: public class Client {public…

SpringBoot 异常处理的最佳实践

SpringBoot 异常处理的最佳实践 在 Web 开发中,异常处理是非常重要的一环。在 SpringBoot 框架中,异常处理方式有很多种,但是如何选择最佳实践呢?本文将介绍 SpringBoot 异常处理的最佳实践,并附带代码示例。 异常处理…

flutter - 编写 阿里云-金融级实名认证插件

项目中有实名认证的需求,用户上传身份证反正面,进行人脸核验,后台集成的是阿里云的金融级实名认证SDK,巧合的是阿里云没有packages 需要自己造轮子。 废话不多少,直接上代码: 新建项目 ProjectType Plugin…

网站图片优化技巧及最佳实践

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言使用适当的图片格式…

0017-TIPS-pawnyable : eBPF

原文 BPFの導入 検証器とJITコンパイラ eBPFのバグの悪用 题目下载 BPF介绍 BPF 在介绍eBPF之前,先介绍其前身BPF。 随着时代的发展,BPF的用途越来越广泛,扩展也越来越多。在重大更改后的BPF有时被称为eBPF(扩展BPF&#xff09…

路漫漫其修远兮,吾将上下而求索

路漫漫其修远兮,吾将上下而求索 一、坚定信念二、持之以恒地努力三、谦虚和学习的态度四、上下而求索也要遵循道德底线和原则五、建立合适的人际关系和互助机制六、坚定自己的信仰和信念七、个人经验与体会 路漫漫其修远兮,吾将上下而求索——这句话不仅…

python期末上机题:

1、编写Python程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToHuaShiDu()和ToSheShiDu,并编写测试代码。 程序运行示例: 请输入摄氏温度:30 摄氏温度 30.0&#xff0…

栈和队列(一)

文章目录 顺序表,链表的有点和缺点链表顺序表 栈和队列栈的实现栈的应用(括号匹配问题) 顺序表,链表的有点和缺点 链表 优点: 1、任意位置插入删除,时间复杂度位O(1) 2、按需申请释放空间 缺点&#xff1a…

Prompt Engineering 面面观

作者:紫气东来 项目地址:https://zhuanlan.zhihu.com/p/632369186 一、概述 提示工程(Prompt Engineering),也称为 In-Context Prompting,是指在不更新模型权重的情况下如何与 LLM 交互以引导其行为以获得…

Latex长表格

示例一: 输出一个长表格的示例。 代码: \documentclass[jou,apacite]{apa6} \usepackage{multirow} \usepackage{array} \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} \usepackage{longtable}%\usepackage{showframe} % to visualize…

极致呈现系列之:Echarts漏斗图的流光溢彩

目录 什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景: Echarts中漏斗的常用属性Vue3中创建漏斗图美化漏斗图样式 在数据分析和可视化中,我们经常需要比较不同阶段的数据比例或流程的渐进筛选过程。漏斗图作为一种专门用于展示这…

Qt使用技巧--定义Private类

如果查看Qt的源码,会发现很多类都会有一个***Private类。这是Qt用于封装私有操作的一种设计模式。 给出一个继承自QObject的Private类具体的实现: MyClass.h #include "QObject"class MyClassPrivate; class MyClass: public QObject{ Q_OB…

LangChain让LLM连接更多能力

随着LLM(Large language models )的发展,不仅仅出现了很多新的应用,一些开发框架也发展很快,典型的就是本文介绍的项目——LangChain,目前LangChain几乎一天一个版本,几个月时间Star数目已经49k…