《统计学习方法》 第4章 朴素贝叶斯法

news2025/1/12 20:40:51

文章目录

  • 前言
  • 一、朴素贝叶斯法
  • 二、朴素贝叶斯法的学习和分类
  • 三、朴素贝叶斯算法
  • 四、贝叶斯估计
  • 总结


前言

本文只要记录一些书中的一些小知识点,挑一些本人认为重要的地方进行总结。

各位道友!道长(zhǎng) 道长(chǎng)


一、朴素贝叶斯法

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。
首先基于特征条件独立假设学习输入输出的联合概率分布
然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
朴素贝叶斯法实现简单,效率高,常用

二、朴素贝叶斯法的学习和分类

两个小概念:

  • 先验概率:事情没有发生,根据经验判断结果发生的概率。由因求果
  • 后验概率:事情已经发生,根据发生的结果,判断是什么原因引起的该结果。由果求因

已知输入空间上的随机变量X和输出空间上的随机变量Y.
先验概率分布为:
P ( Y = c k ) , k = 1 , 2... K P(Y=c_k), k=1,2...K P(Y=ck),k=1,2...K
( c k c_k ck为类标记)
条件概率分布为:
P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck)
于是得到了联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
由于条件概率分布 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck)有指数级别的参数,于是做出了一个条件独立性的假设。
P ( X = x ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) ∣ Y = c k ) P(X=x|Y=c_k)=\prod_{j=1}^nP(X^{(j)}|Y=c_k) P(X=xY=ck)=j=1nP(X(j)Y=ck)

这样,通过学习到的模型计算后验概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x):

P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)} P(Y=ckX=x)=kP(X=xY=ck)P(Y=ck)P(X=xY=ck)P(Y=ck)
将条件独立假设带入可得
P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j P ( X ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j P ( X ( j ) ∣ Y = c k ) P(Y=c_k|X=x)=\frac{P(Y=c_k) \prod_{j}P(X^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^{(j)}|Y=c_k)} P(Y=ckX=x)=kP(Y=ck)jP(X(j)Y=ck)P(Y=ck)jP(X(j)Y=ck)

这就是朴素贝叶斯法的基本公式,于是朴素贝叶斯分类起可以表示为:
y = f ( x ) = arg ⁡ max ⁡ c k P ( Y = c k ) ∏ j P ( X ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j P ( X ( j ) ∣ Y = c k ) y=f(x)=\arg \max_{c_k} \frac{P(Y=c_k) \prod_jP(X^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^{(j)}|Y=c_k)} y=f(x)=argckmaxkP(Y=ck)jP(X(j)Y=ck)P(Y=ck)jP(X(j)Y=ck)
由于所有分母对于所有的 c k c_k ck都是相同的,所以只需要使分子部分极大化即可

y = f ( x ) = arg ⁡ max ⁡ c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=\arg \max_{c_k} P(Y=c_k) \prod_jP(X^{(j)}=x^{(j)}|Y=c_k) y=f(x)=argckmaxP(Y=ck)jP(X(j)=x(j)Y=ck)

三、朴素贝叶斯算法

输入:训练数据集 T = ( x 1 , y 1 ) . . . ( x N , y N ) T= {(x_1,y_1)...(x_N,y_N) } T=(x1,y1)...(xN,yN);实例 x x x
输出: x x x的分类

  • (其中 x = ( x ( 1 ) , x ( 2 ) . . . . x ( n ) ) x=(x^{(1)},x^{(2)}....x^{(n)}) x=(x(1),x(2)....x(n)) x i ( j ) x_i^{(j)} xi(j)表示第I个样本的第j个特征。y=(c1,c2,…,cK)表示类别)

(1)计算先验概率及条件概率
先验概率的极大似然估计是:
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2... K P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N} ,k=1,2...K P(Y=ck)=Ni=1NI(yi=ck),k=1,2...K
条件概率的极大似然估计是:
P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)} P(X(j)=ajlY=ck)=i=1NI(yi=ck)i=1NI(xi(j)=ajl,yi=ck)

(2)对于给定的 x = ( x ( 1 ) , x ( 2 ) . . . . x ( n ) ) x=(x^{(1)},x^{(2)}....x^{(n)}) x=(x(1),x(2)....x(n))计算
P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(Y=c_k) \prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) P(Y=ck)j=1nP(X(j)=x(j)Y=ck)
(3)确定x的类
y = arg ⁡ max ⁡ c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=\arg \max_{c_k} P(Y=c_k) \prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k) y=argckmaxP(Y=ck)j=1nP(X(j)=x(j)Y=ck)

四、贝叶斯估计

在这里插入图片描述

总结

今天的内容是统计学习方法的第一章节,挺容易理解的,结合模型图理解更加方便

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

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

相关文章

YashanDB V23.2 LTS发版 | 共享集群首个长期支持版本

4月,YashanDB正式发布长期支持版本YashanDB V23.2 LTS,标志着YashanDB单机主备、共享集群和分布式实时数仓等完整产品体系,已全面进入可规模化使用的长期支持阶段;同时配套数据迁移工具、监控运维工具和开发者工具,可以…

2024/04/25

1.课上练习 2.思维导图

使用Docker搭建Redis主从集群

文章目录 ☃️前言☃️搭建❄️❄️架构❄️❄️实例说明❄️❄️搭建第一个服务器上的两个实例❄️❄️搭建第二个服务器上的一个实例 ☃️开启主从❄️❄️改配置❄️❄️重启从节点 ☃️验证 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 …

