• 机器学习读书笔记(四)朴素贝叶斯基础篇之网站账号分类


     一、条件概率

    在学习计算p1和p2概率之前,我们需要了解什么是条件概率,就是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示。

     

     

    根据文氏图,可以很清楚地看到在事件B发生的情况下,事件A发生的概率就是P(A∩B)除以P(B)。

     

     这就是条件概率的计算公式。

     

    二、贝叶斯推断

     对条件概率公式进行变形,可以得到如下形式:

    我们把P(A)称为”先验概率”,即在B事件发生之前,我们对A事件概率的一个判断。

    P(A|B)称为”后验概率”,即在B事件发生之后,我们对A事件概率的重新评估。

    P(B|A)/P(B)称为”可能性函数”,这是一个调整因子,使得预估概率更接近真实概率。

    所以,条件概率可以理解成下面的式子:

    后验概率 = 先验概率 x 调整因子

    这就是贝叶斯推断的含义。我们先预估一个”先验概率”,然后加入实验结果,看这个实验到底是增强还是削弱了”先验概率”,由此得到更接近事实的”后验概率”。

     

    三、朴素贝叶斯

    理解了贝叶斯推断,那么让我们继续看看朴素贝叶斯。贝叶斯和朴素贝叶斯的概念是不同的,区别就在于“朴素”二字,朴素贝叶斯对条件个概率分布做了条件独立性的假设。

    让我们从一个例子开始讲起:

     某个医院早上来了六个门诊的病人,他们的情况如下表所示:

    现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?

     根据贝叶斯定理:

    上面等式变成:

    P(感冒|打喷嚏X建筑工人)=P(打喷嚏|感冒) X P(建筑工人|感冒) X P(感冒)/P(打喷嚏) X P(建筑工人)

    可以计算出:

    P(感冒|打喷嚏X建筑工人)=0.66 X0.33 X 0.5 / (0.5X 0.33)=0.66

    因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。

    这就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。

     

    四、网站账号分类

    根据某社区网站的抽样统计,该站10000个账号中有89%为真实账号(设为C0),11%为虚假账号(设为C1)。接下来,就要用统计资料判断一个账号的真实性。

     假定某一个账号有以下三个特征:

    F1: 日志数量/注册天数 

    F2: 好友数量/注册天数 

    F3: 是否使用真实头像(真实头像为1,非真实头像为0)

    F1 = 0.1 

    F2 = 0.2 

    F3 = 0

    请问该账号是真实账号还是虚假账号?方法是使用朴素贝叶斯分类器,计算下面这个计算式的值。

    P(F1|C)P(F2|C)P(F3|C)P(C)

    虽然上面这些值可以从统计资料得到,但是这里有一个问题:F1和F2是连续变量,不适宜按照某个特定值计算概率。一个技巧是将连续值变为离散值,计算区间的概率。比如将F1分解成[0, 0.05]、(0.05, 0.2)、[0.2, +∞]三个区间,然后计算每个区间的概率。在我们这个例子中,F1等于0.1,落在第二个区间,所以计算的时候,就使用第二个区间的发生概率。

     

    根据统计资料,可得:

    P(F1|C0) = 0.5, P(F1|C1) = 0.1 
    P(F2|C0) = 0.7, P(F2|C1) = 0.2 
    P(F3|C0) = 0.2, P(F3|C1) = 0.9

     

    因此

    P(F1|C0) P(F2|C0) P(F3|C0) P(C0) 
       = 0.5 x 0.7 x 0.2 x 0.89 
       = 0.0623
    P(F1|C1) P(F2|C1) P(F3|C1) P(C1) 
       = 0.1 x 0.2 x 0.9 x 0.11 
       = 0.00198

    可以看到,虽然这个用户没有使用真实头像,但是他是真实账号的概率,比虚假账号高出30多倍,因此判断这个账号为真。

      

    五、朴素贝叶斯的优缺点

    优点

    生成式模型,通过计算概率来进行分类,可以用来处理多分类问题。

    对缺失数据不太敏感,算法也比较简单,高效且易于实现,常用于文本分类。

    缺点

    由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失。

    需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

     

  • 相关阅读:
    MySQL的Limit 性能差?真的不能再用了?
    天天写order by,你知道Mysql底层如何执行吗?
    微信小程序 rich-text使用正则去除html中img标签中的css样式
    微信小程序开发加入版本更新提示并自动更新
    keepass 用户名显示星号的问题
    firebase/php-jwt使用openssl实现 RSA非对称加密
    Homstead ubuntu 系统pip3的安装
    sqlserver 重置自增列种子值 违反了 PRIMARY KEY 约束的处理
    ghost 安装系统出现EFI PART红色错误的问题
    在laravel 5.6中接管dingo/api 错误
  • 原文地址:https://www.cnblogs.com/zcjcsl/p/9236059.html
Copyright © 2020-2023  润新知