博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习:深入朴素贝叶斯分类算法原理及案例[阅读笔记]
阅读量:5946 次
发布时间:2019-06-19

本文共 1836 字,大约阅读时间需要 6 分钟。

  朴素贝叶斯之所以叫朴素,是因为它假定了所有的属性之间是独立的。下面我们就分别说说,属性值是离散和连续值的朴素贝叶斯对问题的求解方法吧。

1 贝叶斯定理

      贝叶斯定理最大的用处是在很多情况下,我们需要求的概率是后验概率P(B|A),很难直接求解,但是他的先验概率P(A|B)却很容易求解,这时候贝叶斯定理就在理论上支持了我们的方法。

     贝叶斯定理:

     

2 朴素贝叶斯分类的算法步骤

   

      朴素贝叶斯分类的步骤,如下:

      1、计算先验概率P(Yi),其中类别集合

      2、计算条件先验概率

      3、利用凸优化问题求解最终类别,,则

     

  下面详细说说,步骤3的条件概率求解:

      1)、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。

      2)、统计得到在各类别下各个特征属性的条件概率估计。即

      3)、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

     

      因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

     

     

3 先验条件概率P(a|y)及Laplace校准

      1)当时离散值的时候,很容易求解,及频率比就是该先验条件概率;

  2)特别说明下,当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:

     

      而

      因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差;

  下面介绍一个连续属性值的例子,截图来自国外书刊,见参考文献【1】。

  题目:

  

  解:

  

      另一个需要讨论的问题就是当P(a|y)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个 问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且 解决了上述频率为0的尴尬局面。

4 朴素贝叶斯分类实例:检测SNS社区中不真实账号

      下面讨论一个使用朴素贝叶斯分类解决实际问题的例子,为了简单起见,对例子中的数据做了适当的简化。

      这个问题是这样的,对于SNS社区来说,不真实账号(使用虚假身份或用户的小号)是一个普遍存在的问题,作为SNS社区的运营商,希望可以检测出这些不真实账号,从而在一些运营分析报告中避免这些账号的干扰,亦可以加强对SNS社区的了解与监管。

      如果通过纯人工检测,需要耗费大量的人力,效率也十分低下,如能引入自动检测机制,必将大大提升工作效率。这个问题说白了,就是要将社区中所有账号在真实账号和不真实账号两个类别上进行分类,下面我们一步一步实现这个过程。

      首先设C=0表示真实账号,C=1表示不真实账号。

      1、确定特征属性及划分

      这一步要找出可以帮助我们区分真实账号与不真实账号的特征属性,在实际应用中,特征属性的数量是很多的,划分也会比较细致,但这里为了简单起见,我们用少量的特征属性以及较粗的划分,并对数据做了修改。

      我们选择三个特征属性:a1:日志数量/注册天数,a2:好友数量/注册天数,a3:是否使用真实头像。在SNS社区中这三项都是可以直接从数据库里得到或计算出来的。

      下面给出划分:a1:{a<=0.05, 0.05<a<0.2, a>=0.2},a1:{a<=0.1, 0.1<a<0.8, a>=0.8},a3:{a=0(不是),a=1(是)}。

      2、获取训练样本

      这里使用运维人员曾经人工检测过的1万个账号作为训练样本。

      3、计算训练样本中每个类别的频率

      用训练样本中真实账号和不真实账号数量分别除以一万,得到:

     

     

      4、计算每个类别条件下各个特征属性划分的频率

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

      5、使用分类器进行鉴别

      下面我们使用上面训练得到的分类器鉴别一个账号,这个账号使用非真实头像,日志数量与注册天数的比率为0.1,好友数与注册天数的比率为0.2。

     

     

      可以看到,虽然这个用户没有使用真实头像,但是通过分类器的鉴别,更倾向于将此账号归入真实账号类别。这个例子也展示了当特征属性充分多时,朴素贝叶斯分类对个别属性的抗干扰性。

 
 
  参考:
  【1】An Introduction To Merchine Learning
  【2】http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
 

转载于:https://www.cnblogs.com/rongyux/p/5388752.html

你可能感兴趣的文章
(二)神经网络入门之Logistic回归(分类问题)
查看>>
秒杀流量控制的执行方案
查看>>
[译][摘录]HEVC编码中的多视域和3D扩展,第四部分:3D-HEVC编码技术
查看>>
BEM命名 css模块化解决方案
查看>>
使用Tower克隆gitLab项目
查看>>
前端js压缩图片并上传
查看>>
我的Java设计模式-工厂方法模式
查看>>
线程存储简介
查看>>
WEEX系列 我的第一个WEEX DEMO
查看>>
Deploy NodeJS Docker to QiO Edge Cloud using Kubernetes
查看>>
【Hadoop学习】HDFS基本原理
查看>>
关于解决IE8以下版本获取DOM节点的方法
查看>>
vue学习笔记(二)
查看>>
Flask四之模板
查看>>
要不, 我们从右往左书写数组?
查看>>
我的面试准备过程--LeetCode(更新中)
查看>>
【145天】尚学堂高淇Java300集视频精华笔记(103-104)
查看>>
如何在 React Native 中写一个自定义模块
查看>>
SegmentFault 2017 年社区周报 Vol.5
查看>>
JS用原型对象写的贪吃蛇,很粗糙的代码
查看>>