《机器学习实战》笔记之四——基于概率论的分类方法:朴素贝叶斯

本文介绍了如何使用朴素贝叶斯进行文档分类,特别是在过滤垃圾邮件和从个人广告中获取区域倾向的应用。通过构建词向量、计算条件概率,展示朴素贝叶斯算法在处理大量特征时的有效性。实验证明,即使在停用词影响下,朴素贝叶斯仍能实现低错误率的分类。
摘要由CSDN通过智能技术生成

第四章 基于概率论的分类方法:朴素贝叶斯


基础:统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,得到特征取该值的概率。

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

假设有两类数据组成的数据集如下:

假设:

p1(x,y)表示数据点(x,y)属于类别1的概率。

p2(x,y)表示数据点(x,y)属于类别2的概率。

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

对于一个新数据点(x,y),可以用如下规则判断它的类别:

  • 如果p1(x,y)>p2(x,y),那么选择类别1
  • 如果p1(x,y)<p2(x,y),那么选择类别2。

4.2 条件概率


4.3 使用条件概率来分类

p(c1|x,y): 给定某个由x、y表示的数据点,那么该数据点来自类别c1的概率是多少。

应用贝叶斯准则:

  • 如果p(c1|x,y)>p(c2|x,y),那么选择类别c1。
  • 如果p(c1|x,y)<p(c2|x,y),那么选择类别c2。
使用贝叶斯准则,可以通过已知的三个概率值来计算未知的概率值。

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

朴素贝叶斯是用于文档分类的常用算法。

特征: 观察文档中出现的词,并把每个词的出现或者不出现作为一个特征。这样便有跟文档中出现过词汇的个数一样多的特征。

有大量特征时,使用直方图效果更好。

朴素贝叶斯假设:

  1. 特征之间相互(统计意义上)独立,如一个单词出现的可能性与其他单词相邻没有关系,虽并不正确,但朴素贝叶斯实际效果还是可以。
  2. 每个特征同等重要。

4.5 使用python进行文本分类

从文本中提取特征,首先拆分文本,将文本转化为词向量,某个词存在表示为1,不存在表示为0,这样,原来一大串字符串便转为简单的0,1序列的向量。当然也可以转为更为复杂的向量,根据不同词出现的频率等等。

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

考虑出现在所有文档中的所有单词,将每一篇文档转化为词汇表上的向量。

def loadDataSet():
    '''
    创建实验样本,真实样本可能差很多,需要对真实样本做一些处理,如
    去停用词(stopwords),词干化(stemming)等等,处理完后得到更"clear"的数据集,
    方便后续处理
    '''
    postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
                 ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                 ['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
                 ['stop', 'posting', 'stupid', 'worthless', 'garbage'],
                 ['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
                 ['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']]
    classVec = [0,1,0,1,0,1]                #1代表存在侮辱性的文字,0代表不存在
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值