《统计学习方法》极简笔记P4:朴素贝叶斯公式推导

朴素贝叶斯基本方法

通过训练数据集

T={(x_1,y_1),(x_2,y_2),(x_N,y_N)...,(x_1,y_1)}

学习联合概率分布P(X,Y),即学习先验概率分布

P(Y=c_k)

条件概率分布$P(X=x|Y=c_k)$
$k=1,2,...,K$
假设条件独立
$P(X=x|Y=c_k)=\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)$
然后根据学习到的模型计算后验概率分布,根据贝叶斯定理
$$P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{k}P(X=x|Y=c_k)P(Y=c_k)}$$
条件概率带入,得
$$P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_{j}P(X_i^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j}P(X_i^{(j)}=x^{(j)}|Y=c_k)}$$
于是,朴素贝叶斯分类器可表示为
$$y=argmax\frac{P(Y=c_k)\prod_{j}P(X_i^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j}P(X_i^{(j)}=x^{(j)}|Y=c_k)}$$
又,分母对所有$c_k$都相同,so
$$y=argmaxP(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k)$$
假设采用0-1损失函数,期望风险函数为
$R_{exp}(f)=E[L(Y,f(X))]$
同样的,条件期望
$R_{exp}(f)=E_X\sum_{k=1}^{K}[L(c_k,f(X))]P(c_k|X)$
期望风险最小,只需对X=x逐个极小化
$f(x)=argmin\sum_{k=1}^{K}[L(c_k,y)]P(c_k|X)\=argmin\sum_{k=1}^{K}P(y\neq{c_k}|X=x)\=argmin\sum_{k=1}^{K}(1-P(y={c_k}|X=x))\=argmaxP(y=c_k|X=x)$
这即为朴素贝叶斯采用的原理

朴素贝叶斯算法

输入:
训练数据$T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$
$x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(l)})$,$x_i^{(l)}$为第i个样本的第j个特征,$a_{jl}$是第j个特征可能取得第$l$个值,j=1,2,...,n,$l=1,2,...,S_j$,$y_i\in{c_1,c_2,...,c_K}$
输出:实例$x$的分类
(1)计算先验概率及条件概率,此处取极大似然估计
$$P(Y=c_k)=\frac{\sum^{N}_{i=1}I(y_i=c_k)}{N}$$

$$P(X^{(j)}|Y=c_k)=\frac{\sum^{N}{i=1}I(x_i^{(j)}|y_i=c_k)}{\sum{i=1}^{N}I(y_i=c_k)}$$
(2)对于给定的实例,$x=(x^{(1)},x^{(2)},...,x^{(n)})^T$,计算
$$P(Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)$$
(3)确定实例$x$的类
$$y=arg maxP(Y=c_k)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)$$

贝叶斯估计

极大似然估计存在的问题是会出现概率为0的情况,解决之道是贝叶斯估计
$$P(Y=c_k)=\frac{\sum^{N}_{i=1}I(y_i=c_k)+\lambda}{N+K\lambda}$$

$$P(X^{(j)}|Y=c_k)=\frac{\sum^{N}{i=1}I(x_i^{(j)}|y_i=c_k)+\lambda}{\sum{i=1}^{N}I(y_i=c_k)+S_j\lambda}$$

