机器学习实战 | 第4章 基于概率论的分类方法: 朴素贝叶斯

本文探讨了基于贝叶斯决策理论的朴素贝叶斯分类方法,重点介绍了其在文本分类,尤其是文档分类中的应用。文章详细阐述了朴素贝叶斯分类器的原理,包括条件概率、基于条件概率的分类过程以及朴素贝叶斯分类器的两种实现方式。此外,还提供了Python代码示例,展示了如何从文本中构建词向量,计算条件概率,以及构建和测试分类器。

4.1 基于贝叶斯决策理论的分类方法

				朴素贝叶斯
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。
适用数据类型:标称型数据。

用p1(x,y)表示数据点(x,y)属于类别1的概率;
用p2(x,y)表示数据点(x,y)属于类别2的概率;
那么对于一个新数据点(x,y),可以用下面的规则来判断它的类别:
 如果 p1(x,y) > p2(x,y),那么类别为1。
 如果 p2(x,y) > p1(x,y),那么类别为2。

贝叶斯决策理论的核心思想:选择具有最高概率的决策。

4.2 条件概率

贝叶斯准则:告诉我们如何交换条件概率中的条件与结果,即如果已知P(x|c),要求P(c|x),则:
条件概率

4.3 使用条件概率来分类

贝叶斯理论真正需要计算和比较的是p(c1|x, y)和p(c2|x, y)。
这些符号所代表的具体意义是:
给定某个由x、y表示的数据点,那么该数据点来自类别c1的概率是多少?数据点来自类别c2的概率又是多少?
应用贝叶斯准则:贝叶斯准则

4.4 使用朴素贝叶斯进行文档分类

朴素贝叶斯是贝叶斯分类器的一个扩展,是用于文档分类的常用算法。

										朴素贝叶斯的一般过程
(1) 收集数据:可以使用任何方法。本章使用RSS源。
(2) 准备数据:需要数值型或者布尔型数据。
(3) 分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好。
(4) 训练算法:计算不同的独立特征的条件概率。
(5) 测试算法:计算错误率。
(6) 使用算法:一个常见的朴素贝叶斯应用是文档分类。可以在任意的分类场景中使用朴素贝叶斯分类器,不一定非要是文本。

朴素贝叶斯分类器通常有两种实现方式:
1)基于贝努利模型实现,
2)基于多项式模型实现。
这里采用前一种实现方式。该实现方式中并不考虑词在文档中出现的次数,只考虑出不出现,因此在这个意义上相当于假设词是等权重的。
4.5.4节给出的实际上是多项式模型,它考虑词在文档中的出现次数。

4.5 使用 Python 进行文本分类

要从文本中获取特征,需要先拆分文本。
以在线社区的留言板为例。对言论建立两个类别:侮辱类和非侮辱类,使用1和0分别表示。
接下来首先给出将文本转换为数字向量的过程,然后介绍如何基于这些向量来计算条件概率,并在此基础上构建分类器,最后还要介绍一些利用Python实现朴素贝叶斯过程中需要考虑的问题。

4.5.1 准备数据:从文本中构建词向量

我们将把文本看成单词向量或者词条向量,也就是说将句子转换为向量。考虑出现在所有文档中的所有单词,再决定将哪些词纳入词汇表或者说所要的词汇集合,然后必须要将每一篇文档转换为词汇表上的向量。

程序清单4-1 词表到向量的转换函数

将一组单词转换为一组数字

from numpy import *

def loadDataSet():
    '''
    postingList: 进行词条切分后的文档集合
    classVec:类别标签
    使用伯努利模型的贝叶斯分类器只考虑单词出现与否(01'''
    postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
                 ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                 ['my'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值