Bayes分类器设计

       本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记

      AI学习笔记(14)---《Bayes分类器设计》

Bayes分类器设计

目录

1.前言

2.相关知识

2.1贝叶斯决策的基本概念

2.2正态模式下最小误判概率判决准则的具体形式

3.最小误判概率准则判决原理原理

3.1基本方式

3.2贝叶斯分类器设计步骤

3.3分类器分类步骤

4.编程实现

4.1统计判决贝叶斯MATLAB代码

4.2 正态分布模式的贝叶斯判别MATLAB代码


1.前言

        理解并掌握贝叶斯判决的一般性原理,设计并实现一个基础贝叶斯分类器,能够根据自己的设计对贝叶斯决策理论算法有一个深刻认识。

        正态模式下最小误判概率判决准则的具体形式;分类器分类步骤。


2.相关知识

2.1贝叶斯决策的基本概念

        1.贝叶斯公式:

设实验E的样本空间为SAE的事件,B1​,B2​,...,Bn​S的一个划分,且P(A)>0,P(Bi​)>0,(i=1,2,...,n),则

        2.先验概率:

        P(wi​)表示类wi​出现的先验概率,简称类wi​的概率。

        3.后验概率:

        P(wi​∣x)表示x出现条件下类wi​出现的概率,称其为类别的后验概率,对于模式识别来讲,可以理解为x来自类wi​的概率。

        4.类概率:

        p(x∣wi​)表示在类wi​条件下的概率密度,即类wi​模式x的概率分布密度,简称为类概密。

2.2正态模式下最小误判概率判决准则的具体形式

正态分布模式的贝叶斯判决函数;

         综上我们可以知道,di​(x)是一超二次曲面,如wi​类和wj​类相邻,则它们的决策界面方程为di​(x)=dj​(x),一般来说,正态分布的两个模式类别之间用一个而此判决界面就可以得到最有效果。由于对数函数是单调增函数,所以判决规则仍为:


3.最小误判概率准则判决原理原理

3.1基本方式

        对于两类问题,统计判决的基本方式是根据类的概率和概密将模式的特征空间Ω划分成两个判决域D1​D2​,即

 3.2两类问题 

        使用基本方式来分类时,会发生两种错误,一种是把实际属于w1​类的模式判定为w2​类,发生这种错误的原因是属于w1​的模式在特征空间中散步到Ω2​中去,从而将其判定为w2​类,这时的误判概率为:

同理将实际属于w2​类的模式判定为w1​类时的误判概率为:

如图所示:

 我们的目标是总体上、统计上误判最少,因此所使用的判决准则是使得误判概率最小,这等价于使正确分类识别概率P(c)最大,即

经过推导,最终我们可以得到几种等价的最小误判概率准则下的判决规则:

 将二类问题同样的分析方法运用到多类问题,可得到对于多类问题,最小误判概率准则有如下几种等价的判决规则:

3.2贝叶斯分类器设计步骤

        1.计算先验概率P(wi​):通过计算各类样本在总样本中占的比例得到先验概率;

           P(wi​)≈Ni​/N,其中Ni​为第i类样本的样本数,N为样本总数

        2.计算类概率密度p(x∣wi​)

        3.利用贝叶斯公式求后验概率P(wi​∣x)

        4.根据最小误判概率准则进行判决,后验概率中最大值对应的类别即为识别对象的分类类别

3.3分类器分类步骤
  1. 确定类别wi​,并提取每一类所对应的已知样本;

  2. 特征提取,从样本中提取出一些可以作为区分不同类别的n个不同特征;

  3. 分别计算每一个类别的样本所对应的特征,计算出其均值矢量ui​和协方差矩阵Σ,即特征中心;

  4. 对特征进行归一化操作,使其去量纲化;

  5. 利用选择的判决准则,对待分类样本进行分类。


4.编程实现

4.1统计判决贝叶斯MATLAB代码

