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:m
    if p_w1_x(i) > p_w2_x(i)
        result(i) = 0; % 归类为类别1
    else
        result(i) = 1; % 归类为类别2
    end
end

fprintf("%4d", result); % 输出结果
fprintf("\n");

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

pkg load statistics

function 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:class
        md(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);

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Mac】A Better Finder Attributes(文件批量重命名工具)

软件介绍 A Better Finder Attributes 7 是一款专为 macOS 设计的实用工具软件,主要用于批量修改文件和文件夹的属性。以下是它的一些主要特点和功能: 批量修改文件属性 可以快速批量修改文件的创建日期、修改日期以及访问日期。这对于整理和管理大量…

网络基础:路由路由协议

路由是指在计算机网络中选择路径来传输数据包的过程和机制;它包括路径选择、数据包转发、以及维持网络连接所需的各种协议和算法,路由的目标是确保数据包能够高效且可靠地从源设备传输到目标设备;常见的能够实现路由功能网络设备有&#xff1…

深入探讨C++的高级反射机制

反射是一种编程语言能力,允许程序在运行时查询和操纵对象的类型信息。它广泛应用于对象序列化、远程过程调用、测试框架、和依赖注入等场景。 由于C语言本身的反射能力比较弱,因此C生态种出现了许多有趣的反射库和实现思路。我们在本文一起探讨其中的奥秘…

VSCode插件开发经验小结

从零基础接手DX扩展开发维护,到完成DX扩展从O2平台迁移到 VSCode 平台,现在也积累了一些经验,本文将对这一过程中的学习经历做一个简单小结,也希望可以通过本文帮助想要开发 VSCode 扩展的同学可以更快速的上手。 VSCode (Visual …

Spring事务及其传播机制(一)

目录 1.事务回顾 1.1什么是事务 1.2事务的四大重要特性(ACID) 1.3事务的操作 2.Spring中事务的实现 2.1编程式事务(了解) 2.2声明式事务Transactional 3.Transactional作用 3.1重新抛出异常 3.2手动回滚事务 1.事务回顾…

STM32第八课:Su-03t语音识别模块

文章目录 需求一、SU03T语音识别模块二、模块配置流程1.固件烧录2.配置串口和传输引脚3.中断函数4.double类型转换5 数据发送6.接收处理 三、该模块完整代码总结 需求 基于上次完成空气质量传感器,利用SU03T语音识别模块,实现空气质量的语音问答播报。 …

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过 ,今天我和同事两个人去考的,我考试遇到1个新题,他遇到两个新题,客服提供的题库很稳定,全覆盖了,轻松通过,考…

EBS请求通过一段SQL输出EXCEL文件

一.设计初衷 1.EBS请求输出excel文件常用的有3种模式: 1.1.RTF模板XML数据源 1.2 package输出html格式 1.3 package输出excel对应的xml文本 2.上面三种模式开发起来都比较麻烦,而且输出的是xls的文件,如果导出的数据很多,文件特别大。 3.…

Go-知识测试-单元测试

Go-知识测试-单元测试 1. 定义2. 使用3. testing.common 测试基础数据4. testing.TB 接口5. 单元测试的原理5.1 context 单元测试的调度5.1.1 等待并发执行 testContext.waitParallel5.1.2 并发测试结束 testContext.release 5.2 测试执行 tRunner5.3 启动测试 Run5.4 启动并发…

<电力行业> - 《第9课:输电(二)》

4 输送电能流程 输送电能总共有:发电站→升压变压器→高压输电线→降压变压器→用电单位等五个流程。 电力工业初期,发电厂建在电力用户附近,直接向用户送电,所以那个时候只有发电和用电两个环节。 随着电力生产规模和负荷中心规…

基于MongoDB的电影影评分析

项目源码及资料 项目介绍 1、从豆瓣网爬取Top10的电影数据 爬取网址: https://movie.douban.com/top250 1.1 爬取Top10的影视信息 mv_data [] i 0 for x in soup.select(.item):i 1mv_name re.search(>([^<])<, str(x.select(.info > .hd > a > .tit…

ASP.NET Core 6.0 使用 Action过滤器

Action过滤器 在ASP.NET Core中&#xff0c;Action过滤器用于在执行Action方法之前或之后执行逻辑。你可以创建自定义的Action过滤器来实现这一点。 继承 ActionFilterAttribute 类&#xff1a; [TypeFilter(typeof(CustomAllActionResultFilterAttribute))]public IActionRe…

Pc端多功能视频混剪工具/便携版打开即用

PC便携版 视频批量剪辑大师&#xff0c;全自动剪辑神器&#xff0c;会打字就能做视频 多功能&#xff0c;视频混剪&#xff0c;视频配音&#xff0c;文字生成语音&#xff0c;图片合成视频&#xff0c;自动识别音频并生成字幕等功能 链接&#xff1a;https://pan.baidu.com/…

【原创实现 设计模式】Spring+策略+模版+工厂模式去掉if-else,实现开闭原则,优雅扩展

1 定义与优点 1.1 定义 策略模式&#xff08;Strategy Pattern&#xff09;属于对象的⾏为模式。他主要是用于针对同一个抽象行为&#xff0c;在程序运行时根据客户端不同的参数或者上下文&#xff0c;动态的选择不同的具体实现方式&#xff0c;即类的行为可以在运行时更改。…

代码随想录算法训练营第四十七天| 188.买卖股票的最佳时机IV ,309.最佳买卖股票时机含冷冻期 ,714.买卖股票的最佳时机含手续费

188. 买卖股票的最佳时机 IV - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int k, int[] prices) {int[][] dp new int[prices.length][2*k];for(int i0;i<2*k;i){if(i%2 0){dp[0][i] -prices[0];}else{dp[0][i] 0;} }for(int i1;i…

C语言 | Leetcode C语言题解之第206题反转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* reverseList(struct ListNode* head) {if (head NULL || head->next NULL) {return head;}struct ListNode* newHead reverseList(head->next);head->next->next head;head->next NULL;return newHea…

使用Java连接数据库并且执行数据库操作和创建用户登录图形化界面(3)专栏里有上两步的源代码

创建用户登录程序&#xff0c;验证用户账号和密码信息是否在数据库student中的用户表tb_account中存在。用户登录界面如下图所示&#xff1a; 当单击“登录”按钮时&#xff0c;处理以下几种情况&#xff1a; &#xff08;1&#xff09;用户名未输入&#xff0c;提示用户名不能…

Apache Ranger 2.4.0 安装部署

1、安装ranger admin 2、源码编译Ranger wget https://www.apache.org/dist/ranger/2.4.0/apache-ranger-2.4.0.tar.gz tar zxvf apache-ranger-2.4.0.tar.gz cd apache-ranger-2.4.0 mvn -Pall clean mvn clean package -DskipTests maven settting可以设置阿里云进行资源下载…

【漏洞复现】金和OA 未授权访问

【产品介绍】 金和OA协同办公管理系统C6软件&#xff08;简称金和OA&#xff09;&#xff0c;本着简单、适用、高效的原则&#xff0c;贴合企事业单位的实际需求&#xff0c;实行通用化、标准化、智能化、人性化的产品设计&#xff0c;充分体现企事业单位规范管理、提高办公效…

fiddler抓包工具

概念 概念&#xff1a; Fiddler是一个http协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的http通讯。 http&#xff1a;不加密&#xff0c;端口为80 https&#xff1a;加密&#xff0c;端口为443 原理&#xff1a; 其实就在访问服务器时&#xff0…