伯努利分布+朴素贝叶斯分类器の概率解释

「伯努利分布+朴素贝叶斯」分类器

在神经网络技术还不成熟的时候,朴素贝叶斯分类器(NBC)是文档分类的利器。即便是在神经网络满地走的今天,朴素贝叶斯模型依然有很大的价值。进行文档分类时,这个模型只需要进行几次简单的循环,就可以给出结果,在一些对结果要求不是特别高、对性能要求很高的场景下,具有很大的价值。

这篇文章以文档分类问题引出,重点将特征的伯努利分布(Bernoulli)带入朴素贝叶斯模型,熟悉贝叶斯统计的流程和计算。

本文的md源码在这里:AnBlog/统计和机器学习

可以解决的问题

在进行文档分类之前,需要对文本进行一些处理。对于这个模型来说,最关键的一步是建立一个特征(feature)向量,向量的每个分量(entry)对应文本中可能出现的一个单词,取值 0 , 1 0,1 0,1,表示存在/不存在。

这样的一个分量用伯努利分布描述,参数为 θ \theta θ
p ( x = 1 ∣ θ ) = θ , p ( x = 0 ∣ θ ) = 1 − θ p(x=1|\theta)=\theta,p(x=0|\theta)=1-\theta p(x=1θ)=θ,p(x=0θ)=1θ
在其他问题中,这个分布可能取正态分布,或其他分布,但过程的其他部分大同小异。

建立这样的一个从「单词」到「 0 , 1 0,1 0,1」的映射,可以通过简单的哈希表实现。一段文本中可能出现各种各样的单词,为了保证完备,一段文本对应的特征可能特别多,可能包含所有的英语单词、中文字符,以及世界上的各种其他语言!一定存在一些更省空间的优化,但这不是这篇文章的重点。

模型的目标由需求决定,通常是个二分类问题,判断邮件是/不是垃圾邮件。这篇文章讨论多类分类问题,目标 y y y服从多项的伯努利分布(Multinoulli),参数为 π \pi π
p ( y ∣ π ) = ∏ c π c I ( y = c ) , ∑ c π c = 1 p(y|\pi)=\prod_c\pi_c^{I(y=c)},\sum_c\pi_c=1 p(yπ)=cπcI(y=c),cπc=1
解决问题的过程,就是根据现有的数据 D D D,估计参数 θ , π \theta,\pi θ,π,从而求目标 y y y未来取某值的概率 p ( y = … ) p(y=…) p(y=)

「朴素」的意思

「朴素」指的是假设对象的特征都相互独立,这当然不是一个完美的假设,所以才「朴素」(naive)。也就是说,对象特征 x ⃗ \vec x x 的概率分布函数,是各个特征 x j x_j xj的概率分布函数的乘积:
p ( x ⃗ ) = ∏ j = 1 D p ( x j ) p(\vec x)=\prod_{j=1}^Dp(x_j) p(x )=j=1Dp(xj)

具体要算什么

假设一个多类分类问题,在具有数据集合 D D D的时候,看见一些特征 x ⃗ \vec x x 时,目标 y y y应取何值。目标 y y y由概率分布描述:
p ( y = c ∣ x ⃗ , D ) p(y=c|\vec x,D) p(y=cx ,D)
用这个模型进行预测:
p ( y = c ∣ x ⃗ , D ) ∝ p ( y = c ∣ D ) p ( x ⃗ ∣ y = c , D ) = p ( y = c ∣ D ) ∏ j p ( x j ∣ y = c , D ) p(y=c|\vec x,D)\propto p(y=c|D)p(\vec x|y=c,D)=p(y=c|D)\prod_jp(x_j|y=c,D) p(y=cx ,D)p(y=cD)p(x y=c,D)=p(y=cD)jp(xjy=c,D)
模型的目标是分别表达出 p ( y = c ∣ D ) , p ( x j ∣ y = c , D ) p(y=c|D),p(x_j|y=c,D) p(y=cD),p(xjy=c,D)

数据情况和分布假设

假设特征 x x x都只能取得两个离散的值 0 , 1 0,1 0,1,表示「是否存在」,可以用伯努利分布描述这样的数据:
p ( x j ∣ θ j ) = θ j x j ( 1 − θ j ) 1 − x j p(x_j|\theta_j)=\theta_j^{x_j}(1-\theta_j)^{1-x_j} p(xjθj)=θjxj(1θj)1xj
x x x当然可以取其他的值和分布,取值连续时可以取正态分布,取值为多个离散值时可以是多项伯努利分布。

为了让模型具备更多数据,参数 θ \theta θ和目标分类 c c c发生依赖,不同的 c c c对应不同的参数 θ \theta θ,则要估计的参数 θ \theta θ是一个矩阵 θ j c \theta_{jc} θjc
p ( x j ∣ y = c , θ j c ) = θ j c x j ( 1 − θ j c ) 1 − x j p(x_j|y=c,\theta_{jc})=\theta_{jc}^{x_j}(1-\theta_{jc})^{1-x_j} p(xjy=c,θjc)=θjcxj(1θjc)1xj
还未完成的是表达 p ( θ j c ∣ D ) p(\theta_{jc}|D) p(θjcD)

