机器学习---朴素贝叶斯分类

贝叶斯决策论

对于分类任务而言,假设有训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , x i = ( x i 1 , x i 2 , . . . , x i n ) , y ∈ Y = { c 1 , c 2 , . . . , c K } } D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m),x_i = (x_{i1},x_{i2},...,x_{in}), y\in Y=\{c_1,c_2,...,c_K\}\} D={(x1,y1),(x2,y2),...,(xm,ym),xi=(xi1,xi2,...,xin),yY={c1,c2,...,cK}} m m m个样本,每个样本 n n n个特征, y y y K K K个分类,当 K = 2 K=2 K=2时,就是二分类任务,此时 y = { 0 , 1 } y=\{0,1\} y={0,1}
最终我们的目的是从测试集的样本 x i x_i xi(非训练测试集)推出它的 y i = c k y_i=c_k yi=ck类别,从概率的角度上讲,在真实的数据下,我们需要最大化从测试数据推断出类别 c k c_k ck的概率 p ( y i = c k ∣ x ) p(y_i=c_k|x) p(yi=ckx),因此, p ( y i = c k ∣ x ) p(y_i=c_k|x) p(yi=ckx)也被称为后验概率
c k c_k ck的假设函数为 h θ ( x ) h_\theta(x) hθ(x) x x x为输入样本, θ \theta θ为模型需要估计的参数。 h ∗ h^* h为贝叶斯最优分类器。
h ∗ ( x ) = a r g    m a x c ∈ Y P ( c ∣ x ) h^*(x)=\underset{c\in Y}{arg\;max}P(c|x) h(x)=cYargmaxP(cx)

即对每个样本,选择能使后验概率最大的类别标记。

生成式模型

机器学习所实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P ( c ∣ x ) P(c|x) P(cx)。大体来说有两种策略:

  1. 判别式模型:
    给定样本 x x x,直接建模 P ( c ∣ x ) P(c|x) P(cx)来预测c;如决策树、BP神经网络、支持向量机;
  2. 生成式模型:
    先对联合概率密度分布 P ( x , c ) P(x,c) P(x,c)进行建模,然后再根据贝叶斯定理获得 P ( c ∣ x ) P(c|x) P(cx),这里与判别式模型的区别是多了一步联合密度概率分布 P ( x , c ) P(x,c) P(x,c) P ( x , c ) P(x,c) P(x,c) x − c x-c xc的概率分布模型,可以理解为从概率的角度对数据的生成建模。

朴素贝叶斯属于生成模型,贝叶斯定理:
p ( c ∣ x ) = P ( c , x ) P ( x ) = P ( c ) P ( x ∣ c ) P ( x ) p(c|x)=\dfrac{P(c,x)}{P(x)}=\dfrac{P(c)P(x|c)}{P(x)} p(cx)=P(x)P(c,x)=P(x)P(c)P(xc)

P ( c ) P(c) P(c)为先验概率,意味着我们可以从样本数据直接得到, P ( x ∣ c ) P(x|c) P(xc)称为似然(likehood),称为似然是说明是给定某一结果,求某一参数值的可能性,概率是给定某一参数值,求某一结果的可能性。

朴素贝叶斯分类器

似然 P ( x ∣ c ) P(x|c) P(xc)是所有属性上的联合概率,难以从有限的训练样本直接估计而得,为了避开这个障碍,朴素贝叶斯分类器假设所有属性相互独立,假设我们要推断的是单个测试样本 x t x_t xt的类别,故:
p ( c ∣ x t ) = P ( c ) P ( x t ∣ c ) P ( x t ) = P ( c ) P ( x t ) Π j = 1 n P ( x t j ∣ c ) p(c|x_t)=\dfrac{P(c)P(x_t|c)}{P(x_t)}=\dfrac{P(c)}{P(x_t)}\Pi_{j=1}^{n}P(x_{tj}|c) p(cxt)=P(xt)P(c)P(xtc)=P(xt)P(c)Πj=1nP(xtjc)

P ( x t ∣ c ) P(x_t|c) P(xtc)采用了最大似然估计。
P ( c ) P(c) P(c)表示样本空间中各类样本所占的比例,根据大数定律,当训练集包含充足的独立同分布样本时, P ( c ) P(c) P(c)可以通过各类样本出现的频率进行估计。
对所有类别来说 p ( x ) p(x) p(x)相同,仅仅是用于归一化的证据因子,因此贝叶斯判定准则为:
h ∗ ( x i ) = a r g    m a x c ∈ Y P ( c ) Π j = 1 n P ( x t j ∣ c ) = a r g    m a x c k P ( y = c k ) Π j = 1 n P ( x t j ∣ y = c k ) h^*(x_i)=\underset{c\in Y}{arg\;max} P(c)\Pi_{j=1}^{n}P(x_{tj}|c)\\= \underset{c_k}{arg\;max} P(y=c_k)\Pi_{j=1}^{n}P(x_{tj}|y=c_k) h(xi)=cYargmaxP(c)Πj=1nP(xtjc)=ckargmaxP(y=ck)Πj=1nP(xtjy=ck)

