[机器学习] 分类(Classification)——贝叶斯分类 (Bayes Classification) 和逻辑回归 (Logistic Regression)

Classification

Probabilistic Generative Model

  在概率论中,我们学习过贝叶斯公式,他是说当一件事情 A A A 发生了,这件事可能有 n n n 个原因 B 1 ,   . . .   , B n B_1,\ ...\ ,B_n B1, ... ,Bn ,那么在 A A A 发生的条件下,事情是由 B i B_i Bi 引起的概率记为 p ( B i ∣ A ) p(B_i|A) p(BiA) ,这个概率等于在 B i B_i Bi 发生的概率乘以 B i B_i Bi 的条件下 A A A 发生的概率除以 A A A 发生的概率。即:
p ( B i ∣ A ) = p ( A ∣ B i ) p ( B i ) p ( A ) p(B_i|A)=\frac {p(A|B_i)p(B_i)} {p(A)} p(BiA)=p(A)p(ABi)p(Bi)
  其中, A A A 发生的概率又等于各个原因的造成 A A A 发生的概率的和,即 p ( A ) = ∑ j = 1 n p ( A ∣ B j ) p ( B j ) p(A) = \sum_{j=1}^np(A|B_j)p(B_j) p(A)=j=1np(ABj)p(Bj) 。所以贝叶斯公式的公式是:
p ( B i ∣ A ) = p ( A ∣ B i ) p ( B i ) ∑ j = 1 n p ( A ∣ B j ) p ( B j ) p(B_i|A)=\frac {p(A|B_i)p(B_i)} {\sum_{j=1}^np(A|B_j)p(B_j)} p(BiA)=j=1np(ABj)p(Bj)p(ABi)p(Bi)
  回到我们的分类任务,假设我们只需将数据分为两类,即 n = 2 n=2 n=2 ,而分类任务就是给了你一组特征值向量 x \boldsymbol x x ,你需要给出他是属于第一类 C 1 C_1 C1 还是第二类 C 2 C_2 C2 的,那么按照概率的思想,我们就可以去求这个向量是 C 1 C_1 C1 的概率和是 C 2 C_2 C2 的概率。哪个概率大我们就认为他是哪类的。也就是去求 p ( C 1 ∣ x ) p(C_1|\boldsymbol x) p(C1x) p ( C 2 ∣ x ) p(C_2|\boldsymbol x) p(C2x) ,他两的和是为 1 的,所以只需要求一个 p ( C 1 ∣ x ) p(C_1|\boldsymbol x) p(C1x) ,若大于 0.5 0.5 0.5 就分类为 C 1 C_1 C1 ,否则就分类为 C 2 C_2 C2 。根据贝叶斯公式:
p ( C 1 ∣ x ) = p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 1 ) p ( C 1 ) + p ( x ∣ C 2 ) p ( C 2 ) p(C_1|\boldsymbol x) = \frac {p(\boldsymbol x|C_1)p(C_1) } {p(\boldsymbol x|C_1)p(C_1)+p(\boldsymbol x|C_2)p(C_2)} p(C1x)=p(xC1)p(C1)+p(xC2)p(C2)p(xC1)p(C1)
  所以在这个二分类问题中,我们的目标就是去求解 p ( x ∣ C 1 ) 、 p ( C 1 ) 、 p ( x ∣ C 2 ) 、 p ( C 2 ) p(\boldsymbol x|C_1)、p(C_1)、p(\boldsymbol x|C_2)、p(C_2) p(xC1)p(C1)p(xC2)p(C2) 这四个概率。这四个参数是用训练集的参数求出的。首先来看怎么求 p ( C 1 ) 、 p ( C 2 ) p(C_1)、p(C_2) p(C1)p(C2) ,这两个其实就是 C 1 、 C 2 C_1、C_2 C1C2 在实际中发生的概率,但是我们没法知道全体样本中这两类的概率分别是多少,我们只能根据数据集来估测这两个概率。假设我们的数据集有 m m m 个样本,其中 k k k 个是 C 1 C_1 C1 ,其余 m − k m-k mk C 2 C_2 C2 ,那么我们能够得到这个样本集的概率就是:

