基础的机器学习实例,朴素贝叶斯分类
来源:互联网 发布:apache cloudstack 编辑:程序博客网 时间:2024/05/24 03:10
这是我能网上所能找到的最易于入门的实例了(代码拷贝于网络)
例子是关于天气案例(天气,温感,湿度,风量,是否正常气候)
通过读取测试集的数据,算出P(C1|X)*P(C1)/P(X),P(C2|X)*P(C2)/P(X),考虑到P(X)相同,省去
具体的是P(C1|X)=P(X1|C1)*P(X2|C1)*P(X3|C1)......P(C1)
同理算出P(C2|X),比较两个值,大的值就是最有可能的结果
#Calculate the Prob. of class:cls 求P("yes"),p("no")def P(data,cls_val,cls_name="class"): cnt = 0.0 for e in data: if e[cls_name] == cls_val: cnt += 1 return cnt/len(data) #Calculate the Prob(attr|cls) 求P(Xn|Cn)def PT(data,cls_val,attr_name,attr_val,cls_name="class"): cnt1 = 0.0 cnt2 = 0.0 for e in data: if e[cls_name] == cls_val: cnt1 += 1 if e[attr_name] == attr_val: cnt2 += 1 return cnt2/cnt1 #Calculate the NB主函数def NB(data,test,cls_y,cls_n): PY = P(data,cls_y) PN = P(data,cls_n) for key,val in test.items():#我记得是key是索引,val是值 print (key,val) PY *= PT(data,cls_y,key,val) PN *= PT(data,cls_n,key,val) return {cls_y:PY,cls_n:PN}#以字典返回值 if __name__ == "__main__": #data data = [ {"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" }, ] #calculate print (NB(data,{"outlook":"sunny","temp":"cool","humidity":"high","wind":"strong"},"yes","no"))
阅读全文
0 0
- 基础的机器学习实例,朴素贝叶斯分类
- 机器学习--朴素贝叶斯分类
- 【机器学习】朴素贝叶斯分类
- 机器学习--朴素贝叶斯分类
- 机器学习-朴素贝叶斯分类
- 机器学习-朴素贝叶斯分类
- 0基础讲解机器学习算法-朴素贝叶斯分类器
- 机器学习(二)-朴素的贝叶斯分类
- 【机器学习实验】使用朴素贝叶斯进行文本的分类
- 机器学习实战--基于概率论的分类方法:朴素贝叶斯
- 【机器学习实验】使用朴素贝叶斯进行文本的分类
- 机器学习之基于概率论的分类方法 : 朴素贝叶斯
- 【机器学习实验】使用朴素贝叶斯进行文本的分类
- 【机器学习】贝叶斯分类器:朴素贝叶斯
- 机器学习-朴素贝叶斯分类器
- python机器学习之朴素贝叶斯分类
- 机器学习(十二)朴素贝叶斯分类
- 机器学习系列----朴素贝叶斯分类器
- mybatis入门HelloWorld程序
- 代码类型1 get set
- 【数据结构】单链表
- @TargetApi 问题
- Ubuntu下的bochsdbg安装教程
- 基础的机器学习实例,朴素贝叶斯分类
- IPC-消息队列
- 一文读懂光纤传感器
- 3、jQuery事件与函数(headfirst笔记)
- 51NOD1280 前缀后缀集合
- my bites 入门
- 橱窗的插花问题
- Spring Bean
- bzoj 1485 [HNOI2009]有趣的数列