朴素贝叶斯(二)|极大似然估计+学习与分类算法+贝叶斯估计| 《统计学习方法》学习笔记(十六)

article/2025/7/20 1:50:01

朴素贝叶斯法的参数估计

1. 极大似然估计

在朴素贝叶斯法中,学习意味着估计 P ( Y = c k ) P(Y=c_k) P(Y=ck) P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X^{(j)}=x^{(j)}|Y=c_k) P(X(j)=x(j)Y=ck)。可以应用极大似然估计法估计相应的概率。先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)的极大似然估计是
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}, \quad k=1,2,...,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,...,K
设第j个特征 x ( j ) x^{(j)} x(j)可能取值的集合为 { a j 1 , a j 2 , . . . , a j S j } \{a_{j1},a_{j2},...,a_{jS_j}\} {aj1,aj2,...,ajSj},条件概率 P ( X ( j ) = a j l ∣ Y = c k ) P(X^{(j)}=a_{jl}|Y=c_k) P(X(j)=ajlY=ck)的极大似然估计是
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 l = c k ) j = 1 , 2 , . . . , n ; l = 1 , 2 , . . , S j ; k = 1 , 2 , . . . , 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_l=c_k)} \quad j=1,2,...,n;\space l=1,2,..,S_j;\space k=1,2,...,K P(X(j)=ajlY=ck)=i=1NI(yl=ck)i=1NI(xi(j)=ajl,yi=ck)j=1,2,...,n; l=1,2,..,Sj; k=1,2,...,K
式中, x i ( j ) x_i^{(j)} xi(j)是第i个样本的第j个特征, a j l a_jl ajl是第j个特征可能取的第l个值, I I I为指示函数。

2. 学习与分类算法

算法:朴素贝叶斯算法

输入:训练数据 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中 x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) T x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T xi=(xi(1),xi(2),...,xi(n))T x i ( j ) x_i^{(j)} xi(j)是第i个样本的j个特征, x i ( j ) ∈ a j 1 , a j 2 , . . . , a j S j x_i^{(j)}\in {a_{j1},a_{j2},...,a_{jS_j}} xi(j)aj1,aj2,...,ajSj a j l a_{jl} ajl是第j个特征可能取的第 l l l个值, j = 1 , 2 , . . . , n , l = 1 , 2 , . . . , S j , y i ∈ { c 1 , c 2 , . . , c K } j=1,2,...,n,\quad l=1,2,...,S_j,\quad y_i\in\{c_1,c_2,..,c_K\} j=1,2,...,n,l=1,2,...,Sj,yi{c1,c2,..,cK};实例x;

输出:实例x的分类

(1)计算先验概率及条件概率
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , . . . , K p ( X ( f ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( f ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j = 1 , 2 , . . . , K P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N}, \quad k=1,2,...,K \\ p(X^{(f)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(f)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)} \\ j=1,2,...,n; \quad l=1,2,...,\quad S_j=1,2,...,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,...,Kp(X(f)=ajlY=ck)=i=1NI(yi=ck)i=1NI(xi(f)=ajl,yi=ck)j=1,2,...,n;l=1,2,...,Sj=1,2,...,K
(2)对于给定的实例 x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) T x=(x^{(1)},x^{(2)},...,x^{(n)})^T x=(x(1),x(2),...,x(n))T,计算
P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , . . . , K P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),\quad k=1,2,...,K P(Y=ck)j=1nP(X(j)=x(j)Y=ck)k=1,2,...,K
(3)确定实例x的类
y = a r g m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=arg\space max_{c_k}P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) y=arg maxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)
例:

试由下表的训练数据学习一个朴素贝叶斯分类器并确定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的类标记y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)为特征,取值的集合分别为 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , L } A_1=\{1,2,3\},A_2=\{S,M,L\} A1={1,2,3},A2={S,M,L},Y为类标记, Y ∈ C = { 1 , − 1 } Y\in C=\{1,-1\} YC={1,1}