p = p ( C 1 ) k p ( C 2 ) m − k = p ( C 1 ) k ( 1 − p ( C 1 ) ) m − k \begin{aligned} p &= p(C_1)^kp(C_2)^{m-k} \\ &=p(C_1)^k(1-p(C_1))^{m-k} \end{aligned} p=p(C1)kp(C2)mk=p(C1)k(1p(C1))mk
  按照极大似然估计的思想,这件事发生的概率最大时,即 p p p 最大时, p ( C 1 ) p(C_1) p(C1) 的值就最可能是全体样本中 C 1 C_1 C1 发生的概率。对两边取自然对数再求导:
∂ ln ⁡ p ∂ p ( C 1 ) = ∂ [ k ln ⁡ p ( C 1 ) + ( m − k ) ln ⁡ ( 1 − p ( C 1 ) ) ] ∂ p ( C 1 ) = k p ( C 1 ) − m − k 1 − p ( C 1 ) \begin{aligned} \frac {\partial\ln {p}} {\partial p(C_1)} &= \frac {\partial[k\ln {p(C_1)} + (m-k)\ln {(1-p(C_1))}]} {\partial p(C_1)} \\ &=\frac k {p(C_1)} - \frac {m-k} {1-p(C_1)} \end{aligned} p(C1)lnp=p(C1)[klnp(C1)+(mk)ln(1p(C1))]=p(C1)k1p(C1)mk
  因为对 p p p 取自然对数不会改变 p p p 的单调性,所以 ln ⁡ p \ln p lnp 取最值点时的 p ( C 1 ) p(C_1) p(C1) 也就是 p p p 求最值时的点。所以上式等于 0 时为极值点,求解得:
k p ( C 1 ) = m − k 1 − p ( C 1 ) k − k p ( C 1 ) = ( m − k ) p ( C 1 ) p ( C 1 ) = k m \begin{aligned} \frac k {p(C_1)} &= \frac {m-k} {1-p(C_1)} \\ k-kp(C_1)&=(m-k)p(C_1) \\ p(C_1) &= \frac k m \end{aligned} p(C1)kkkp(C1)p(C1)=1p(C1)mk=(mk)p(C1)=mk
  上面这个是当分类类别只有两个的时候的结果,其实当有多个类别的结果也是一样的,也就是 p ( C i ) p(C_i) p(Ci) 的极大似然估计是样本集中,属于 C i C_i Ci 的样本的个数 m i m_i mi 除以样本集的总个数 m m m
p ( C i ) = m i m p(C_i) = \frac {m_i} m p(Ci)=mmi
  上面对分类结果的分布其实是假设其服从的伯努利分布来计算的。因为类别的结果只可能是给定的几个类,比如记为 1 、 2 、 . . . 、 n 1、2、...、n 12...n 而不可能是其他取值,比如说 1.5 1.5 1.5 等等,所以这个假设是合理的。至此,我们解决了前面所要计算的 p ( C 1 ) 、 p ( C 2 ) p(C_1)、p(C_2) p(C1)p(C2) 的值,接下来我们来解决 p ( x ∣ C 1 ) 、 p ( x ∣ C 2 ) p(\boldsymbol x|C_1)、p(\boldsymbol x|C_2) p(xC1)p(xC2) ,以 p ( x ∣ C 1 ) p(\boldsymbol x|C_1) p(xC1) 为例,这个是说,在类别标签为 C 1 C_1 C1 的样本中,他的特征参数的形式为 x \boldsymbol x x 的概率。基于不同的模型我们计算出的概率的方式和结果是不同的。比如说 x \boldsymbol x x 的取值也是离散分布的,比如在一个水果类别分类任务中,我们的特征属性可能是水果的颜色、形状,颜色的取值假设只有红色、黄色、绿色、蓝色这四种,形状只有圆形、方形、弯月型这几种。那么用伯努利分布去估测 p ( x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值