文章目录

  • 什么是贝叶斯
  • 朴素贝叶斯
    • 原理
    • 朴素贝叶斯优点
    • 朴素贝叶斯缺点
  • 贝叶斯模型
    • 高斯分布朴素贝叶斯
    • 多项式分布朴素贝叶斯
    • 伯努利分布朴素贝叶斯
    • 总结
  • 贝叶斯实战
  • 生成式模型和判别式模型的区别

什么是贝叶斯

  • 例如:一座别墅在过去的 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
  • 另一个例子,现分别有 A、B 两个容器,在容器 A 里分别有 7 个红球和 3 个白球,在容器 B 里有 1 个红球和 9 个白球,现已知从这两个容器里任意抽出了一个球,且是红球,问这个红球是来自容器 A 的概率是多少?
假设已经抽出红球为事件 B,选中容器 A 为事件 A,
则有:P(B) = 8/20,P(A) = 1/2,P(B|A) = 7/10,
按照公式,则有:P(A|B) = (7/10)*(1/2) / (8/20) = 0.875

朴素贝叶斯

  • 朴素贝叶斯(Naive Bayesian)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。
  • 朴素贝叶斯原理简单,也很容易实现,多用于文本分类,比如垃圾邮件过滤。
  • 朴素贝叶斯可以看做是贝叶斯网络的特殊情况:即该网络中无边,各个节点都是独立的。
原理

  • 主要核心思想:
    朴素贝叶斯的思想基础是这样的:对于给出的待分类样本特征x,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。
    朴素的概念:独立性假设,假设各个特征之间是独立不相关的。
朴素贝叶斯优点

算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化即可!)
分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

朴素贝叶斯缺点

理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

朴素贝叶斯模型(Naive Bayesian Model)的朴素(Naive)的含义是"很简单很天真"地假设样本特征彼此独立. 这个假设现实中基本上不存在, 但特征相关性很小的实际情况还是很多的, 所以这个模型仍然能够工作得很好。

贝叶斯模型

高斯分布朴素贝叶斯
  • 特征值为连续型变量

  • 高斯模型假设某一特征属于某一类别的观测值符合高斯分布,比如身高小于160,160~170和170以上

高斯分布就是正态分布
【用途】用于一般分类问题
使用自带的鸢尾花数据from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.targetfrom sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()gnb.fit(X,y).score(X,y)
多项式分布朴素贝叶斯
  • 文本分类,特征是单词,值是单词的出现次数
