算法 | 朴素贝叶斯

朴素贝叶斯是实用性很高的一种学习器,主要基于贝叶斯定理和条件独立性假设求出后验概率,将后验概率最大的类别作为预测的结果.

01

朴素贝叶斯

假设X是n维输入随机向量

,其中

是X的第j个分量,也就是第j个特征;假设Y是输出随机变量,即标签变量,其有K个取值,取值集合为

;假设训练数据集T为

,含N个样本.

根据贝叶斯定理,可得后验概率

,其中

是先验概率,

是条件概率,如果对该条件概率加上条件独立性假设,也就是假设特征之间是条件独立的,即

,则可得后验概率

.从上面公式可以容易看出,所有类别的后验概率的分母都是一样的,因此只需比较各后验概率的分子即可,从而得到预测模型

.

上述方法就被称为朴素贝叶斯, 朴素贝叶斯是一种简单易懂、学习效率高的分类器,但特征间的条件独立性假设也导致了其精度受到一定程度的影响.如果没有条件概率的条件独立性假设,则就是贝叶斯网络,一种更复杂的方法。

对朴素贝叶斯进行学习,其实就是对先验概率

和条件概率

进行估计.

02

极大似然估计

在这里采用极大似然法对先验概率和条件概率进行估计.

一、先验概率的估计

(1)假设:

(2)构造对数似然函数:

(3)构造拉格朗日函数:

在约束条件

下,求L的极大值问题,所以拉格朗日函数为:

(4)拉格朗日函数对先验概率的偏导为0:

从先验概率的估计结果,可以看出先验概率的估计就是相应类别在样本中出现的比例.

二、条件概率的估计

因为特征可能是离散型或连续型的,两种类型的条件概率形式有所不同,所以相应的条件概率估计的方法是有差异的,下面分别进行证明.

1、离散型特征条件概率的估计

离散型特征条件概率的估计与先验概率的估计基本一致,将证明过程限制在某一类别下即可,证明过程如下.

(1)假设:

第j个特征

为离散变量,其有

个取值,并且令其可能的取值集合为

(2)构造对数似然函数:

(3)构造拉格朗日函数:

在约束条件

下,求L的极大值问题,所以拉格朗日函数为:

(4)拉格朗日函数对先验概率的偏导为0:

从上述离散型特征条件概率的估计结果,可以发现相应的估计就是特定类别下相应属性值出现的比例.

2、连续型特征条件概率的估计

对于连续型变量条件概率的估计,常采用的一种方法是先假设其具有某种确定的概率分布,然后基于样本对概率分布的参数进行估计,这种方法使条件概率的估计变得简单,但估计的准确性严重依赖于假设的概率分布和真实数据的吻合程度.

在这里以高斯分布为例说明连续型变量条件概率密度的估计过程.

(1)假设:

,为类别k的样本集合;

,为类别k的样本大小;

是连续变量,其条件概率密度服从

高斯分布,即条件概率密度

,剩下的主要任务就是对参数

进行估计;

(2)构造对数似然函数:

(3)对数似然函数L对

偏导为0:

首先,L对

偏导为0,可得:

然后,L对

偏导为0,可得:

03

极大似然估计的修正

对于先验概率和离散型特征条件概率,通过样本中相应观察的比例对其进行估计,可能会低估相应的概率。尤其当某些属性值出现的几率较低时,如果训练样本较少,相应的属性值可能出现的数量极少甚至不会出现,通过比例得到的概率估计会偏低甚至概率估计值为0.贝叶斯估计可以对该问题进行某种程度的修正.

一、先验概率的修正

在原有估计的基础上添加一个虚拟样本,且令虚拟样本服从均匀分布,因Y有K个类别,所以虚拟样本服从P=1/K的均匀分布,λ>0是常量,用于控制虚拟样本的大小,添加λK个虚拟样本,则先验概率的估计修正为

,当λ=0时,就是极大似然估计.

二、离散型特征条件概率的修正

同上,离散型特征条件概率的估计可以修正为

,其中

是离散特征

取值的个数.

THE END

本文分享自微信公众号 - 大数据建模的一点一滴(bigdatamodeling),作者:小石头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 模型评估指标

    本文主要介绍python已有模块中模型评估指标的使用,主要有sklearn.metrics、scikitplot.skplt等方法,并且重点展示分类模型的常用的...

    小石头
  • Python | 排序

    原列表list上进行排序,没有返回值。参数key和reverse和sorted()函数中的参数用法一样。

    小石头
  • 算法 | 随机森林

    随机森林是集成学习的一种方法,是将多棵树进行集成的算法,随机是指训练每棵树的样本和变量具有随机性,而多棵树组合在一起就像“森林”一样。

    小石头
  • teg saltstack部署

    yum install https://repo.saltstack.com/yum/redhat/salt-repo-2017.7-1.el7.noarch....

    葫芦
  • 如何在终端和 PowerShell 中将一个命令自动重复执行多次

    你可能有很多原因要将一个命令重复执行多次,本文介绍在多个平台下如何多次重复执行命令。

    walterlv
  • 响铃:云+峰会再召开,腾讯云的政企合作玩得怎么样了?

    当云计算正在掀起社会产业变革的浪潮,广东省政府领导明确表态让“政府回归政府,政府变身为一个大数据管理者”的时候。

    曾响铃
  • WSO2 ESB(5)

    WSO2的应用服务器 WSO2的应用服务器是基于WSO2 Carbon平台的企业级就绪的应用程序服务器。继承的WSO2 Web服务应用服务器(WSAS),WSO...

    cloudskyme
  • bootstrap 进度条 常用

    <!doctype html> <html> <head> <meta charset="utf-8"> <title>联想控股</title> <m...

    用户5760343
  • Okhttp3源码解析(1)-OkHttpClient分析

    上篇文章我们讲了Okhttp的基本用法,今天根据上节讲到请求流程来分析源码,那么第一步就是实例化OkHttpClient对象,所以我们今天主要分析下OkHttp...

    秦子帅
  • 应急响应之Windows、Linux

    (1) docker cp /home/test/桌面/hm xxx:/var/www./hm scan /var/www 通过查杀没有发现Webshel...

    天钧

扫码关注云+社区

领取腾讯云代金券