标签:
1.1 公式
1.2 具有最大后验概率的类别
§朴素贝叶斯分类的目标是寻找“最佳”的类别
§最佳类别是指具有最大后验概率(maximum a posteriori -MAP)的类别 cmap:
1.3 对数计算
§很多小概率的乘积会导致浮点数下溢出
§由于 log(xy) = log(x) + log(y), 可以通过取对数将原来的乘积计算变成求和计算
§由于log是单调函数,因此得分最高的类别不会发生改变
§因此,实际中常常使用的是:
1.4 零概率问题
如果某词项不再某类别中出现,则包含词项的文档属于该类别的概率P=0.
即一旦发生令概率,则无法判断类别。
解决方法:加一平滑。
§平滑前:
§平滑后: 对每个量都加上1
§B 是不同的词语个数 (这种情况下词汇表大小 |V | = B)
1.5 两种常见模型
这里需要提到贝叶斯模型的两个独立性假设:位置独立性和条件独立性。
多项式模型和贝努力模型。前者考虑出现次数,后者只考虑出现与不出现,即0 与 1问题。
1.6 算法过程
训练过程:
测试/应用/分类:
1.7 实例
因此, 分类器将测试文档分到c = China类,这是因为d5中起正向作用的CHINESE出现3次的权重高于起反向作用的 JAPAN和TOKYO的权重之和。
分两个阶段进行,首先是训练获取分类器,然后是预测。
文件的输入格式:每一行代表一个文本,格式为:类别名+文件名+文本内容
2.1 训练阶段
训练阶段要计算两种概率:[1] 每种类别的先验概率 [2] 每个term(单词)在每个类别中得条件概率。
这里采用多项式模型计算条件概率。
这里有两个job完成,伪代码如下:
这两段代码来自dongxicheng的博客,原文地址http://dongxicheng.org/data-mining/naive-bayes-in-hadoop/
2.2 测试阶段
将训练阶段得到的数据加载到内存中,计算文档在每个类别的概率,找出概率最大的类别。
测试数据:搜狗实验室 http://www.sogou.com/labs/resources.html?v=1
这里要先要将所有文档转成需要的文本格式,即一行代表一篇新闻。
训练集:75000篇新闻;测试集:5000篇新闻
最终测得分类精度为82%。
参考资料:dongxicheng http://dongxicheng.org/data-mining/naive-bayes-in-hadoop/
作者:西芒xiaoP
出处:http://www.cnblogs.com/panweishadow/
若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。
标签:
原文地址:http://www.cnblogs.com/panweishadow/p/4320722.html