朴素贝叶斯的推导

朴素贝叶斯=朴素+贝叶斯原理。

朴素:navie,天真,天真的认为特征独立同分布(但现实是复杂的,一般都不是独立的)

贝叶斯原理: p ( y ∣ x ) = p ( x , y ) p ( x ) p(y|x)=\frac{p(x,y)}{p(x)} p(yx)=p(x)p(x,y)

朴素贝叶斯是生成式模型,用于做分类的,它是通过argmax p(y|x)来生成类别。

那么argmax p(y|x)如何来的呢?如何使得后验概率p(y|x)最大化呢?

在0-1损失函数中,后验概率最大化等价于经验风险最小化。所以现在来看0-1损失的期望风险最小化问题。

后验概率最大化与(条件)期望风险最小化

  • 0-1损失函数(0-1损失函数):

L ( Y , f ( X ) ) = { 1 , Y ̸ = f ( X ) 0 , Y = f ( X ) L(Y,f(X))=\begin{cases} 1,&Y \not=f(X) \\ 0,&Y=f(X) \end{cases} L(Y,f(X))={1,0,Y̸=f(X)Y=f(X)

  • 那么其期望风险为:

R e x p ( f ( x ) ) = E [ L ( Y , f ( X ) ) ] R_{exp}(f(x))=E[L(Y,f(X))] Rexp(f(x))=E[L(Y,f(X))]

因为这个期望是对联合概率P(X,Y)取得,而我们只是需要条件期望(我们的目的是后验概率最大化)。

那如何获得条件期望风险呢?
条件期望风险可以通过期望风险得到:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ R_{exp}(f(x))=…

从而就获得了P(Y|X)的条件期望(这个是离散表示,上面是连续函数表示)。

R e x p ( f ( x ) ) = E ∑ k = 1 K [ L ( c k , f ( X ) ) ] p ( c k ∣ x ) R_{exp}(f(x))=E\sum_{k=1}^{K}[L(c_k,f(X))]p(c_k|x) Rexp(f(x))=Ek=1K[L(ck,f(X))]p(ckx)

得到条件期望后,就开始求期望风险最小化:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ f(x)=argmin_{y…
这样,就得到了期望风险最小化等价于后验概率最大化,从而知道了后验概率最大化的由来。

如何实现后验概率最大化呢?

现在我们知道了,对于朴素贝叶斯而言,要达到分类的目的,就要后验概率最大化。

而如何实现后验概率最大化呢?

我们先来看一下我们已经有的条件:

  • 1 一般情况下我们有训练集样本(X,Y),根据样本我们可以学习到两个分布一个是先验分布,一个是后验分布:P(Y)和P(X|Y)

  • 2 条件独立同分布及贝叶斯方法

结合我们的目的和已知条件得到:

a r g m a x c k P ( Y ∣ X ) = a r g m a x c k P ( X ∣ Y ) P ( Y ) P ( X ) argmax_{ck} P(Y|X)=argmax_{ck} \frac{P(X|Y)P(Y)}{P(X)} argmaxckP(YX)=argmaxckP(X)P(XY)P(Y)

现在求P(Y|X)的求解问题就变味了求解 a r g m a x P ( X ∣ Y ) P ( Y ) P ( X ) arg max \frac{P(X|Y)P(Y)}{P(X)} argmaxP(X)P(XY)P(Y)的问题。

又因为在这个最大化的过程中,P(X)作为一个实例,P(X)是一个常量值,所以仅剩下分子是我们要求的最大化: a r g m a x c k P ( X ∣ Y ) P ( Y ) argmax_{ck} P(X|Y)P(Y) argmaxckP(XY)P(Y)

而因为这个贝叶斯朴素的,特征独立同分布,所以:
a r g m a x c k P ( X ∣ Y ) P ( Y ) = a r g m a x c k P ( Y ) ∏ j = 1 N P ( X j = x j ∣ Y = c k ) argmax_{ck}P(X|Y)P(Y)=argmax_{ck}P(Y)\prod_{j=1}^{N}{P(X^{j}=x^{j}|Y=c_k)} argmaxckP(XY)P(Y)=argmaxckP(Y)j=1NP(Xj=xjY=ck)

现在我们得到了如何根据训练集来求得最大的分类。

不过呢,在P(X|Y)中, X = X ( 1 ) , X ( 2 ) , . . . , X ( N ) X={X^{(1)},X^{(2)},...,X^{(N)}} X=X(1),X(2),...,X(N),每一个特征取 X ( i ) X^{(i)} X(i)取值有 a s i a_{si} asi个, a s i = a 1 i , a 2 i , . . . , a n i a_{si}={a_{1i},a_{2i},...,a_{ni}} asi=a1i,a2i,...,ani,从而使得X个特征乘积的结果为
∏ i = 1 N a s i \prod_{i=1}^{N}{a_si} i=1Nasi,而因为需要计算每个类别下的特征乘积,总共有K个类别,那么计算量为K ∏ i = 1 N a s i \prod_{i=1}^{N}{a_si} i=1Nasi

这个计算量是很大的,很耗时,往往使用不太现实。此时就用极大似然估计来计算条件概率。

极大似然估计与贝叶斯估计

好了,那为了减少计算量级,就通过最大似然估计来进行贝叶斯方法的参数估计:

我们根据求解的结果可知,我们需要利用极大似然估计来求解 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(Xj=xjY=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}^{N}{I(y_i=c_k)}}{N}, k=1,2,..,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,..,K

P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^j=x^j|Y=c_k)=\frac{\sum_{i=1}^{N}{I(x_i^{(j)}=a_{sj},y_i=c_k)}}{\sum_{i=1}^{N}{I(y_i=c_k)}} P(Xj=xjY=ck)=i=1NI(yi=ck)i=1NI(xi(j)=asj,yi=ck)

其中,KaTeX parse error: Expected '}', got 'EOF' at end of input: x_i^{(j)指的是第i个样本第j个特征, a s j a_{sj} asj是第j个特征取到第i个属性值,I表示指示函数。

得到了先验概率和条件概率得极大似然估计值,就可以进行简便求解了。

不过在极大似然估计中,可能存在得问题,在先验概率的极大似然估计中,可能存在某个类别(ck)的样本数目为零,从而导致了其先验概率为0,求解无意义;同时对于条件概率也一样,既是分母不为零,但某一个特征值下且取得asj值的样本可能也不存在,使得条件概率为0。

为了优化这个问题,从而得到了贝叶斯估计。

贝叶斯估计是在分子都加上了一个 λ \lambda λ值,分母分别加上k倍或者是Sj倍的 λ \lambda λ值。

从而得到的先验概率和条件概率为:

P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ , k = 1 , 2 , . . , K P(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}+\lambda}{N+K\lambda}, k=1,2,..,K P(Y=ck)=N+Kλi=1NI(yi=ck)+λ,k=1,2,..,K

P ( X j = x j ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a s j , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ P(X^j=x^j|Y=c_k)=\frac{\sum_{i=1}^{N}{I(x_i^{(j)}=a_{sj},y_i=c_k)}+\lambda}{\sum_{i=1}^{N}{I(y_i=c_k)}+S_j\lambda} P(Xj=xjY=ck)=i=1NI(yi=ck)+Sjλi=1NI(xi(j)=asj,yi=ck)+λ

  • λ \lambda λ取值为零时,就是极大似然估计
  • λ \lambda λ取值为1时,就是拉普拉斯平滑。
### 条件期望的概念及其在朴素贝叶斯中的应用 条件期望是一种统计学工具,用于描述随机变量 \(Y\) 在另一个随机变量 \(X\) 给定时的平均行为。形式上,如果已知 \(X=x\),则条件期望表示为: \[ E[Y|X=x] = \sum_y y \cdot P(Y=y | X=x) \] 对于离散型随机变量而言,上述公式可以通过求和的方式计算[^1]。 #### 朴素贝叶斯中的条件期望 在朴素贝叶斯算法中,主要关注的是后验概率 \(P(Y=C_k | X)\),即给定输入特征向量 \(X\) 后属于类别 \(C_k\) 的概率。然而,在某些扩展场景下,可能需要考虑目标值的期望估计而非单纯的分类标签预测。此时,条件期望便成为一种重要的分析手段。 具体地,当朴素贝叶斯被应用于回归问题或者连续输出建模时,可以利用学到的概率分布来估算条件期望。例如,设 \(f(x)\) 表示某个函数映射关系,则有如下表达式成立: \[ f(x) = E[Y|X=x] = \int y p(y|x) dy \] 这里假设 \(p(y|x)\) 是由朴素贝叶斯推导出来的条件密度函数[^4]。 以下是实现这一过程的一个简单伪代码框架: ```python def compute_conditional_expectation(prior_probs, conditional_probs): """ 计算朴素贝叶斯下的条件期望 参数: prior_probs: list[float], 类别的先验概率列表 conditional_probs: dict[list[float]], 每个类别的条件概率字典 返回: float, 输入样本对应的条件期望值 """ total_sum = 0.0 for class_label, prob in enumerate(conditional_probs.values()): posterior_prob = (prob * prior_probs[class_label]) / sum( [prior_probs[i]*cond_p for i, cond_p in enumerate(conditional_probs.values())]) # 假设每个类别对应一个数值y_i y_i = get_class_value(class_label) total_sum += y_i * posterior_prob return total_sum ``` 注意以上代码仅为示意用途,实际部署需依据特定应用场景调整逻辑细节[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值