机器学习朴素贝叶斯法(持续更新中)

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理与特征条件假设的分类方法。
属于监督学习的生产模型。
对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
朴素贝叶斯实现简单,学习与预测的效率都很高,是一种常用的方法

特征条件独立假设

这一部分开始朴素贝叶斯的理论推导,从中你会深刻地理解什么是特征条件独立假设。
给定训练数据集(X,Y)其中每个样本X都包括n维特征,即 x = ( x 1 , x 2 , ⋯   , x n ) x=\left(x_{1}, x_{2}, \cdots, x_{n}\right) x=(x1,x2,,xn),类标记集合合含有K种类别,即 x = ( y 1 , y 2 , ⋯   , x k ) x=\left(y_{1}, y_{2}, \cdots, x_{k}\right) x=(y1,y2,,xk)
如果现在来了一个新样本x我们要怎么判断它的类别?从概率的角度来看,这个问题就是给定x,它属于哪个类别的概率更大。那么问题就转化为求解 P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , P ( y k ∣ x ) P\left(y_{1} | x\right), P\left(y_{2} | x\right), P\left(y_{k} | x\right) P(y1x),P(y2x),P(ykx)中最大的那个,即求后验概率最大的输出: arg ⁡ max ⁡ y k P ( y k ∣ x ) \arg \max _{y_{k}} P\left(y_{k} | x\right) argmaxykP(ykx) P ( y k ∣ x ) P\left(y_{k} | x\right) P(ykx)怎么求解?答案就是贝叶斯定理:
P ( y k ∣ x ) = P ( x ∣ y k ) ⋅ P ( y k ) P ( x ) P\left(y_{k} | x\right)=\frac{P\left(x | y_{k}\right) \cdot P\left(y_{k}\right)}{P(x)} P(ykx)=P(x)P(xyk)P(yk)
根据全概率公式,可以进一步分解上式中的分母: P ( y k ∣ x ) = P ( x ∣ y k ) ⋅ P ( y k ) ∑ i = 1 n P ( x ∣ y k ) P ( y k ) P\left(y_{k} | x\right)=\frac{P\left(x | y_{k}\right) \cdot P\left(y_{k}\right)}{\sum_{i=1}^{n} P\left(x | y_{k}\right) P\left(y_{k}\right)} P(ykx)=i=1nP(xyk)P(yk)P(xyk)P(yk)
条件概率 P ( x ∣ y k ) = P ( x 1 , x 2 , ⋯   , x n ∣ y k ) P\left(x | y_{k}\right)=P\left(x_{1}, x_{2}, \cdots, x_{n} | y_{k}\right) P(xyk)=P(x1,x2,,xnyk)
它的参数规模是指数数量级别的,假设第 i i i维特征 x i x_{i} xi S i S_{i} Si个,类别取值个数为k
k个,那么参数个数为 k ∏ j = 1 n S j k \prod_{j=1}^{n} S_{j} kj=1nSj。这显然是不可行的。针对这个问题,朴素贝叶斯算法对条件概率分布做了独立性的假设,通俗地讲就是说假设各个维度的特征 x = ( x 1 , x 2 , ⋯   , x n ) x=\left(x_{1}, x_{2}, \cdots, x_{n}\right) x=(x1,x2,,xn)互相独立,由于这是一个较强的假设,朴素贝叶斯算法也因此得名。在这个假设的前提上,条件概率可以转化为:
P ( x ∣ y i ) = P ( x 1 , x 2 , ⋯   , x n ∣ y i ) = ∏ i = 1 n P ( x i ∣ y i ) P\left(x | y_{i}\right)=P\left(x_{1}, x_{2}, \cdots, x_{n} | y_{i}\right)=\prod_{i=1}^{n} P\left(x_{i} | y_{i}\right) P(xyi)=P(x1,x2,,xnyi)=i=1nP(xiyi)
这样参数规模就降到了 ∏ i = 1 n S i k \prod_{i=1}^{n} S_{i}k i=1nSik以上就是针对条件概率所作出的特征条件独立性假设,至此,先验概率 P ( y k ) P(y_{k}) P(yk)和条件概率 P ( x ∣ y k ) P(x|y_{k}) P(xyk)的求解问题就都解决了
推导可得:
P ( y k ∣ x ) = P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) ∑ k P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) P\left(y_{k} | x\right)=\frac{P\left(y_{k}\right) \prod_{i=1}^{n} P\left(x_{i} | y_{k}\right)}{\sum_{k} P\left(y_{k}\right) \prod_{i=1}^{n} P\left(x_{i} | y_{k}\right)} P(ykx)=kP(yk)i=1nP(xiyk)P(yk)i=1nP(xiyk)
于是朴素贝叶斯分类器可表示为:
f ( x ) = arg ⁡ max ⁡ y k P ( y k ∣ x ) = arg ⁡ max ⁡ y k P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) ∑ k P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) f(x)=\arg \max _{y_{k}} P\left(y_{k} | x\right)=\arg \max _{y_{k}} \frac{P\left(y_{k}\right) \prod_{i=1}^{n} P\left(x_{i} | y_{k}\right)}{\sum_{k} P\left(y_{k}\right) \prod_{i=1}^{n} P\left(x_{i} | y_{k}\right)} f(x)=argykmaxP(ykx)=argykmaxkP(yk)i=1nP(xiyk)P(yk)i=1nP(xiyk)

