Python实现朴素贝叶斯分类器
来源:互联网 发布:网络和编程的技能大赛 编辑:程序博客网 时间:2024/04/29 20:45
# -*-coding:utf-8-*-''' 朴素贝叶斯算法'''from __future__ import division global classNameclassName = "class"def calc_class(train, classValue): # 计算分类的概率 _num_cls = 0 _num_trains = len(train) for t in train: if t[className] == classValue: _num_cls += 1 return _num_cls / _num_trains def calc_attr(train, classValue, attrName, attrValue): # 计算属性的概率 _num_cls = 0 _num_attr = 0 for a in train: if a[className] == classValue: _num_cls += 1 if a[attrName] == attrValue: _num_attr += 1 if _num_attr == 0: _num_attr = 1 return _num_attr / _num_clsdef bayes(train, test, classY, classN): _prob_Y = calc_class(train, classY) _prob_N = calc_class(train, classN) for key,value in test.items(): _prob_Y *= calc_attr(train, classY, key, value) _prob_N *= calc_attr(train, classN, key, value) return {classY:_prob_Y,classN:_prob_N} if __name__=='__main__': # 训练数据 train = [ {"outlook":"sunny", "temp":"hot", "humidity":"high", "wind":"weak", "class":"no" }, {"outlook":"sunny", "temp":"hot", "humidity":"high", "wind":"strong", "class":"no" }, {"outlook":"overcast", "temp":"hot", "humidity":"high", "wind":"weak", "class":"yes" }, {"outlook":"rain", "temp":"mild", "humidity":"high", "wind":"weak", "class":"yes" }, {"outlook":"rain", "temp":"cool", "humidity":"normal", "wind":"weak", "class":"yes" }, {"outlook":"rain", "temp":"cool", "humidity":"normal", "wind":"strong", "class":"no" }, {"outlook":"overcast", "temp":"cool", "humidity":"normal", "wind":"strong", "class":"yes" }, {"outlook":"sunny", "temp":"mild", "humidity":"high", "wind":"weak", "class":"no" }, {"outlook":"sunny", "temp":"cool", "humidity":"normal", "wind":"weak", "class":"yes" }, {"outlook":"rain", "temp":"mild", "humidity":"normal", "wind":"weak", "class":"yes" }, {"outlook":"sunny", "temp":"mild", "humidity":"normal", "wind":"strong", "class":"yes" }, {"outlook":"overcast", "temp":"mild", "humidity":"high", "wind":"strong", "class":"yes" }, {"outlook":"overcast", "temp":"hot", "humidity":"normal", "wind":"weak", "class":"yes" }, {"outlook":"rain", "temp":"mild", "humidity":"high", "wind":"strong", "class":"no" }, ] # 测试数据 test = {"outlook":"overcast","temp":"cool","humidity":"high","wind":"strong"} print bayes(train, test, "yes", "no")
0 0
- Python实现朴素贝叶斯分类器
- python实现一个朴素贝叶斯分类器
- 朴素贝叶斯分类器的python实现
- 朴素贝叶斯分类器及Python实现
- 朴素贝叶斯分类器(Python实现)
- 朴素贝叶斯分类算法的Python实现
- 朴素贝叶斯分类文本 python实现
- 朴素贝叶斯分类的Python实现
- 朴素贝叶斯分类算法python实现
- 朴素贝叶斯分类原理及Python实现简单文本分类
- 用Python学习朴素贝叶斯分类器
- 《机器学习实战》基于朴素贝叶斯分类算法构建文本分类器的Python实现
- 朴素贝叶斯分类器 C++ STL 实现
- 朴素贝叶斯分类器:R语言实现
- 朴素贝叶斯分类器:MATLAB工具箱实现
- Java实现朴素贝叶斯分类器
- 朴素贝叶斯分类Python演示
- 【机器学习算法-python实现】扫黄神器-朴素贝叶斯分类器的实现
- 1016. Phone Bills (25) -vector排序(sort函数)
- Android UI 使用更快更高效
- Django学习____渲染json到模板
- Codeforces489E Hiking
- 常见shell命令分享
- Python实现朴素贝叶斯分类器
- ply【slimit采用的ply】修正方案
- JSP 标准标签库(JSTL)
- kettle生成ktr文件_数据库密码的加密与解密
- eclipse package,source folder,folder区别及相互转换
- Android横竖屏切换
- SAT写作:教你如何检查和修改
- C语言18个经典问题答录
- 内核双向循环链表