根据朴素贝叶斯算法:

P ( Y = 1 ) = 9 15 , P ( Y = − 1 ) = 6 15 P(Y=1)=\frac{9}{15},\quad P(Y=-1)=\frac{6}{15} P(Y=1)=159,P(Y=1)=156

P ( X ( 1 ) = 1 ∣ Y = 1 ) = 2 9 , P ( X ( 1 ) = 2 ∣ Y = 1 ) = 3 9 , P ( X ( 1 ) = 3 ∣ Y = 1 ) = 4 9 P(X^{(1)}=1|Y=1)=\frac{2}{9},P(X^{(1)}=2|Y=1)=\frac{3}{9},P(X^{(1)}=3|Y=1)=\frac{4}{9} P(X(1)=1Y=1)=92,P(X(1)=2Y=1)=93,P(X(1)=3Y=1)=94

P ( X ( 2 ) = S ∣ Y = 1 ) = 1 9 , P ( X ( 2 ) = M ∣ Y = 1 ) = 4 9 , P ( X ( 2 ) = L ∣ Y = 1 ) = 4 9 P(X^{(2)}=S|Y=1)=\frac{1}{9},P(X^{(2)}=M|Y=1)=\frac{4}{9},P(X^{(2)}=L|Y=1)=\frac{4}{9} P(X(2)=SY=1)=91,P(X(2)=MY=1)=94,P(X(2)=LY=1)=94

P ( X ( 1 ) = 1 ∣ Y = − 1 ) = 3 6 , P ( X ( 1 ) = 2 ∣ Y = − 1 ) = 2 6 , P ( X ( 1 ) = 3 ∣ Y = − 1 ) = 1 6 P(X^{(1)}=1|Y=-1)=\frac{3}{6},P(X^{(1)}=2|Y=-1)=\frac{2}{6},P(X^{(1)}=3|Y=-1)=\frac{1}{6} P(X(1)=1Y=1)=63,P(X(1)=2Y=1)=62,P(X(1)=3Y=1)=61

P ( X ( 2 ) = S ∣ Y = − 1 ) = 3 6 , P ( X ( 2 ) = M ∣ Y = − 1 ) = 2 6 , P ( X ( 2 ) = L ∣ Y = − 1 ) = 1 6 P(X^{(2)}=S|Y=-1)=\frac{3}{6},P(X^{(2)}=M|Y=-1)=\frac{2}{6},P(X^{(2)}=L|Y=-1)=\frac{1}{6} P(X(2)=SY=1)=63,P(X(2)=MY=1)=62,P(X(2)=LY=1)=61

对于给定的 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T计算:
P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 1 45 P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) = 1 15 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{1}{45} \\ P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{1}{15} P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=451P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=151
因为 P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)最大,所以 y = − 1 y=-1 y=1.

3. 贝叶斯估计

用极大似然估计可能会出现所要估计的概率值为0的情况。这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。具体地,条件概率的贝叶斯估计是
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 ) + S j λ (1) P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda} \tag{1} Pλ(X(j)=ajlY=ck)=i=1NI(yi=ck)+Sjλi=1NI(xi(j)=ajl,yi=ck)+λ(1)
式中 λ ≥ 0 \lambda \geq 0 λ0。等价于在随机变量各个取值的频数上赋予一个正数 λ > 0 \lambda>0 λ>0。当 λ = 0 \lambda=0 λ=0时就是极大似然估计。常取 λ = 1 \lambda=1 λ=1,这时称为拉普拉斯平滑(Laplace smoothing)。显然,对任何 l = 1 , 2 , . . . , S j , k = 1 , 2 , . . . , K l=1,2,...,S_j, \quad k=1,2,...,K l=1,2,...,Sj,k=1,2,...,K,有
P λ ( X ( j ) = a j l ∣ Y = c k ) > 0 ∑ l = 1 S j P ( X ( j ) = a j l ∣ Y = c k ) = 1 P_\lambda(X^{(j)}=a_{jl}|Y=c_k)>0 \\ \sum_{l=1}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1 Pλ(X(j)=ajlY=ck)>0l=1SjP(X(j)=ajlY=ck)=1
表明式(1)确为一种概率分布。其中 S j S_j Sj是某一特征值的可能取值数量。同样,先验概率的贝叶斯估计是
P λ ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda} Pλ(Y=ck)=N+Kλi=1NI(yi=ck)+λ
其中K是类标记Y的可能取值数量。