y y y可以取离散的多个不同值, y ∣ D y|D yD和特征 x x x无关,可以通过多项伯努利分布描述:
p ( y ∣ π ) = ∏ c π c I ( y = c ) , ∑ c π c = 1 p(y|\pi)=\prod_c\pi_c^{I(y=c)},\sum_c\pi_c=1 p(yπ)=cπcI(y=c),cπc=1
参数 π \pi π也需要估计。

写出联合后验分布:
p ( θ , π ∣ D ) ∝ p ( θ , π ) p ( D ∣ θ , π ) = p ( θ ) p ( π ) p ( D ∣ θ , π ) p(\theta,\pi|D)\propto p(\theta,\pi)p(D|\theta,\pi)=p(\theta)p(\pi)p(D|\theta,\pi) p(θ,πD)p(θ,π)p(Dθ,π)=p(θ)p(π)p(Dθ,π)

似然 (Likelihood)

接上式似然:
p ( D ∣ θ , π ) = ∏ i p ( x ( i ) , y ( i ) ∣ θ , π ) = ∏ i p ( x ( i ) ∣ θ , π ) p ( y ( i ) ∣ θ , π ) = ∏ i p ( x ( i ) | θ ) p ( y ( i ) ∣ π ) p(D|\theta,\pi)=\prod_ip(x^{(i)},y^{(i)}|\theta,\pi)=\prod_ip(x^{(i)}|\theta,\pi)p(y^{(i)} |\theta,\pi)=\prod_ip(x^{(i)}|\theta)p(y^{(i)} |\pi) p(Dθ,π)=ip(x(i),y(i)θ,π)=ip(x(i)θ,π)p(y(i)θ,π)=ip(x(i)θ)p(y(i)π)
其中,对每个特征 j j j
p ( x ( i ) ∣ θ ) = ∏ j = 1 D p ( x j ( i ) ∣ θ j ) p(x^{(i)}|\theta)=\prod_{j=1}^Dp(x_j^{(i)}|\theta_j) p(x(i)θ)=j=1Dp(xj(i)θj)
为不同的分类设置不同的参数 θ \theta θ以增加模型的复杂度:
p ( x j ( i ) ∣ θ j c ) = ∏ c p ( x j ( i ) ∣ θ j c ) I ( y ( i ) = c ) , p ( x j ( i ) ∣ θ j c ) = θ j c x j ( i ) ( 1 − θ j c ) 1 − x j ( i ) p(x_j^{(i)}|\theta_{jc})=\prod_cp(x_j^{(i)}|\theta_{jc})^{I(y^{(i)}=c)},p(x_j^{(i)}|\theta_{jc})=\theta_{jc}^{x_j^{(i)}}(1-\theta_{jc})^{1-x_j^{(i)}} p(xj(i)θjc)=cp(xj(i)θjc)I(y(i)=c),p(xj(i)θjc)=θjcxj(i)(1θjc)1xj(i)

最大似然估计 (MLE)

取对数:
ln ⁡ p ( D ∣ θ , π ) = ln ⁡ ∏ i p ( x ( i ) , y ( i ) ∣ θ , π ) = ∑ i ( ln ⁡ p ( y ( i ) ∣ π ) + ∑ j ln ⁡ p ( x j ( i ) ∣ θ j ) ) \ln p(D|\theta,\pi)=\ln \prod_ip(x^{(i)},y^{(i)}|\theta,\pi)=\sum_i(\ln p(y^{(i)}|\pi)+\sum_j\ln p(x^{(i)}_j|\theta_j)) lnp(Dθ,π)=lnip(x(i),y(i)θ,π)=i(lnp(y(i)π)+jlnp(xj(i)θj))
y y y部分:
∑ i ln ⁡ p ( y ( i ) ∣ π ) = ∑ i ∑ c I ( y ( i ) = c ) × ln ⁡ π c = ∑ c N c ln ⁡ π c \sum_i\ln p(y^{(i)}|\pi)=\sum_i\sum_cI(y^{(i)}=c)\times\ln\pi_c=\sum_cN_c\ln\pi_c ilnp(y(i)π)=icI(y(i)=c)×lnπc=cNclnπc
x x x部分:
∑ i ∑ j ln ⁡ p ( x j ( i ) ∣ θ j ) = ∑ j ∑ c ∑ i : y ( i ) = c ( x j ( i ) ln ⁡ θ j c + ( 1 − x j ( i ) ) ln ⁡ ( 1 − θ j c ) ) \sum_i\sum_j\ln p(x^{(i)}_j|\theta_j)=\sum_j\sum_c\sum_{i:y^{(i)}=c}(x_j^{(i)}\ln\theta_{jc}+(1-x_j^{(i)})\ln(1-\theta_{jc})) ijlnp(xj(i)θj)=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值