【ML实验4】多分类贝叶斯模型

news2025/1/16 8:52:17

实验代码获取 github repo
山东大学机器学习课程资源索引


实验目的

在这里插入图片描述

实验内容

数据集

在这里插入图片描述

构建多分类贝叶斯模型

在这里插入图片描述
在这里插入图片描述
这里的条件独立性指的是特征 x j x_j xj之间相互独立,这是一个十分强的假设。
在这里插入图片描述
证明 Problem Set 2
思路主要是证明下面引理,用拉格朗日乘子法,对 p y p_y py求偏导变换一下可得。之后将目标似然函数分为两部分,一部分是在这里插入图片描述,另一部分是在这里插入图片描述,将标签或者特征出现频次视为权重,应用引理即可。
其实这个结论十分直观,发生多的自然越有可能发生,量化表达,将出现的频率作为对目标函数的贡献。

在这里插入图片描述

预测

在这里插入图片描述

拉普拉斯平滑

前面构建的模型是朴素贝叶斯,和贝叶斯估计的优化函数有点不同,后者结果在各个取值的频数增加一个 λ \lambda λ,当 l a m b d a = 1 lambda=1 lambda=1时称为拉普拉斯平滑,可以避免0/0的错误。

在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述
混淆矩阵部分代码:

function confusion_matrix(actual,detected)
[mat,order] = confusionmat(actual,detected);
 
imagesc(mat);            %# Create a colored plot of the matrix values
colormap(flipud(gray));  %# Change the colormap to gray (so higher values are
                         %#   black and lower values are white)
                         
textStrings = num2str(mat(:),'%0.02f');  %# Create strings from the matrix values
textStrings = strtrim(cellstr(textStrings));  %# Remove any space padding
 
[x,y] = meshgrid(1:5);   %# Create x and y coordinates for the strings
hStrings = text(x(:),y(:),textStrings(:),...      %# Plot the strings
                'HorizontalAlignment','center');
midValue = mean(get(gca,'CLim'));  %# Get the middle value of the color range
textColors = repmat(mat(:) > midValue,1,3);  %# Choose white or black for the
                                             %#   text color of the strings so
                                             %#   they can be easily seen over
                                             %#   the background color
set(hStrings,{'Color'},num2cell(textColors,2));  %# Change the text colors
 
set(gca,'XTick',1:5,...                         %# Change the axes tick marks
        'XTickLabel',{'0','1','2','3','4'},...  %#   and tick labels
        'YTick',1:5,...
        'YTickLabel',{'0','1','2','3','4'},...
        'TickLength',[0 0]);
xlabel('Real Class');
ylabel('Predict Class');

在这里插入图片描述
小数据集训练,对贝叶斯模型的效果影响甚微,而且效率上更优,主要是因为贝叶斯模型的训练是基于统计的,这和抛硬币去数正反是一个道理,符合大数定律,当一定硬币抛到一定次数,我们就可以确定正面出现50%,反面出现50%,当然随着标签和特征数增加,这个一定次数也会随之增加,和模型的复杂度相关。又问为什么训练会基于统计,解为什么会是特征或者标签的频率,因为贝叶斯最重要的假设,样本各个特征之间相互独立,没有关联,可以将视作一个个‘1’进行统计。

Conclusion

在这里插入图片描述

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

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

相关文章

CP2102国产替代DPU02— USB 转 UART 桥接芯片

DPU02是一个高度集成的USB转UART的桥接控制器,该产品提供了一个简单的解决方案,可将RS-232设计更新为USB设计,并简化PCB组件空间。该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数…

【聆思CSK6视觉AI开发套件试用】Win11下安装全过程处理兼容性问题以及实现亮灯AI头肩检测

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站。作者:Wordiansom Win11上并且安装在其他盘的时候会出现的问题坑。。。。。。(能用win10就用win10)。 1. 晚拿到的开发板套件…

冲量在线携手中国电信研究院、北京电信和海光信息打造的数信链网的入选2022“星河”隐私计算标杆案例

为促进大数据技术产品及相关产业发展,加快培育数据要素市场、充分发挥数据作为生产要素的独特价值,树立行业标杆榜样力量,中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续六年共同组织大数据“星河&#xf…

Java8 Stream流

目录Java8 Stream流一、Stream概述二、Stream 的创建(4种方式)参考地址(表示感谢):Java8 Stream流 一、Stream概述 Stream API说明 Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 St…

Gradle Plugin的开发及发布

Gradle Plugin的开发及发布前言插件的开发学习阶段(build.gradle脚本)开发阶段(buildSrc)PluginTaskExtension发布阶段(独立module)发布到本地发布到MavenCentral准备sonatype账号创建pgp证书配置sonatype和…

数据结构与算法基础(王卓)(6):带尾指针(单向)循环链表的合并;双链表及其插入和删除的详细操作

