1 概念介绍
贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则,可以立刻导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可变形为:P(A|B)=P(B|A)*P(A)/P(B)。
算法思想
正向概率
假设袋子里有10个白球,90个黑球,然后从袋子里面拿出一个球,拿出的球是白球的概率是多少
p(白球)=10/100 = 1/10
逆向概率
如果我们事先并不知道袋子里白球、黑球的比例,然后通过多次试验,根据拿出来球的颜色推测袋子里白球、黑球的比例。
举例说明
在一个学校里面,男生占60%,女生占40%;男生:100%穿长裤,女生:50%穿长裤,50%穿裙子;此时迎面走来一个穿长裤的学生,刚好你是高度近视,那么要判断一下这个穿长裤的学生是女生的概率该怎么计算?
实质
穿长裤的是女生的概率=女生中穿长裤的人数/穿长裤的总人数
假设∶
UxP(男生)xP(穿长裤|男生)= 1000x60%x100%=600(人)
女生中穿长裤的人数∶
UxP(女生)xP(穿长裤|女生)= 1000x40%x50%=200(人)
穿长裤且是女生的概率︰
200/ ( 200+600 ) = 25%
参数说明
- class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
- MultinomialNB:多项式分布的朴素贝叶斯
- .alpha: 控制模型拟合时的平滑度
- fit_prior: 是否去学习类的先验概率
- class_prior: 各个类别的先验概率,如果没有指定,则模型会根据数据自动学习, 每个类别的先验概率相同,等于类标记总个数N分之一
鸢尾花数据预测
#读取鸢尾花的数据,第一行数据不是列表名字...
import pandas as pd
db = pd