常用的锁和死锁以及避免死锁

走近锁的世界 什么是锁常用的锁互斥量基本用法 无锁 CAS 死锁和避免死锁死锁避免死锁 什么是锁 在并发编程中,为了保护多线程同时访问的共享数据,以及避免出现意向不到的结果,锁(应运而生)  简单讲下为什么数据结果有…

SQL获取最后一次的数据

问题 有个表格(id,machineName,value,updatetime),里面比如有10个机台,里面记录了这10个机台的几十万条数据 如何获取每个机台的最后一笔数据? machines表 解决办法 1.首先获得每个机台最后的更新时间 select machineName,max(updatetim…

常见的工业路由器访问问题

A:工业路由器已经设置了pptp怎么访问路由下面的电脑 1. 确认PPTP VPN设置:首先,确保PPTP VPN服务器在工业路由器上已正确设置,并且处于活动状态。这包括确保VPN服务器的IP地址、端口、用户名和密码等设置正确无误。 2. 连接到VP…

【各大网站独家代理】腾讯应用宝腾讯王者荣耀残棋方式拉新生态,轻轻松松日如1000

全新生态项目独家首发,自4月15日起全面启动!现在正是时候加入,抢占蓝海市场,赚取第一桶金! 下载 地 址 : laoa1.cn/1789.html 腾讯王者荣耀残局挑战拉新项目: 引流成本为8元/单,…

static和extern关键字详解

目录 创作不易,如对您有帮助,还望一键三连,谢谢!!! 回顾 1.作用域和声明周期 1.1作用域 1.2生命周期 2.static和extern 2.1extern 2.2static 2.2-1static修饰局部变量 2.2-2static修饰全局变量 创…

k8s使用calico网络插件时,集群内节点防火墙策略配置方法

前言 我们在内网使用k8s时,有时候需要针对整个集群的节点设置防火墙,阻止一些外部访问,或者是仅允许白名单内的ip访问,传统做法是使用firewall之类的防火墙软件,但是,使用firewall存在如下问题&#xff1a…

资料总结分享:数据库:1.设计概念

目录 1 数据库设计任务 3 数据库设计方法 4 数据库设计的基本步骤 4.1 需求分析阶段 4.2 概念结构设计阶段 4.3 逻辑结构设计阶段 4.4 物理结构设计 4.5 数据库的实施阶段 4.6 数据库的运行和维护阶段 5 数据库结构设计阶段 6 数据库设计与模式结构 根据一个单位的信…

比特币减半倒计时:NFT 生态将受到怎样的影响?

BTC 减半倒计时仅剩不到 1 天,预计在 4 月 20 日迎来减半。当前区块奖励为 6.25 BTC,减半后区块奖励为 3.125 BTC,剩余区块为 253。比特币减半无疑是比特币发展史上最重要的事件之一,每当这一事件临近,整个加密社区都充…

qt tcp 连接 秒断连

问题: tcp连接总是秒成功后断连 debug会出现下面这些 onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFDA2A1D93D: (caller: 00007FFDD8BEACF6) LogHr(1) tid(336c) 8007277C ¡£¡£ one…

Python交换两个变量的值

问题 python交换两个变量的值很简单: x, y y, x 复制号右侧的元祖会首先计算内部的值,然后安装从左到右的顺序,依次赋值给赋值号右侧的变量。 有一种情况需要注意: 如图,交换下标为0的数字2和下标为2的数字4。返回…

在React函数组件中使用错误边界和errorElement进行错误处理

在React 18中,函数组件可以使用两种方式来处理错误: 使用 ErrorBoundary ErrorBoundary 是一种基于类的组件,可以捕获其子组件树中的任何 JavaScript 错误,并记录这些错误、渲染备用 UI 而不是冻结的组件树。 在函数组件中使用 ErrorBoundary,需要先创建一个基于类的 ErrorB…

加州大学欧文分校英语中级语法专项课程01:Perfect Tenses and Modals 学习笔记

Perfect Tenses and Modals course certificate 本文是学习https://www.coursera.org/learn/perfect-tenses-modals?specializationintermediate-grammar 这门课的学习笔记,如有侵权,请联系删除。 这门课是如下专项中的一门:Learn English:…

【前端】3. CSS【万字长文】

CSS 是什么 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. CSS 就是 “东方四大邪术” 之化妆术. 基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁)声明决…

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台&…

前端发送请求,显示超时取消

前端发送请求,显示超时取消 问题说明:后台接口请求60s尚未完成,前端控制台显示取消(canceled) 原因 1、前端设置60s超时则取消 2、后台接口响应时间过长,过长的原因统计的数据量多(实际也才17…

Docker的数据管理、网络通信和dockerfile

目录 一、Docker的数据管理 1. 数据卷 1.1 数据卷定义 1.2 数据卷配置 2. 数据卷容器 2.1 创建数据卷容器 2.2 使用--volume-from来挂载test1 二、端口映射 三、容器互联 1. 创建容器互联 ​编辑2. 进入test2测试(ping 容器名/别名) 四、Dock…

进制转换问题

1.十进制转二进制&#xff08;善于使用__int128&#xff09; 3373. 进制转换 - AcWing题库 #include<bits/stdc.h> using namespace std; __int128 x; int x_; string s1; int main(){stack<int> s;while(cin>>s1){int lens1.size();for(int i0;i<len;i)…