带尾指针(单向)循环链表的合并 PPT(157): 操作前初始设定预设的条件​​​​我们要做的,即: 让A表尾节点指向B表首结点,让B表尾节点指向A表首结点: Project 1: Status 合并链表(…

NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程

上节介绍了通信链路的建立过程,本节介绍下单机内部ncclSend和ncclRecv的运行过程。 单机内的通信都是通过kernel来进行的,所以整个通信的过程可以分为两步,第一步是准备kernel相关的参数,第二步是实际执行kernel的过程。 为方便…

闯关(贪心)

某综艺频道推出了一个闯关活动。 活动一共包含 n 个关卡(编号 1∼n),其中 m 个关卡为特殊关卡。 每个关卡都有一个通关分数,其中第 i 个关卡的通关分数为 ai。 挑战者可以自由决定所有关卡的具体挑战顺序,并且每通过…

【工具类】Elasticsearch的HTTP客户端(Java)

一、介绍 1. 原理 Java基于Http请求操作ES,与Kibana上的操作一致。 Kibana上的dsl与Http的关系: GET、POST等同于HTTP的POSTPUT 等同于HTTP的PUTDELETE 等同于HTTP的DELETE 如图 该DSL可转化为HTTP请求 POST ip:port/docwrite/_search 请求体为&…

Mysql online DDL工具:gh-ost

gh-ost特点: 1、不使用触发器。 在gh-ost出现之前第三方MySQL DDL工具均采用触发器的方式进行实现,包括前面percona的pt-osc,Facebook的OSC等等。而gh-ost采用的机制和他们完全不同:它通过MySQL binlog来同步数据。 gh-ost会伪装…

PowerToys 微软效率工具包 使用指南

PowerToys 微软效率工具包 使用教程 Microsoft PowerToys 是一组实用程序,供高级用户调整和简化其 Windows 10 和 11 体验以提高工作效率。 下载 PowerToys⇲ 安装教程 1.双击文件运行 点击我同意 2.等待下载安装完成 3.安装完成 使用指南 Always on Top 通…

FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D)

本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。 双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件 分别安装MotiveBody与MotionVenus并校准人体与数据…

Kafka-Topic创建源码分析

Kafka-Topic创建源码分析 在kafka中,创建topic通过使用kafka-topics.sh脚本或者直接调用AdminClient对外提供的adminApi来进行创建. 即使是使用kafka-topics.sh,其最终会通过生成并调用AdminClient来进行处理. 0,创建topic流程图 1,创建topic示例代码 通过引入A…

工作两年半,终于学会了Jenkins部署Maven项目

上期我们讲了Linux部署Jenkins Linux安装Jenkins(Java11最新版) 这期我们来讲的是使用Jenkins部署一个maven项目 文章目录👮所需要的环境(必须要有,否则不能进行下一步)🙋第一步,安装…

02 运算符

目录 第一章:概述 第二章:算术运算符 2.1 概述 2.2 应用示例 2.3 号的两种用法 2.4 自增自减运算 2.4.1 概述 2.4.2 单独使用 2.4.3 复合使用 第三章:赋值运算符 3.1 概述 3.2 应用示例 第四章:关系运算符&#xff0…

vue3.0找不到模块“./App.vue”或其相应的类型声明

vue3报错提示 找不到模块“/App.vue”或其相应的类型声明 情况一、vue3.0js 报错原因:javascript只能理解.js文件,无法理解.vue文件。 解决方案:根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&qu…

被取消的AP考试到底是什么嘞?

最近,好多考试都延期或取消了,美国大学理事会(College Board)也发布公告,宣布受疫情影响,上海、北京等地的AP考试正式取消,不提供线上考试的机会,而且不会安排后续补考。 这条消息惊…

芯片漫游指南(5)-- UVM寄存器

目录1.寄存器模型概览1.1 概述1.2 uvm_reg相关概念1.3 MCDF寄存器模型1.4 寄存器建模1.5 模型使用流程2.寄存器模型集成2.1 总线UVC的实现2.2 纵向UVC的示例3.寄存器模型的常规方法3.1 mirror、desired和actual value3.2 prediction的分类3.3 uvm_reg的访问方法3.4 mem与reg的联…

python扩展实现方法--python与c混和编程

大部分的Python的扩展都是用C语言写的,但也很容易移植到C中。 一般来说,所有能被整合或者导入到其它python脚本的代码,都可以称为扩展。 扩展可以用纯Python来写,也可以用C或者C之类的编译型的语言来扩展。 就算是相同的架构的两…

Spring Boot学习篇(三)之通用mapper的使用(oracle版)

Spring Boot学习篇(三)之通用mapper的使用(oracle版) 1 配置pom.xml <parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.7.2</version></parent> <de…