【分类】朴素贝叶斯算法学习
2016-07-27 18:28
281 查看
有一段时间没有推演算法了,用分类算法里据说挺简单的朴素贝叶斯来练习一下。
朴素贝叶斯公式如下:
P(C/W) = P(C) * P(W/C) / P(W)
C:类别
W:文章
公式左侧:
P(C/W) : 某文本属于某类别的概率
公式右侧:
P(C):先验概率,某个类别的文本数 / 总文本数。
我理解这个值是用来总体调节概率的。比如说某个类别在训练材料中出现的频率特别低,考虑训练材料取材的真实性,我们认为这个类别在实际的环境中存在的概率也会很低。因此乘以先验概率是用来调节总体概率的。
P(W/C): P(W/C) = P(w1, w2, w3, ... wn / C) = [b]∏ P(wi / C)[/b]
P(w1, w2, w3, ... wn / C) 是指一篇文章中的每一个词对于某个类别的概率。即这个类别的所有文章中,含有这个词的文章数/总文章数得出的概率。从P(w1, w2, w3, ... wn / C) 到 ∏ P(wi / C) 之间这步推演,是这个算法之所以称为”朴素贝叶斯“的原因。”朴素“指的是忽略组成一篇文章的各个词之间的影响因素,我们认为出现任何一个词的概率都是独立的,不互相影响的。因此P(w1,
w2, w3, ... wn / C)等于每个词对于这个类别的概率之积,即所有词对于类别的概率组成了文章对于类别的概率。
P(W):∑(P(W/Ci) * P(Ci))
这篇文章出现在各个类别的概率之和。
根据这个公式我猜想,在训练的时候我们应当得到这些值:
1. 文章总数
2. 各类别的文章数目
3. 对于每个词,保存包含这个词的文章在每个类别的篇数。并对此类记录建立索引
这样在输入一个新的文章时,可以快速套用贝叶斯公式得到概率。
朴素贝叶斯公式如下:
P(C/W) = P(C) * P(W/C) / P(W)
C:类别
W:文章
公式左侧:
P(C/W) : 某文本属于某类别的概率
公式右侧:
P(C):先验概率,某个类别的文本数 / 总文本数。
我理解这个值是用来总体调节概率的。比如说某个类别在训练材料中出现的频率特别低,考虑训练材料取材的真实性,我们认为这个类别在实际的环境中存在的概率也会很低。因此乘以先验概率是用来调节总体概率的。
P(W/C): P(W/C) = P(w1, w2, w3, ... wn / C) = [b]∏ P(wi / C)[/b]
P(w1, w2, w3, ... wn / C) 是指一篇文章中的每一个词对于某个类别的概率。即这个类别的所有文章中,含有这个词的文章数/总文章数得出的概率。从P(w1, w2, w3, ... wn / C) 到 ∏ P(wi / C) 之间这步推演,是这个算法之所以称为”朴素贝叶斯“的原因。”朴素“指的是忽略组成一篇文章的各个词之间的影响因素,我们认为出现任何一个词的概率都是独立的,不互相影响的。因此P(w1,
w2, w3, ... wn / C)等于每个词对于这个类别的概率之积,即所有词对于类别的概率组成了文章对于类别的概率。
P(W):∑(P(W/Ci) * P(Ci))
这篇文章出现在各个类别的概率之和。
根据这个公式我猜想,在训练的时候我们应当得到这些值:
1. 文章总数
2. 各类别的文章数目
3. 对于每个词,保存包含这个词的文章在每个类别的篇数。并对此类记录建立索引
这样在输入一个新的文章时,可以快速套用贝叶斯公式得到概率。
相关文章推荐
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法