例:

试由下表的训练数据学习一个朴素贝叶斯分类器并确定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的类标记y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)为特征,取值的集合分别为 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , L } A_1=\{1,2,3\},A_2=\{S,M,L\} A1={1,2,3},A2={S,M,L},Y为类标记, Y ∈ C = { 1 , − 1 } Y\in C=\{1,-1\} YC={1,1},按照拉普拉斯平滑估计概率,即取 λ = 1 \lambda=1 λ=1.

:按照贝叶斯估计

P ( Y = 1 ) = 10 17 , P ( Y = − 1 ) = 7 17 P(Y=1)=\frac{10}{17},P(Y=-1)=\frac{7}{17} P(Y=1)=1710,P(Y=1)=177

P ( X ( 1 ) = 1 ∣ Y = 1 ) = 3 12 , P ( X ( 1 ) = 2 ∣ Y = 1 ) = 4 12 , P ( X ( 1 ) = 3 ∣ Y = 1 ) = 5 12 P(X^{(1)}=1|Y=1)=\frac{3}{12},P(X^{(1)}=2|Y=1)=\frac{4}{12},P(X^{(1)}=3|Y=1)=\frac{5}{12} P(X(1)=1Y=1)=123,P(X(1)=2Y=1)=124,P(X(1)=3Y=1)=125

P ( X ( 2 ) = S ∣ Y = 1 ) = 2 12 , P ( X ( 2 ) = M ∣ Y = 1 ) = 5 12 , P ( X ( 2 ) = L ∣ Y = 1 ) = 5 12 P(X^{(2)}=S|Y=1)=\frac{2}{12},P(X^{(2)}=M|Y=1)=\frac{5}{12},P(X^{(2)}=L|Y=1)=\frac{5}{12} P(X(2)=SY=1)=122,P(X(2)=MY=1)=125,P(X(2)=LY=1)=125

P ( X ( 1 ) = 1 ∣ Y = − 1 ) = 4 9 , P ( X ( 1 ) = 2 ∣ Y = − 1 ) = 3 9 , P ( X ( 1 ) = 3 ∣ Y = − 1 ) = 2 9 P(X^{(1)}=1|Y=-1)=\frac{4}{9},P(X^{(1)}=2|Y=-1)=\frac{3}{9},P(X^{(1)}=3|Y=-1)=\frac{2}{9} P(X(1)=1Y=1)=94,P(X(1)=2Y=1)=93,P(X(1)=3Y=1)=92

P ( X ( 2 ) = S ∣ Y = − 1 ) = 4 9 , P ( X ( 2 ) = M ∣ Y = − 1 ) = 3 9 , P ( X ( 2 ) = L ∣ Y = − 1 ) = 2 9 P(X^{(2)}=S|Y=-1)=\frac{4}{9},P(X^{(2)}=M|Y=-1)=\frac{3}{9},P(X^{(2)}=L|Y=-1)=\frac{2}{9} P(X(2)=SY=1)=94,P(X(2)=MY=1)=93,P(X(2)=LY=1)=92

对于给定的 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T计算:
P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 5 153 = 0.0327 P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) = 28 459 = 0.0610 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{5}{153}=0.0327 \\ P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{28}{459}=0.0610 P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=1535=0.0327P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=45928=0.0610
因为 P ( Y = − 1 ) P ( X ( 1 ) = 2 ∣ Y = − 1 ) P ( X ( 2 ) = S ∣ Y = − 1 ) P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)最大,所以 y = − 1 y=-1 y=1.