因为对于所有的 y k y_{k} yk,上式中的分母的值都是一样的.朴素贝叶斯最终表示为:
f ( x ) = arg ⁡ max ⁡ y k P ( y k ∣ x ) = arg ⁡ max ⁡ y k { P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) f(x)=\arg \max _{y_{k}} P\left(y_{k} | x\right)=\arg \max _{y_{k}} \{P\left(y_{k}\right) \prod_{i=1}^{n}P(x_{i}|y_{k}) f(x)=argykmaxP(ykx)=argykmax{P(yk)i=1nP(xiyk)

极大似然估计

在朴素贝叶斯法中,学习意味着估计 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 P(Y=c_{k})=\frac{ \sum_{i=1}^{N}I(y_{i}=c_{k}))}{N} P(Y=ck)=Ni=1NI(yi=ck))

归结贝叶斯

  • 朴素贝叶斯
    P ( y ∣ x 1 , … , x n ) = P ( y ) P ( x 1 , … x n ∣ y ) P ( x 1 , … , x n ) P(y \mid x_1, \dots, x_n) = \frac{P(y) P(x_1, \dots x_n \mid y)} {P(x_1, \dots, x_n)} P(yx1,,xn)=P(x1,,xn)P(y)P(x1,xny)

  • 高斯贝叶斯
    P ( x i ∣ y ) = 1 2 π σ y 2 exp ⁡ ( − ( x i − μ y ) 2 2 σ y 2 ) P(x_i \mid y) = \frac{1}{\sqrt{2\pi\sigma^2_y}} \exp\left(-\frac{(x_i - \mu_y)^2}{2\sigma^2_y}\right) P(xiy)=2πσy2 1exp(2σy2(xiμy)2)

  • 多项分布朴素贝叶斯
    θ ^ y i = N y i + α N y + α n \hat{\theta}_{yi} = \frac{ N_{yi} + \alpha}{N_y + \alpha n} θ^yi=Ny+αnNyi+α

  • 补充朴素贝叶斯

  • 伯努利朴素贝叶斯

  • P ( x i ∣ y ) = P ( i ∣ y ) x i + ( 1 − P ( i ∣ y ) ) ( 1 − x i ) P(x_i \mid y) = P(i \mid y) x_i + (1 - P(i \mid y)) (1 - x_i) P(xiy)=P(iy)xi+(1P(iy))(1xi)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值