《统计学习方法》极简笔记P4:朴素贝叶斯公式推导的更多相关文章

  1. 《统计学习方法》极简笔记P5:决策树公式推导

    <统计学习方法>极简笔记P2:感知机数学推导 <统计学习方法>极简笔记P3:k-NN数学推导 <统计学习方法>极简笔记P4:朴素贝叶斯公式推导

  2. 《统计学习方法》极简笔记P2:感知机数学推导

    感知机模型 输入空间是$\chi\subseteq\mathbb{R}^n$,输出空间是$y={+1,-1}$ 感知机定义为:$f(x)=sign(wx+b)$ 感知机学习策略 输入空间任一点$x_0 ...

  3. 统计学习方法笔记 -- KNN

    K近邻法(K-nearest neighbor,k-NN),这里只讨论基于knn的分类问题,1968年由Cover和Hart提出,属于判别模型 K近邻法不具有显式的学习过程,算法比较简单,每次分类都是 ...

  4. 统计学习方法(李航)朴素贝叶斯python实现

    朴素贝叶斯法 首先训练朴素贝叶斯模型,对应算法4.1(1),分别计算先验概率及条件概率,分别存在字典priorP和condP中(初始化函数中定义).其中,计算一个向量各元素频率的操作反复出现,定义为c ...

  5. 我的第一个 Rails 站点:极简优雅的笔记工具-Raysnote

    出于公司开发需求,这个暑假我開始搞Ruby on Rails.在业余时间捣鼓了一个在线笔记应用:http://raysnote.com.这是一个极简而优雅的笔记站点(至少我个人这么觉得的). 笔记支持 ...

  6. 《统计学习方法》笔记九 EM算法及其推广

    本系列笔记内容参考来源为李航<统计学习方法> EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计.迭代由 (1)E步:求期望 (2)M步:求极大 组成,称 ...

  7. 《统计学习方法》笔记三 k近邻法

    本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...

  8. 统计学习方法与Python实现(三)——朴素贝叶斯法

    统计学习方法与Python实现(三)——朴素贝叶斯法 iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.定义 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设 ...

  9. 统计学习方法笔记--EM算法--三硬币例子补充

    本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...

随机推荐

  1. hive on tez

    hive运行模式 hive on mapreduce 离线计算(默认) hive on tez  YARN之上支持DAG作业的计算框架 hive on spark 内存计算 hive on tez T ...

  2. Redis 命令使用

    Redis 中所有 key-value 都储存在 Redis-Object 中,Redis-Object 主要信息有: 数据类型(type) string (字符串) hash (Hash表) lis ...

  3. MediaPlayer: 在不同控件之间实现视频的无缝切换的方法

    最近使用MediaPlayer + TextureView 实现了一个视频播放器,并且实现了它的横竖屏切换的效果,唯一美中不足的是在横竖屏切换的时候画面会卡顿一下,虽然也不影响播放,但是怕测试会报Bu ...

  4. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  5. Ionic 的安装运行

    1.学习前准备工作 1.必须得安装 nodejs (建议安装最新的稳定版本) 2.必须有 Angular 基础:https://www.loaderman.com/goods-1047.html 2. ...

  6. [Java复习] 分布式PRC - Dubbo

    分布式RPC框架 dubbo常见问题: 1. 问dubbo的工作原理:服务注册,注册中心,服务生产者,消费者,代理通信,负载均衡 2. 问网络通信,序列化: dubbo协议,长连接,NIO,hessi ...

  7. 90后外挂开发者:已经有许多主播在我这里在外挂,我月入50W

    绝地求生上线不到一年已经火爆全球,玩家们表示再差的优化也抵挡不住我们玩游戏的热情,近日,各大平台主播糯米油条五五开等人的开挂实锤闹得沸沸扬扬,玩家之间刮起了一阵反击外挂的风暴. 俗话说得好,没有买卖就 ...

  8. 数据库连接池Flask-SQLAlchemy中多线程安全的问题

    使用flask-sqlalchemy写代码码到一半,突然想到,Session是否是线程安全的?于是上官方文档,答案是否! 那问题来了,怎么破?因为它会牵涉到多线程情况下,调用rollback导致的不可 ...

  9. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_20-认证接口开发-接口测试

    测试接口 因为继承了spring  security会拦截这个请求,我们需要写代码 让他对这个认证接口放行 查看代码发现之前已经写过放行的代码了 发现是路径前面少了auth 加断点,测试.申请令牌 r ...

  10. Ubuntu 16.04 haproxy + keeplive

    WEB架构