http://chatgpt.dhexx.cn/article/fwREcomj.shtml

相关文章

一文看懂 “极大似然估计” 与 “最大后验估计” —— 最大后验估计篇

本文历次修订后全长 2万8000余字,受到 CSDN 博文字数限制,故切分两篇发布,所以现在是两文看懂了… 前篇介绍参数估计背景和极大似然估计;本篇介绍最大后验估计和两种方法对比请务必先看前文:一文看懂 “极大似然估计”…

【生成模型】极大似然估计,你必须掌握的概率模型

上一期为大家说明了什么是无监督生成模型。在无监督生成模型中,极大似然法一直扮演着非常核心的位置,我们必须对它有深刻的理解,本期小米粥将为大家讲一下极大似然法的那些事情。 作者&编辑 | 小米粥 1 一个小游戏:取球猜概率…

透彻理解机器学习中极大似然估计MLE的原理(附3D可视化代码)

文章目录 相关资料一、什么是概率,什么是似然二、极大似然估计 Maximum Likelihood Estimation (MLE) 的含义2.1 机器学习中的极大化似然函数2.2 极大似然估计和损失函数的关系VAE最大化似然函数推导出损失函数 三、代码可视化:极大似然估计3.1 似然函数…

C#RSA密码以及利用欧几里得算法实现两数互质的判断

最近做课程设计,想到以前看过RSA密码的相关内容,于是就想用刚学的C#做一个数字加密系统。RSA加密的流程如下: 来看一个“玩具式”的例子: (1)选取两个素数p2,q11,于是N22. (2)构造数,这是小于22且不含因数2和11的自然数的个数。 (3)选一个…

判断两数互质,java实现

