0 - 算法

  给定如下数据集

$$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$

假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值。则对于输入$x$,朴素贝叶斯算法的输出为

$$y=arg\max_{c_k}P(Y=c_k)\prod_j P(X^{(j)}=x^{(j)}|Y=c_k),j=1,\cdots,J,k=1,\cdots,K,$$

其中先验概率$P(Y=c_k)$和条件概率$P(X^{(j)}=x^{(j)}|Y=c_k)$的极大似然估计在下一节给出。

1 - 推导

  朴素贝叶斯的基本公式为

$$P(B|A)=\frac{P(A|B)P(B)}{P(A)},$$

  因此,对于输入数据$x$,预测类别$c_k$的概率可以表示为

$$\begin{align}P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)}\end{align}$$

  且有,

$$\begin{align}P(X=x)=P(Y=c_k)\sum_{k}P(X=x|Y=c_k)\end{align}$$

  根据特征之间独立分布,又有

$$\begin{align}P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(J)}=x^{(J)}|Y=c_k)=\prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)\end{align}$$

  将式$(3)$代入式$(2)$可得

$$\begin{align}P(X=x)=\sum_{k}P(Y=c_k)\prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)\end{align}$$

  将式$(3)(4)$代入式$(1)$可得

$$\begin{align}P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)}\end{align}$$

  注意到,对于所有类别$Y=c_k$,其分母均是一样的,因此最终算法可以将分母去掉而不影响预测概率的相对大小。朴素贝叶斯算法可写成如下形式

$$y=arg\max_{c_k}P(Y=c_k|X=x)=arg\max_{c_k}P(Y=c_k)\prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k),$$

由上式可知,朴素贝叶斯算法只需要对$P(Y=c_k)$和$P(X^{(j)}=x^{(j)}|Y=c_k)$进行参数估计(极大似然估计)即可。

  先验概率$P(Y=c_k)$的极大似然估计可以表示为

$$P(Y=c_k)=\frac{\sum_{j=1}^N I(y_i=c_k)}{N},\ k=1,2,\cdots,K,$$

  条件概率$P(X^{(j)}=x^{(j)}|Y=c_k)$的极大似然估计,假设第$j$个特征$x^{(j)}$的取值集合为$\{a_{j1},a_{j2},\cdots,a_{jS_j}\}$,则有

$$P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)},\ j=1,2,\cdots,J;l=1,2,\cdots,S_j;k=1,2,\cdots,K.$$

2 - 参考资料

《统计学习方法》,李航

【分类算法】朴素贝叶斯(Naive Bayes)的更多相关文章

  1. 机器学习算法实践:朴素贝叶斯 (Naive Bayes)(转载)

    前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾 ...

  2. 朴素贝叶斯 Naive Bayes

    2017-12-15 19:08:50 朴素贝叶斯分类器是一种典型的监督学习的算法,其英文是Naive Bayes.所谓Naive,就是天真的意思,当然这里翻译为朴素显得更学术化. 其核心思想就是利用 ...

  3. python机器学习(三)分类算法-朴素贝叶斯

    一.概率基础 概率定义:概率定义为一件事情发生的可能性,例如,随机抛硬币,正面朝上的概率. 联合概率:包含多个条件,且所有条件同时成立的概率,记作:

  4. Python机器学习算法 — 朴素贝叶斯算法(Naive Bayes)

    朴素贝叶斯算法 -- 简介 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Baye ...

  5. 分类算法之贝叶斯(Bayes)分类器

    摘要:旁听了清华大学王建勇老师的 数据挖掘:理论与算法 的课,讲的还是挺细的,好记性不如烂笔头,在此记录自己的学习内容,方便以后复习.   一:贝叶斯分类器简介 1)贝叶斯分类器是一种基于统计的分类器 ...

  6. 朴素贝叶斯(Naive Bayesian)

    简介 Naive Bayesian算法 也叫朴素贝叶斯算法(或者称为傻瓜式贝叶斯分类) 朴素(傻瓜):特征条件独立假设 贝叶斯:基于贝叶斯定理 这个算法确实十分朴素(傻瓜),属于监督学习,它是一个常用 ...

  7. (ZT)算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)

    https://www.cnblogs.com/leoo2sk/archive/2010/09/18/bayes-network.html 2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝 ...

  8. 机器学习集成算法--- 朴素贝叶斯,k-近邻算法,决策树,支持向量机(SVM),Logistic回归

    朴素贝叶斯: 是使用概率论来分类的算法.其中朴素:各特征条件独立:贝叶斯:根据贝叶斯定理.这里,只要分别估计出,特征 Χi 在每一类的条件概率就可以了.类别 y 的先验概率可以通过训练集算出 k-近邻 ...

  9. 机器学习理论基础学习3.5--- Linear classification 线性分类之朴素贝叶斯

    一.什么是朴素贝叶斯? (1)思想:朴素贝叶斯假设    条件独立性假设:假设在给定label y的条件下,特征之间是独立的    最简单的概率图模型 解释: (2)重点注意:朴素贝叶斯 拉普拉斯平滑 ...

  10. 【机器学习速成宝典】模型篇05朴素贝叶斯【Naive Bayes】(Python版)

    目录 先验概率与后验概率 条件概率公式.全概率公式.贝叶斯公式 什么是朴素贝叶斯(Naive Bayes) 拉普拉斯平滑(Laplace Smoothing) 应用:遇到连续变量怎么办?(多项式分布, ...

随机推荐

  1. python 元类理解

    原文来自:https://segmentfault.com/a/1190000011447445 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来里?我要到哪里去? ...

  2. 个性化排序算法实践(一)——FM算法

    因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题.FM可以看做带特征交叉的LR. 理论部分可参考FM系列,通过将FM的二次项化简,其复杂度可 ...

  3. NodeJS开发博客(一)

    1 区分 ECMAScript/JS/NodeJs --ECMAScript.定义了语法,写JS和NodeJS都要遵守: 变量定义,循环/判断/函数: 原型和原形链/作用域和闭包/异步 不能操作DOM ...

  4. 前端学习笔记--CSS样式--列表和表格

    1.列表 2.表格 odd:奇数  even:偶数

  5. CSP模拟赛 Lost My Music(二分,可回退化栈)

    题面 题解 发现是斜率的形式,答案的相反数可以看做一条直线的斜率.那么我们要答案最小,斜率最大.维护下凸壳就行了. 考试时写了直接dfsdfsdfs+暴力弹栈拿了808080分(还以为自己是O(n)正 ...

  6. HashMap与HashTable的理解与区别

    Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2.虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了 ...

  7. MyBatis的关联查询

    关联映射的一对多 //查询经理角色 以及 该角色下对应的员工集合 public SmbmsRole getRoleAndUser(Integer id); <resultMap id=" ...

  8. 004_软件安装之_Altium Designer

    文件中有软件简单视频教程,安装有pdf教程 链接:https://pan.baidu.com/s/1ow-OHdsPuAyXCevjCVqEsg 提取码:l2rt 复制这段内容后打开百度网盘手机App ...

  9. linux系列(十):cat命令

    1.命令格式: cat [选项] [文件] 2.命令功能: cat主要有三大功能: (1).一次显示整个文件:cat filename (2).从键盘创建一个文件:cat > filename  ...

  10. 8、RDD持久化

    一.RDD持久化 1.不使用RDD持久化的问题 2.RDD持久化原理 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中.当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的par ...