x = [-3.9847 -3.5549 -1.2401 -0.9780 -0.7932 -2.8531 -2.7605 -3.7287 -3.5414 -2.2692 -3.4549 -3.0752 -3.9934 2.8792 -0.9780 0.7932 1.1882 3.0682 -1.5799 -1.4885 0.7431 -0.4221 -1.1186 4.2532]; % 样本数据
pw = [0.9 0.1]; % 先验概率% 类条件概率分布正态分布分别为N(e1,a1)和N(e2,a2)
e1 = -2; a1 = 0.5; % 类条件分布1的均值和标准差
e2 = 2; a2 = 2; % 类条件分布2的均值和标准差
m = numel(x); % 样本数量
result = zeros(1, m); % 初始化结果向量% 计算后验概率 
p_w1_x = zeros(1, m); % 初始化后验概率p(w1|x)
p_w2_x = zeros(1, m); % 初始化后验概率p(w2|x)
for i = 1:m% 计算p(w1|x)后验概率p_w1_x(i) = (normpdf(x(i), e1, a1) * pw(1)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));% 计算p(w2|x)后验概率p_w2_x(i) = (normpdf(x(i), e2, a2) * pw(2)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));
end% 根据最小误判概率准则进行判决,结果存入result中
for i = 1:mif p_w1_x(i) > p_w2_x(i)result(i) = 0; % 归类为类别1elseresult(i) = 1; % 归类为类别2end
endfprintf("%4d", result); % 输出结果
fprintf("\n");

4.2 正态分布模式的贝叶斯判别MATLAB代码