学习与分类算法

训练样本集:

样本1 j j j(特征)n
1 1 1 x 1 x_1 x1 x 11 x_{11} x11 x 1 j x_{1j} x1j x 1 n x_{1n} x1n
i i i x i x_i xi x i 1 x_{i1} xi1 x i j x_{ij} xij x i n x_{in} xin
m m m x m x_m xm x m 1 x_{m1} xm1 x m j x_{mj} xmj x m n x_{mn} xmn

m m m个样本, n n n个特征, x i j x_{ij} xij表示第 i i i个样本的第 j j j个特征

  1. 计算先验概率和条件概率(最大似然估计):
    P ( y = c k ) = ∑ i = 1 m I ( y i = c k ) m P(y=c_k)=\dfrac{\sum_{i=1}^{m}I(y_i=c_k)}{m} P(y=ck)=mi=1mI(yi=ck)

P ( x i j ∣ y = c k ) = ∑ i = 1 m I ( x i j , y i = c k ) ∑ i = 1 m I ( y i = c k ) P(x_{ij}|y=c_k)=\dfrac{\sum_{i=1}^{m}I(x_{ij},y_i=c_k)}{\sum_{i=1}^{m}I(y_i=c_k)} P(xijy=ck)=i=1mI(yi=ck)i=1mI(xij,yi=ck)

  1. 对于给定的样本 x t = ( x t 1 , . . . , x t n ) T x_t =(x_{t1},...,x_{tn})^T xt=(xt1,...,xtn)T,计算:
    P ( y = c k ) Π j = 1 n P ( x t j ∣ y = c k ) , k = 1 , . . K P(y=c_k)\Pi_{j=1}^{n}P(x_{tj}|y=c_k),k=1,..K P(y=ck)Πj=1nP(xtjy=ck),k=1,..K

  2. 确定实例 x t x_t xt所属的类
    y = a r g    m a x c k P ( y = c k ) Π j = 1 n P ( x t j ∣ y = c k ) y=\underset{c_k}{arg\;max} P(y=c_k)\Pi_{j=1}^{n}P(x_{tj}|y=c_k) y=ckargmaxP(y=ck)Πj=1nP(xtjy=ck)

贝叶斯估计

用极大似然估计可能会出现所要估计的概率值为0,因为有的属性可能从未出现在训练样本中但在测试样本中,解决这一问题的方法时采用贝叶斯估计,条件概率(似然)的贝叶斯估计为:
P λ ( x i j ∣ y = c k ) = ∑ i = 1 n I ( x i j , y i = c k ) + λ ∑ i = 1 n I ( y i = c k ) + S j λ P_\lambda(x_{ij}|y=c_k)=\dfrac{\sum_{i=1}^{n} I(x_{ij},y_i=c_k)+\lambda}{\sum_{i=1}^{n}I(y_i=c_k)+S_j\lambda} Pλ(xijy=ck)=i=1nI(yi=ck)+Sjλi=1nI(xij,yi=ck)+λ

S j S_j Sj表示第 j j j个特征可能的取值个数,比如西瓜的色泽特征有三种, S 色 泽 = 3 S_{色泽}=3 S=3
λ ≥ 0 \lambda \geq0 λ0,当 λ = 0 \lambda=0 λ=0时就对应最大似然估计。
平滑最大似然带来的分类偏差一般取 λ = 1 \lambda=1 λ=1,即拉普拉斯平滑。可以证明 P λ ( x i j ) P_\lambda(x_ij) Pλ(xij)仍然满足概率分布:
P λ ( x i j ∣ y = c k ) > 0 ∑ i = 1 S j P λ ( x i j ∣ y = c k ) = 1 P_\lambda(x_{ij}|y=c_k)>0 \\ \sum_{i=1}^{S_j}P_\lambda(x_{ij}|y=c_k)=1 Pλ(xijy=ck)>0i=1SjPλ(xijy=ck)=1

先验概率的贝叶斯估计为:
P ( y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ P(y=c_k)=\dfrac{\sum_{i=1}^{N}I(y_i=c_k)+\lambda}{N+K\lambda} P(y=ck)=N+Kλi=1NI(yi=ck)+λ

note

  • 实际中运用最大似然模型的时候需要取对数的方式来将连乘转换为连加以避免数值下溢。
  • 用样本估计概率值时为了防止有的属性从未出现概率值为0,因此在估计概率值的时候需要进行平滑,也就是在分子上加上一个很小的常数,也就是拉普拉斯修正。
  • 优点: 所需数据量较小,鲁棒性高
  • 缺点:很多情况下数据不满足独立的假设;不适用于高维数据集

参考:

  1. 周志华-机器学习
  2. 吴恩达-机器学习
  3. 李航-统计学习
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值