朴素贝叶斯分类
来源:互联网 发布:淘宝店铺考试 编辑:程序博客网 时间:2024/06/05 02:18
贝叶斯公式推导
基本的贝叶斯公式由来
损失函数
以上目标函数最大根据公式即求P(ck)和P(x|c)最大,根据最大似然估计用采样的值作为其概率分布参数
对于多项式贝叶斯 即求fi*P(xi|ck) 和 该类别的概率的值之和,fi为要分类的文档中单词的出现的次数(下面多项式贝叶斯有推导)
对于伯努利贝叶斯 fi变为1即可
(spark mllib 的多项式贝叶斯分类源码中有体现http://spark.apache.org/docs/latest/api/python/_modules/pyspark/mllib/classification.html#NaiveBayesModel.predict
中的这段代码returnself.labels[numpy.argmax(self.pi+x.dot(self.theta.transpose()))])
贝叶斯公式的应用
以下都是基于多项式贝叶斯分类器(伯努利方式每个文档中出现多次按照一次来计算)
分本分类中的应用
样本:10000封邮件,每个邮件已经标记为垃圾邮件或者非垃圾邮件
分类目标:再来了一些其他的邮件,确定是垃圾邮件还是非垃圾邮件
实现分析:
目标类别:垃圾邮件c1,非垃圾邮件c2
建立词汇表:将所有邮件中出现的单词统计为一个词典作为词汇表,记下单词的总数目N
目标公式分析:
P(c|x) = P(x|c)*P(c)/P(x)
P(c1|x) = P(x|c1)*P(c1)/P(x)
P(c2|x) = P(x|c2)*P(c2)/P(x)
c是类别x是文档中的单词组成的向量,分别计算各个类别的条件概率选概率大的作为最终的分类类别。
计算细节:
P(x)=P(x1,x2,..xN)=P(x1)*P(x2)*...P(xN)
P(x|c) = P(x1,x2,..xN|c)=P(x1|c)*P(x2|c)..P(xN|c)
P(xi) : 在所有样本中,单词xi出现的概率
P(ci) : 在所有样本中,邮件类别ci出现的概率
P(xi|cj): 在cj类别的前提下单词xi出现的概率
代入贝叶斯公式即可:
拉普拉斯平滑
问题:
1.某个单词不出现则P(xi|cj)为0 则P(x|c)的式子为0
平滑方法:
p(x1|c1) = (n1+1)/n+N
N是特征x的个数(也有加的是类别个数)
另外还可能出现下溢出问题,比如多个小的数相乘。解决方法可以取自然对数,即a*b -- ln(a*b) = ln(a) + ln(b)。
TFIDF
“的”、‘所以’、‘于是’等高频词在所有文档中都大量出现
tf-idf的步骤:
1.计算词频tf = 某个词在文章中出现的总次数/文章的总词数
2.计算逆文档频率idf = log(词料库的文档总数/包含该词的文档数目+1)
加一是为了避免分母为0
3.计算tfidf值
tf-idf = tf * idf
4.求关键字:
按照tf-idf 值来大小排序,选取值最高的几个作为关键字
5.把计算来的tf-idf值来代替单词在文章中的出现次数
多项式贝叶斯分类
基于加权补集的贝叶斯分类算法
0 0
- 朴素贝叶斯分类
- 朴素贝叶斯分类
- 朴素贝叶斯分类器
- 朴素贝叶斯分类
- 朴素贝叶斯分类器
- 朴素贝叶斯分类
- 朴素贝叶斯分类器
- 朴素贝叶斯分类
- 朴素贝叶斯--情感分类
- 朴素贝叶斯分类器
- 朴素贝叶斯—分类
- 朴素贝叶斯分类器
- 朴素贝叶斯分类
- 朴素贝叶斯分类
- 分类-朴素的贝叶斯
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器
- 写点东西,关于比特币的安全设计:
- 深入Windows窗体原理及控件重绘技巧
- RXJava——Subscribe (订阅)
- 从eclipse到Intellij IDEA
- 正则表达式的认识
- 朴素贝叶斯分类
- 使用jdbc访问数据库出现“Get Value Fail”错误
- 写代码的小女孩
- NSURLSession使用说明及后台工作流程分析
- centos命令
- Hive-0.13.1本地独立模式安装 元数据存储到MariaDB-10.1.0 Hadoop-2.4.0
- 1、JAVA微信开发-微商城_O2O微门店SAAS系统开发
- iOS 7系列译文:忘记NSURLConnection,拥抱NSURLSession吧!
- Hive配置项的含义详解