机器学习实战(4)朴素贝叶斯学习笔记_20170707
来源:互联网 发布:淘宝哪个店卖高仿aj好 编辑:程序博客网 时间:2024/06/09 14:16
机器学习之朴素贝叶斯实战:
朴素贝叶斯————基于贝叶斯定理与特征条件独立假设的分类方法
对于给定数据集,首先计算基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出
后验概率最大的输出y。
用p1(x,y)表示数据(x,y)属于类别1的概率
用p2(x,y)表示数据(x,y)属于类别2的概率
如果p1>p2,那么类别为1;反之,类别为2
朴素贝叶斯————基于贝叶斯定理与特征条件独立假设的分类方法
对于给定数据集,首先计算基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出
后验概率最大的输出y。
用p1(x,y)表示数据(x,y)属于类别1的概率
用p2(x,y)表示数据(x,y)属于类别2的概率
如果p1>p2,那么类别为1;反之,类别为2
推广: argmax p(ci | x,y),使后验概率最大的ci,则(x,y)就属于ci类
其中源码第49~55行理解:
def classifyNB(vec2Classify, p0Vec, p1Vec, pClass1): p1 = sum(vec2Classify * p1Vec) + log(pClass1) p0 = sum(vec2Classify * p0Vec) + log(1.0 - pClass1) if p1 > p0: return 1 else: return 0这是贝叶斯分类函数的代码
四个输入:要分类的向量vec2Classify 以及贝叶斯训练函数计算得到的三个概率值;
其中vec2Classify得到方式
testEntry = ['love', 'my', 'dalmation'] # 测试样本 thisDoc = array(setOfWords2Vec(myVocabList, testEntry)) # setOfWordsVec函数用来检查测试样本是否在训练的词组中 print testEntry,'classified as: ',classifyNB(thisDoc,p0V,p1V,pAb) # thisDoc = vec2Classify 这时是一个{0,1}集合的数组接下来解释 p1和p0的计算
p1 = sum(vec2Classify * p1Vec) + log(pClass1) p0 = sum(vec2Classify * p0Vec) + log(1.0 - pClass1)已知:p( ci | w ) = p( w | ci ) * p( ci ) / p( w )
因为p( w )是定量,所以要求使之值最大的ci,即求p( w | ci ) * p ( ci )的最大值
分类函数中 ci = {0,1} 由于朴素贝叶斯假设所有特征都相互独立,则有
p( w | ci) = p( w0, w1, ... , wn | ci) = p( w0 | ci ) * p( w1 | ci ) * .... * p( wn | ci )
取对数(不影响函数单调性):
ln p ( w | ci) = sum ( ln p( wn | ci )) ( n = 1, 2, .... )
所有原式取对数,ln( p( w | ci) * p( ci ) ) = sum ( ln p( wn | ci) ) + ln p( ci )
p(1) = pClass1 所以 p(0) = 1 - pClass1
阅读全文
0 0
- 机器学习实战(4)朴素贝叶斯学习笔记_20170707
- 机器学习实战笔记4(朴素贝叶斯)
- 机器学习实战笔记4(朴素贝叶斯)
- 《机器学习实战》-朴素贝叶斯笔记
- 机器学习实战-朴素贝叶斯笔记
- 机器学习实战笔记-朴素贝叶斯
- 机器学习实战4--朴素贝叶斯
- 机器学习实战-4朴素贝叶斯-python3
- 机器学习实战 朴素贝叶斯
- 机器学习实战-朴素贝叶斯
- 《机器学习实战》--朴素贝叶斯
- 机器学习实战--朴素贝叶斯
- 机器学习实战-朴素贝叶斯
- 机器学习实战--朴素贝叶斯
- 机器学习实战 朴素贝叶斯
- 机器学习实战-朴素贝叶斯
- 《机器学习实战》朴素贝叶斯
- 机器学习实战学习笔记8——朴素贝叶斯
- 常用网络调试工具
- 【NOIP2017提高A组模拟7.7】图
- windows--bat--删除当前脚本del %0
- JavaScript小细节
- Makefile文件怎么写
- 机器学习实战(4)朴素贝叶斯学习笔记_20170707
- ios美颜 调研 GPUImage GPUImageBeautifyFilter BeautifyFaceDemo
- Linux 设备驱动之 UIO 用户态驱动优缺点分析
- javascript插件的几种写法
- ViewPager+Fragment 多层嵌套问题,第二次进入显示空白
- JAVA中service实现类中的@Service(demoService)是什么意思?
- Hive中java对数据库、表的操作
- 人脸检测——生成矫正人脸——cascade cnn的思想, 但是mtcnn的效果貌似更赞
- docker 远程连接