【机器学习读书笔记】朴素贝叶斯分类

【机器学习读书笔记】朴素贝叶斯分类

三、朴素贝叶斯分类

朴素贝叶斯是基于概率论的分类方法,不像之前给出的K-近邻和决策树会硬性的将输入分到一个类别中。朴素贝叶斯分类算法只给出该数据属于某一类别的可能性或者说概率。最终的类别标签会以较大概率的标签为准。

朴素贝叶斯在贝叶斯的基础上给出了条件独立性假设,我们也知道这个假设非常简单,这也是它称为朴素的原因。

算法思路

  • 贝叶斯定理 我们先看看wiki上是怎么解释Bayes定理的。事件A在事件B(发生)的条件下的概率,与事件B在事件A(发生)的条件下的概率,是不一样的;然而两者是有确定关系的,Bayes定理就是对这种关系的陈述。说白了,贝叶斯定理是关于随机事件A和B的条件概率的一则定理:P(A|B)={\frac {P(B|A),P(A)}{P(B)}}
  • 条件概率条件概率的计算公式有两个:

    • P(A|B) = P(AB) / P(B)
    • 另一种计算方法就是贝叶斯定理: P(A|B) = P(B|A)*P(A) / P(B)
  • 贝叶斯决策 下面我们将以数据X分类的问题来解释这章的核心思想,假设现在有数据X 它属于分类C1的概率为P1,属于分类C2的概率为P2。如果使用贝叶斯理论进行决策,那么哪个概率高,数据X就属于哪个分类. 这也就是贝叶斯决策的核心思想:选择具有高概率的决策。

  • 现在,让我们回过头来看数据X分类的问题。要想求出X的分类,实际上是这样一个问题:当数据X出现在我们面的时候,它到底是属于分类C1还是分类C2那?发现没有,这不就是条件概率吗?问题转换为求出P1 = P(C1 | X) , P2 = P(C2 | X) 然后比较P1和P2,具有较大概率的那个值就是我们给出的对于数据X的分类。那么这两个条件概率怎么计算那?Bingo,贝叶斯定理。我们以P1为例。 P1 = P(C1|X) = P(X|C1) * P(C1) / P(X) 在一篇文档中,我们可以把每个单词作为一个特征,所以这里的X是一个向量。所有的单词组成一个单词表,向量X中每一个位置表示对应单词表中的单词是否出现在X中。想要计算P1,就该我们的主角朴素贝叶斯登场了。朴素贝叶斯指在贝叶斯的基础上提供条件独立性假设:指各个特征之间是独立的,所有单词之间相互独立,每个单词出现的概率不受它前面和后面单词的影响。 依据条件独立性假设,我们可以将X展开为一个个独立的特征P(X|C1) = P(x1, x2, x3··xN | C1) = P(x1|C1) P(x2|C1) P(x3|C1)···P(xN|C1)
  • 对比P1和P2 他们的分母是相同的,所以为了比较他们的大小,我们只需要比较分子即可。在给定的训练集中,P(C1) 和P(C2)可以很容易的求出(类别出现的次数 / 训练样本总次数)。 P(x1|C1) 表示在C1这种分类中,特征x1出现的概率,对于给定的训练样本也是非常好求的(所有分类为C1的样本中特征x1出现的总次数 / 分类为C1所有样本出现的总特征数)。训练的时候,我们求出所有特征在某种分类下的概率:P(x1|C1) P(x2|C2), 并记录下来,这就是我们的NB分类器了。 实际应用的时候,根据贝叶斯公式和训练的结果求出P1 P2,概率较大的分类即为数据X的分类结果。大功告成。
  • 朴素贝叶斯 Naive Bayes 在贝叶斯理论的基础上加上条件独立性假设。在实际使用中,朴素贝叶斯分类器有两种实现方式:一种基于伯努利模型实现,一种基于多项式模型实现。如果使用第一种,相当于加上了词是等权重的假设,我们只关心词是否出现,词出现的次数并没有考虑。基于这一点,又引出了两种模型:
    • Set Of Words Model: 词集模型,这里只考虑词条是否出现,不考虑出现的次数。
    • Bag Of Words Model:词带模型,考虑词出现的次数

优点 vs 缺点

  • 优点:在数据较少的情况下仍然有效,可以处理多类别问题
  • 缺点:对于输入数据的准备方式较为敏感

TIPS

  • 朴素贝叶斯的假设(条件独立性)显然不对,但是实际的分类效果却非常好。主要应用场景:过滤网站恶意留言、过滤垃圾邮件、借助分类来分析数据等
  • BagOfWords Model 在实际应用中比SetOfWords Model效果有所提高。
  • 实际应用中对数据的分析划分非常重要,比如移除停用词(stop word)。另外还需要注意实现中的下溢出问题,可以通过对概率取自然对数来解决。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值