贝叶斯模型
1、什么是贝叶斯:
贝叶斯是用来描述两个条件概率直接的关系
贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。
机器学习中:
贝叶斯方法把计算“具有某特征的条件下属于某类”的概率转换成需要计算“属于某类的条件下具有某特征”的概率,属于监督学习。
举例说明:
一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,在盗贼入侵时狗叫的概率被估计为 0.9,问题是:在狗叫的时候发生入侵的概率是多少?
我们假设 A 事件为狗在晚上叫,B 为盗贼入侵,则以天为单位统计,P(A) = 3/7,P(B) = 2/(20365) = 2/7300,P(A|B) = 0.9,按照公式很容易得出结果:P(B|A) = 0.9(2/7300) / (3/7) = 0.00058
2、朴素贝叶斯及原理
朴素的概念:独立性假设,假设各个特征之间是独立不相关的
朴素贝叶斯的思想基础是这样的:对于给出的待分类样本特征x,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。
3、高斯分布朴素贝叶斯
高斯分布就是正态分布
用途:
用于一般分类问题
特征值为连续型变量:
期望连续型的数据符合正态分布的
高斯模型假设某一特征属于某一类别的观测值符合高斯分布,比如身高小于160,160~170和170以上
4、多项式分布朴素贝叶斯
用途:适用于文本数据(特征表示的是次数,例如某个词语的出现次数
特点:文本分类,特征是单词,值是单词的出现次数
5、伯努利分布朴素贝叶斯
用途:适用于伯努利分布,也适用于文本数据(此时特征表示的是是否出现,例如某个词语的出现为1,不出现为0)
特点:特征值取bool类型,文本分类中表示一个值(单词)有没有出现过
伯努利分布:伯努利分布指的是对于随机变量X有, 参数为p(0<p<1),如果它分别以概率p和1-p取1和0为值。
伯努利分布是一个离散型机率分布,是N=1时二项分布的特殊情况
伯努利分布与多项式分布:伯努利分布绝大多数情况下表现不如多项式分布,但有的时候伯努利分布表现得要比多项式分布要好,尤其是对于小数量级的文本数据
6、朴素贝叶斯模型的基本使用
朴素贝叶斯是分类模型
# 模型的导入,分别导入的是多项式分布、高斯分布、伯努利分布
from sklearn.naive_bayes import MultinomialNB, GaussianNB, BernoulliNB
# 实例化模型
mnb = MultinomialNB()
gnb = GaussianNB()
bnb = BernoulliNB()
# 训练数据以及预测数据
mnb.fit(train,target)
mnb.predict(X_test)
# 泛化误差与经验误差
mnb.score(X_test,y_test