多项式分布:在数学中,多项式(polynomial)是指由变量、系数以及它们之间的加、减、乘、幂运算
(非负整数次方)得到的表达式,形如a0+a1x+a2x^2+...+anx^n这种样子,若an≠0,就是n次多项式。【用途】适用于文本数据(特征表示的是次数,例如某个词语的出现次数
from sklearn.naive_bayes import MultinomialNBmnb = MultinomialNB()
mnb.fit(X,y).score(X,y)
伯努利分布朴素贝叶斯
  • 特征值取bool类型,文本分类中表示一个值(单词)有没有出现过
伯努利分布:
【用途】适用于伯努利分布,也适用于文本数据(此时特征表示的是是否出现,例如某个词语的出现为1,不出现为0)
绝大多数情况下表现不如多项式分布,但有的时候伯努利分布表现得要比多项式分布要好,尤其是对于小数量级的文本数据from sklearn.naive_bayes import BernoulliNBbnb = BernoulliNB()
bnb.fit(X,y).score(X,y)得分要比多项式分布朴素贝叶斯差
总结
  • 朴素贝叶斯是一类比较简单的算法,scikit-learn中朴素贝叶斯类库的使用也比较简单。相对于决策树,KNN之类的算法,朴素贝叶斯需要关注的参数是比较少的,这样也比较容易掌握。

  • 在scikit-learn中,一共有3个朴素贝叶斯的分类算法类。分别是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先验为高斯分布的朴素贝叶斯MultinomialNB就是先验为多项式分布的朴素贝叶斯,而BernoulliNB就是先验为伯努利分布的朴素贝叶斯

  • 这三个类适用的分类场景各不相同,一般来说,如果样本特征的分布大部分是连续值,使用GaussianNB会比较好。如果如果样本特征的分大部分是多元离散值,使用MultinomialNB比较合适。而如果样本特征是二元离散值或者很稀疏的多元离散值,应该使用BernoulliNB。

贝叶斯实战

生成式模型和判别式模型的区别

  • 判别模型(discriminative model)通过求解条件概率分布P(y|x)或者直接计算y的值来预测y。线性回归(Linear Regression),逻辑回归(Logistic Regression),支持向量机(SVM), 传统神经网络(Traditional Neural Networks),线性判别分析(Linear Discriminative Analysis),条件随机场(Conditional Random Field)
  • 生成模型(generative model)通过对观测值和标注数据计算联合概率分布P(x,y)来达到判定估算y的目的。朴素贝叶斯(Naive Bayes), 隐马尔科夫模型(HMM),贝叶斯网络(Bayesian Networks)和隐含狄利克雷分布(Latent Dirichlet Allocation)、混合高斯模型

你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步

贝叶斯与朴素贝叶斯入门及实战相关推荐

  1. 朴素贝叶斯 半朴素贝叶斯_使用朴素贝叶斯和N-Gram的Twitter情绪分析

    朴素贝叶斯 半朴素贝叶斯 In this article, we'll show you how to classify a tweet into either positive or negativ ...

  2. 朴素贝叶斯 半朴素贝叶斯_SQL Server中的朴素贝叶斯预测

    朴素贝叶斯 半朴素贝叶斯 In this article, we will walk through Microsoft Naive Bayes algorithm in SQL Server. 在本 ...

  3. 贝叶斯算法c语言,01 贝叶斯算法 - 朴素贝叶斯

    引子: 1.孩子的性别问题 已知一对夫妻生了2个孩子,其中一个是女孩,那么另一个也是女孩的概率的多少? 普遍大家会觉得生男生女都一样,所以另一个也是女孩的概率是1/2.而另一部分稍微聪明一点的人认为: ...

  4. python推荐系统算法朴素贝叶斯_朴素贝叶斯算法在人才盘点中的应用(之一)

    一.识别人才首先是处理不确定性问题 做招聘面试的HR应该会认同这样的经历. 打开应聘者简历,赫然写着TOP10名学毕业.抬头一瞧,小伙长得一表人才,精神抖擞,朝气蓬勃.HR兴趣大增. 再一看,研究方向 ...

  5. 图像算法三 —— 贝叶斯和朴素贝叶斯

    文章目录 3. 贝叶斯和朴素贝叶斯 贝叶斯和朴素贝叶斯的区别 贝叶斯网络的概念 朴素贝叶斯的概念 朴素贝叶斯分类的数学原理 朴素贝叶斯的优缺点 3. 贝叶斯和朴素贝叶斯 贝叶斯和朴素贝叶斯的区别 朴素 ...

  6. 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析

    情感分析朴素贝叶斯 Millions of tweets are posted every second. It helps us know how the public is responding ...

  7. 贝叶斯(朴素贝叶斯,正太贝叶斯)及OpenCV源码分析

    一.原理 OpenCV实现的贝叶斯分类器不是我们所熟悉的朴素贝叶斯分类器(Naïve Bayes Classifier),而是正态贝叶斯分类器(Normal Bayes Classifier),两者虽 ...

  8. 用matlab朴素贝叶斯,Matlab朴素贝叶斯

    你好我正在使用KDD 1999数据集,我正在寻找在matlab中应用朴素贝叶斯.我想知道的是,kdd数据集是一个494021x42数据数组,如果您注意到下面的朴素贝叶斯代码中的"traini ...

  9. 朴素贝叶斯基于朴素贝叶斯的文本分类算法

    朴素贝叶斯 以及 基于朴素贝叶斯的文本分类算法 参考文章: https://www.cnblogs.com/jorbin/articles/1915888.html

最新文章

  1. 在厕所遇到领导到底该说些什么?
  2. 鲁棒图的三元素:抽象对象,实体对象和控制对象
  3. 正则表达式原理及引擎实现
  4. open session and Hibernate事务处理机制
  5. 错误ORA-04091: table is mutating, trigger/function may not see it的原因以及解决办法
  6. 如何使用Angular Generator创建新的Component
  7. vld检测不输出_输出轴热处理形变超差,找找原因
  8. java setpaintmode 用法_详解Paint的各种set方法
  9. python画正方形的代码drawingpanel_wxpython编程之 画板(一个不错的研究的完整示例)...
  10. JSP Servlet | 错误统一处理
  11. IDEA 插件开发 发送弹框提示信息
  12. hotmail邮箱收件服务器主机名,hotmail邮箱foxmail(pop3服务器)设置方法
  13. clear在c语言中用法,clear的用法总结大全
  14. c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序
  15. BLAM源码解析(三)—— 定时器总揽大局
  16. gradle-5.4.1-all.zip下载与替换
  17. 2.1 法学的历史(一):西方法学的历史
  18. 激活函数,优化技术和损失函数
  19. 大年初一头像如何制作?自己制作头像的软件
  20. ESP-01 8266转接板改造

热门文章

  1. 齐次式的相关知识【初级中阶辅导】
  2. #Objective - C - UI-design - 第六天 -UIKit框架-UIScrollView-分屏相册练习(相册缩略图变为浏览到第几张)
  3. css 排版_Web排版的未来:CSS字体4级
  4. 32位低功耗MCU的设计
  5. oracle漏洞pdf,Oracle DBA手记 4 数据安全警示录 pdf完整扫描版版
  6. 【新年福利】2019年值得一用的8款协作工具
  7. java实现“进制转换-在线工具”
  8. 如何绘制电气绝缘图(GB9706.1-2007和GB9706.1-2020差异)
  9. mac加密_如何加密Mac的Time Machine备份
  10. 好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题