pkg load statisticsfunction GuassianBayesModel(w, p, X)%%%%%%%%%% Begin %%%%%%%%%%[row, col, class] = size(w); % 获取数据维度信息(行、列和类别数量)% 根据给出的样本数据,求各个类的均值u(:, :, 1) = sum(w(:, :, 1)) ./ row; % 计算类别1的均值u(:, :, 2) = sum(w(:, :, 2)) ./ row; % 计算类别2的均值u(:, :, 3) = sum(w(:, :, 3)) ./ row; % 计算类别3的均值% 求各个类的协方差矩阵sigma(:, :, 1) = cov(w(:, :, 1)); % 计算类别1的协方差矩阵sigma(:, :, 2) = cov(w(:, :, 2)); % 计算类别2的协方差矩阵sigma(:, :, 3) = cov(w(:, :, 3)); % 计算类别3的协方差矩阵% 构建判别函数,计算点到每个类的马氏距离以及欧氏距离md = zeros(1, class); % 初始化马氏距离数组ed = zeros(1, class); % 初始化欧氏距离数组P = zeros(1, class); % 初始化概率数组for i = 1:classmd(i) = sqrt((X - u(:, :, i)) * inv(sigma(:, :, i)) * (X - u(:, :, i))'); % 计算马氏距离ed(i) = sqrt(sum((X - u(:, :, i)) .^ 2)); % 计算欧氏距离P(i) = p(i) * mvnpdf(X, u(:, :, i), sigma(:, :, i)); % 计算后验概率end%%%%%%%%%% End %%%%%%%%%%% 判断样本属于哪个类的概率最高,并显示点到每个类的马氏距离和欧氏距离maxP = max(P); % 找出最大概率result = find(P == maxP); % 找出对应的类别fprintf("点[%s]关于第1、2、3类的判别函数值分别为:%s %s %s\n", num2str(X), num2str(P(1)), num2str(P(2)), num2str(P(3)));fprintf("点[%s]到第1、2、3类的马氏距离为:%s %s %s\n", num2str(X), num2str(md(1)), num2str(md(2)), num2str(md(3)));fprintf("点[%s]到第1、2、3类的欧氏距离为:%s %s %s\n", num2str(X), num2str(ed(1)), num2str(ed(2)), num2str(ed(3)));fprintf("点[%s]属于第%s类\n", num2str(X), num2str(result));
end% w1, w2, w3三类散点
w = zeros(10, 3, 3);
w(:, :, 1) = [-5.01 -8.12 -3.68;...-5.43 -3.48 -3.54;...1.08 -5.52  1.66;...0.86 -3.78 -4.11;...-2.67  0.63  7.39;...4.94  3.29  2.08;...-2.51  2.09 -2.59;...-2.25 -2.13 -6.94;...5.56  2.86 -2.26;...1.03 -3.33  4.33];w(:, :, 2) = [-0.91 -0.18 -0.05;...1.30 -0.206 -3.53;...-7.75 -4.54 -0.95;...-5.47  0.50  3.92;...6.14  5.72 -4.85;...3.60  1.26  4.36;...5.37 -4.63 -3.65;...7.18  1.46 -6.66;...-7.39  1.17  6.30;...-7.50 -6.32 -0.31];w(:, :, 3) = [ 5.35  2.26  8.13;...5.12  3.22 -2.66;...-1.34 -5.31 -9.87;...4.48  3.42  5.19;...7.11  2.39  9.21;...7.17  4.33 -0.98;...5.75  3.97  6.65;...0.77  0.27  2.41;...0.90 -0.43 -8.71;...3.52 -0.36  6.43];% 设置各类别先验概率
pw = [1/3 1/3 1/3];% 样本矢量
X1 = [1 2 1];
X2 = [5 3 2];
X3 = [0 0 0];% 调用高斯型Bayes判别函数, 输出判别函数值、马氏距离和判别结果
GuassianBayesModel(w, pw, X1);
GuassianBayesModel(w, pw, X2);
GuassianBayesModel(w, pw, X3);

     文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者私信联系作者。

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

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

相关文章

东方博宜 OJ 1201-1300

目录 1268:【基础】高精度加法 1269:【基础】高精度减法 1280:【基础】求 2 的 n 次方 1281:【基础】求 222222⋯222⋯2 1285:【基础】计算 N 的阶乘 1286:【基础】高精度乘单精度 1287:【基础】高精…

第一百三十三节 Java数据类型教程 - Java基本数据类型

Java数据类型教程 - Java基本数据类型 Java定义了八种基本类型的数据:byte,short,int,long,char,float,double和boolean。 基本类型通常被称为简单类型。 这些可以分为四组: Integers - 包括byte&#x…

求推荐几款http可视化调试工具?

Postman 非常流行的API调试工具,适用于构建、测试和文档化APIs。它支持各种HTTP方法,有强大的集合和环境管理功能,以及代码生成能力。 BB-API 是一款旨在提升开发效率的工具,它专注于提供简约、完全免费且功能强大的HTTP模拟请…

目标检测算法

一、绪论 1.1 目标检测算法的定义和背景 1.2 目标检测算法在计算机视觉领域的重要性 二、目标检测算法的发展历程 2.1 传统目标检测算法 2.2 基于深度学习的目标检测算法 2.3 目标检测算法的评价指标 三、目标检测算法的关键技术 3.1 区域建议网络(RPN) 3.2 卷积神经…

springmvc快速上手

一、创建工程 1、创建maven工程&#xff0c;添加maven-archetype-webapp模版 2、添加依赖 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.co…

每日一题——Python实现PAT乙级1059 C语言竞赛(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 时间复杂度分析 空间复杂度分析 代码优化建议 总结 我要更强 优化方法…

macos Darwin安装faiss-cpu

文章目录 macos 使用brew instll fass, 后python3.12执行引用faiss包功能出现的问题 安装时遇到问题如下 ModuleNotFoundError Traceback (most recent call last) File ~/Src/ai/framework/langchain/.venv/lib/python3.12/site-packages/langchain_co…

Spring事务的实现

Spring事务的实现分为编程式事务和声明式事务。 编程式事务 编程式事务管理需要开发者在代码中显式地调用事务管理相关的方法,如`beginTransaction()`、`commit()`和`rollback()`等。在Spring中,通常通过以下两种方式来实现编程式事务: 使用`TransactionTemplate`,`Tran…

macOS 安装redis

安装Redis在macOS上通常通过Homebrew进行&#xff0c;Homebrew是macOS上一个流行的包管理器。以下是安装Redis的步骤&#xff1a; 一 使用Homebrew安装Redis 1、安装Homebrew&#xff08;如果尚未安装&#xff09;&#xff1a; 打开终端&#xff08;Terminal&#xff09;并执…

.NET周刊【6月第4期 2024-06-23】

国内文章 C#.Net筑基-集合知识全解 https://www.cnblogs.com/anding/p/18229596 .Net中提供了数组、列表、字典等多种集合类型&#xff0c;分为泛型和非泛型集合。泛型集合具有更好的性能和类型安全性。集合的基础接口包括IEnumerator、IEnumerable、ICollection、IList、ID…

Gradio 4.37.1官方教程二:Blocks

文章目录 一、Blocks及事件监听器1.1 Blocks结构1.2 事件监听器的类型1.3 多数据流1.4 多输入组件1.5 多输出组件1.6 更新组件配置1.7 添加示例1.8 连续运行事件1.9 持续运行事件1.9.1 every参数1.9.2 load方法1.9.3 change方法 1.10 收集事件数据1.11 绑定多个触发器到同一函数…

基于线调频小波变换的一维时间序列时频分析方法(MATLAB)

在机械故障诊断领域,振动信号的处理常采用以快速傅立叶变换为基础的相关分析、幅值分析、频谱分析等时域和频域分析方法。但经典的FFT存在固有缺点,即它虽然在频域范围内是完全局部化的,但是它不包含任何时域信息,因而不适于分析非平稳信号。近年来涌现的各种时频分析方法(短时…

【刷题】初步认识深搜(DFS)

送给大家一句话&#xff1a; 拥有希望的人&#xff0c;和漫天的星星一样&#xff0c;是永远不会孤独的。 -- 《星游记》 初步认识深搜&#xff08;DFS&#xff09; dfs算法二叉树中的深搜Leetcode 129. 求根节点到叶节点数字之和题目描述算法思路 Leetcode 814. 二叉树剪枝题…

Redis-实战篇-缓存更新策略(内存淘汰、超时剔除、主动更新)

文章目录 1、缓存更新策略1.1、内存淘汰1.2、超时剔除1.3、主动更新 2、业务场景&#xff1a;3、主动更新在企业中业务实现有三种方式3.1、Cache Aside Pattern3.1.1、操作缓存和数据库时有三个问题需要考虑&#xff1a;3.1.1.1、删除缓存还是更新缓存&#xff1f;3.1.1.2、如何…

数据同步软件有哪些

数据同步软件有哪些呢&#xff1f;随着企业规模的扩大&#xff0c;企业数据也积累得越来越多&#xff0c;万一发生宕机风险&#xff0c;那么这个损失将不可估量。所以为了容灾备用&#xff0c;我们往往需要将数据同步到另一台备胎服务器上&#xff0c;进行冗余。 那么需要同步的…

centos7.9 python3环境(virtualenv)搭建及所遇错误

人望山&#xff0c;鱼窥荷&#xff0c;真正喜欢想要的&#xff0c;没有一样可以轻易得到。 目录 # 1. 解决版本冲突问题--建议不要跳过(一定要查看软链接是否链接正确) # 2. python3(virtualenv)环境搭建 # 3. virtualenv常用命令 # 4. 所遇错误解析 ## 4.1 遇到 No modul…

惠海 H6246低功耗DC/DC降压型恒压芯片60V降3.3V5V12V 蓝牙模块 单片机供电

1.产品描述 H6246是一种内置60V耐压MOS&#xff0c;支持输入高达48V的高压降压开关控制器&#xff0c;可以向负载提供0.3A的连续电流。H6246支持输出恒定电压&#xff0c;可以通过调节VFB采样电阻来设置输出电压&#xff0c;同时支持最大电流限制&#xff0c;可以通过修改CS采…

操作系统期末复习考题二

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文☀️☀️☀️三、总结&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&am…

【资源调度】1-何为调度?

导读&#xff1a;本期是全网最全【资源调度】系列推文的第1期(共50期左右)。我们将对调度的定义与作用、计划与调度的关系、调度问题的拆解做出详细介绍&#xff0c;使大家对【资源调度】问题有了一个整体的认识&#xff0c;为后续的内容奠定基础。 作者1&#xff1a;张哲铭&am…

个人搭建cppreference网站

近日,由于购买的腾讯云服务器要过期了,之前在服务器搭建的cppreference也要重新搭建,故写下此文章 cppreference的访问速度也慢,故自己WSL子系统简单搭键一下是个不错的选择 环境准备 首先,自己先安装Nginx,在网上找安装教程即可下载cppreference网站资源包:https://pan.baidu…