称为朴素的原因:是因为整个形式化过程只做最原始、最简单的假设。 任务:利用python进行文本处理将文档切分成词向量,然后利用词向量对文档进行分类。 朴素贝叶斯使用数据类型:标称型数据 优点是:在数据较少的情况下仍然能使用,可以处理多类别问题。 缺点:对于数据输入方式有一定要求。 快速了解贝叶斯决策理论: 用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 因此就是我们只会选择高概率对应的类别即高概率决策。这就是贝叶斯思想的核心。(由此可见之后要使用到概率论的知识。) 贝叶斯决策时最佳的数据点分类策略。 主要用到了条件概率: p(A|B)=P(AB)/P(B) 贝叶斯准则:计算条件概率的方法:已知p(A|B)求P(B|A),可已使用如下公式计算 P(B|A)=(P(A|B)*P(B))/P(A) 使用条件概率来分类: 上面提到的核心思想并不是贝叶斯决策的全部内容,p1()和p2()也不是真实的只是一个表示:实际为p(c1|x,y)和p(c2|x,y)这些符号所代表的的具体意义是给定某个x、y表示的数据点,那么该点来自c1或者c2类别的概率多少 应用贝叶斯准则得到: 分类过程就是按照谁的概率更大一些就属于它所在分类。 使用朴素贝叶斯进行文档分类: 过程:
- 收集数据:可以使用任何方法,这里使用的是RSS源
- 准备数据:需要数值型或者布尔型数据。
- 分析数据:有大量特征值时,绘制特征作用不大,此时使用直方图比较好
- 训练算法:计算不同的独立特征的条件概率。
- 测试算法:计算错误率
使用算法:一个常见的的朴素贝叶斯应用的文档的分类 特征值之间要相互独立,即一个特征出现的可能性与其他特征值无关。 朴素贝叶斯分类器中的另一种假设是:每个特征值同等重要。 使用python进行文本分类: 首先要进行文本的拆分:特征是来自文本的一个词条,一个词条是字符的任意组合。 接下来以在线社区留言板为例: 目的是屏蔽侮辱性的言论,因此构建一个快速过滤侮辱性言论的过滤器。 将文本内容分为侮辱性和非侮辱性使用1和0分别表示 接下来就是将文本转换为数字向量 准备数据:从文本中构建词向量(也就是将句子转换为向量) 词表到向量的转换函数:
1 | import numpy as np |
使用:
1 | import Bayesian |
结果: End!