数组下标i和j值互质时,a[i][j] true,反之false Write a program to create an n * n Boolean array. If I and j are coprime, a [i] [J] is true, otherwise it is false /** * When Array index Mutuality ,a[i][j] true,else is false * 数组i和j值互质时&…

两个质数互质是_两个数互质是什么意思 如何判断

互质数为数学中的一种概念,即两个或多个整数的公因数只有1的非零自然数。公因数只有1的两个非零自然数,叫做互质数。下面是小编整理的详细内容,一起来看看吧! 两个数互质是什么意思 质数为数学中的一种概念,即两个或多…

char、wchar_t、ACHAR、WCHAR、TCHAR

最近用到上面几种不同的字符类型,下面贴上在网上收集到的资料。 1、char 单字节变量类型,最多表示256个字符。 2、wchar_t 宽字节变量类型,用于表示Unicode字符,它实际定义在<string.h>里:typedef unsigned short wchar_t。 定义宽字节类型方法如下: wchar_…

wchar* 转换成 string

wchar* 转换成 string 123 windows 类型转换问题 1 // Your wchar_t* wstring ws(L"Hello World"); // your new String std::string str(ws.begin(), ws.end()); // Show String std::cout << str << std::endl; 2 std::wstring wstr(L"Test&…

wchar_t类型

今天在看前辈的项目的时候学习到了一个以前没有通过的数据类型&#xff1a;宽字符wchar_t类型。 先来看看他占多大的空间吧&#xff0c; 从图中可以看到wchar_t占的空间的大小为2个字节&#xff0c; 然后来确定一下他是无符号还是有符号的 由上图可见&#xff0c;他应该是无符号…

char与wchar_t字符串

C里的字符串类型是比较二的&#xff0c;因为有太多表示方法&#xff1a;char*、string、字符串数组、wchar_t*、wstring&#xff0c;今天就来缕一缕这些玩意。 char* char* 貌似是C字符串最基础最核心的。 看以下四个字符串声明及输出结果&#xff1a; 先说说核心&#xff0c…

wchar_t的用法

wchar_t的解释可以看这里:这里 程序和解析: 1 # include<stdio.h>2 # include<stdlib.h>3 # include<locale.h>//设置本地化<

WCHAR的简单操作

WCHAR 是双字节类型&#xff0c;一般它用来存储那些双字节而不是单字节字符.较长的字节数可以支持 在应用程序的国际发布版本里所使用的扩展字符集(如常用的Unicode字符集). 比如说&#xff1a;在中文系统下开发的软件&#xff0c;当应用到日文操作系统时&#xff0c;如果没有采…

ADI Diff-Amp Calculator差分放大器件计算器使用方法

Diff-Amp Calculator便于计算单端转差分放大&#xff0c;差分转差分放大&#xff0c;在满足输入信号和输出信号的参数要求下&#xff0c;配置元件增益自动计算Rf和Rg阻值大小。 下载地址&#xff1a;https://www.analog.com/cn/design-center/interactive-design-tools/adi-dif…

双电阻差分电流采样_差分信号和差分电路讲解 差分放大电路应用

1、什么是差分信号?为什么要用差分信号? 两个芯片要通信,我们把它们用一根导线连接起来,一个传输 1,另一个接受 1,一个传输 0,另一个接受 0,不是很好吗?为什么还要搞其他的花花肠子。 因为有干扰,各种各样的干扰,比如温度,电磁辐射等等,这些干扰使得传输的 1 不再…

双电阻差分电流采样_差分放大电路的应用

差分运算放大电路,对共模信号得到有效抑制,而只对差分信号进行放大,因而得到广泛的应用。 1、如下图是差分电路的电路构型 目标处理电压:是采集处理电压,比如在系统中像母线电压的采集处理,还有像交流电压的采集处理等。 差分同相/反相分压电阻:为了得到适合运放处理的电…

全差分放大器(FDA)的基本知识

为了获得最佳性能&#xff0c;用户必须在信号链上选择一个balun(平衡不平衡变换器&#xff09;&#xff0c;虽然这可能会导致某些应用中的耦合问题。然而&#xff0c;耦合问题并不是总是发生&#xff0c;特别是在某些需要DC分量的测试和测量应用中更是如此。 全差分放大器 (FDA…

3.0.MATLAB版线性代数-矩阵加法、数乘、乘法、求逆

矩阵运算及其应用(加法、数乘、乘法、求逆) 加法数乘运算规则乘法矩阵乘法定义线性变换多次线性变换等于矩阵的连乘线性方程组看做矩阵乘法矩阵的转置矩阵的逆(“除法”)矩阵逆的定义矩阵逆的性质求逆矩阵的方法(求逆1)MATLAB中求逆矩阵的分块向量等式初等矩阵初等矩阵和…

算法:动态规划—矩阵链相乘

问题描述 给定n个矩阵&#xff5b;A1,A2,…,An&#xff5d;&#xff0c;其中Ai与A i1是可乘的&#xff0c;i1&#xff0c;2…&#xff0c;n-1。如何确定计算矩阵连乘积的计算次序&#xff0c;使得依此次序计算矩阵连乘积需要的数乘次数最少 解法 1.穷举法&#xff1a; 列举…

Java实现矩阵的加、减、乘、数乘、转置、幂运算

Java实现矩阵的加、减、乘、数乘、转置、幂运算 首先需要一个矩阵对应的类 Matrix. 命名为Matrix import java.util.Arrays; /*** author yiran* creat 2021-11-26-13:58*/ public class Matrix{// 矩阵private double[][] matrix;// m x n private int m;private int n;publ…

【数理知识】向量数乘,内积,外积,matlab代码实现

序号内容1【数理知识】向量数乘&#xff0c;内积&#xff0c;外积&#xff0c;matlab代码实现2【数理知识】矩阵普通乘积&#xff0c;哈达玛积&#xff0c;克罗内克积&#xff0c;点乘&#xff0c;点积&#xff0c;叉乘&#xff0c;matlab代码实现 文章目录 1. 向量基本形式2. …