zoukankan      html  css  js  c++  java
  • 机器学习---算法---朴素贝叶斯

    转自:https://blog.csdn.net/fisherming/article/details/79509025

    一. 朴素贝叶斯

          朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。

        首先给出贝叶斯公式:


        换成分类任务的表达式:


         我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。
         则,朴素贝特斯公式为:

    二. 实例解析
    首先,给出数据如下:

     

    现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?

    这是典型的二分类问题,按照朴素贝叶斯的求解,转换为P(嫁|不帅、性格不好、矮、不上进)和P(不嫁|不帅、性格不好、矮、不上进)的概率,最终选择嫁与不嫁的答案。

    这里我们根据贝特斯公式:

    由此,我们将(嫁|不帅、性格不好、矮、不上进)转换成三个可求的P(嫁)、P(不帅、性格不好、矮、不上进|嫁)、P(不帅、性格不好、矮、不上进)。进一步分解可以得:
    P(不帅、性格不好、矮、不上进)=P(嫁)P(不帅|嫁)P(性格不好|嫁)P(矮|嫁)P(不上进|嫁)+P(不嫁)P(不帅|不嫁)P(性格不好|不嫁)P(矮|不嫁)P(不上进|不嫁)。
    P(不帅、性格不好、矮、不上进|嫁)=P(不帅|嫁)P(性格不好|嫁)P(矮|嫁)P(不上进|嫁)

    将上面的公式整理一下可得:


     P(嫁)=1/2、P(不帅|嫁)=1/2、P(性格不好|嫁)=1/6、P(矮|嫁)=1/6、P(不上进|嫁)=1/6。
     P(不嫁)=1/2、P(不帅|不嫁)=1/3、P(性格不好|不嫁)=1/2、P(矮|不嫁)=1、P(不上进|不嫁)=2/3
     但是由贝叶斯公式可得:对于目标求解为不同的类别,贝叶斯公式的分母总是相同的。所以,只求解分子即可:

    于是,对于类别“嫁”的贝叶斯分子为:P(嫁)P(不帅|嫁)P(性格不好|嫁)P(矮|嫁)P(不上进|嫁)=1/2 * 1/2 * 1/6 * 1/6 * 1/6=1/864     
    对于类别“不嫁”的贝叶斯分子为:P(不嫁)P(不帅|不嫁)P(性格不好|不嫁)P(矮|不嫁)P(不上进|不嫁)=1/2 * 1/3 * 1/2 * 1* 2/3=1/18。
    经代入贝叶斯公式可得:P(嫁|不帅、性格不好、矮、不上进)=(1/864) / (1/864+1/18)=1/49=2.04%
    P(不嫁|不帅、性格不好、矮、不上进)=(1/18) / (1/864+1/18)=48/49=97.96%
    则P(不嫁|不帅、性格不好、矮、不上进) > P(嫁|不帅、性格不好、矮、不上进),则该女子选择不嫁!
    三. 朴素贝叶斯的优缺点

    优点:
      (1) 算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化即可!)
    (2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)
    缺点:
          朴素贝叶斯假设属性之间相互独立,这种假设在实际过程中往往是不成立的。在属性之间相关性越大,分类误差也就越大。

  • 相关阅读:
    .vsdx 在线查看 省的安装 visio 2013了
    桌面整理工具 rolan
    第一节、ES6的开发环境搭建
    $("[lay-id='"+this.id+"']")
    mathAge.call(btn) 函数call 改变函数内 this #js
    viewer && ImageFlow 图片滚动组件 图片点击放大 可以滚轮放大缩小 viewer
    ie11 突然不能加载外部css 很神奇 头部改为 <!DOCTYPE> <html>
    CODE[VS] 1219 骑士游历
    CODE[VS] 1169 传纸条
    CODE[VS] 1010 过河卒
  • 原文地址:https://www.cnblogs.com/qing1991/p/10127600.html
Copyright © 2011-2022 走看看