机器学习-朴素贝叶斯及其手写实现

一、简介

1、朴素贝叶斯的基本思想就是:给出一个分类问题,对于待求项,属于哪个分类的概率最大,那这个待求项就属于哪个分类。
2、如给出假设场景,要分类物有n个特征,分别为F1、F2、F3、…、Fn,现在有m个类别分别是C1、C2、C3、…、Cm。贝叶斯就是计算出概率最大的那个分类。

二、原理

  1. 准备知识
    贝叶斯条件概率的计算公式(核心):

    P(A|B)=P(A,B)/P(B)=P(B|A)*P(A)/P(B)

  2. 分类原理
    假设这里要被分类的类别有两类,类c1和类c2,那么我们需要计算概率p(c1|x,y)和p(c2|x,y)的大小并进行比较:
    如果:p(c1|x,y)>p(c2|x,y),则(x,y)属于类c1

    p(c1|x,y)<p(c2|x,y),则(x,y)属于类c2

    我们知道p(x,y|c)的条件概率所表示的含义为:已知类别c1条件下,取到点(x,y)的概率;那么p(c1|x,y)所要表达的含义呢?显然,我们同样可以按照条件概率的方法来对概率含义进行描述,即在给定点(x,y)的条件下,求该点属于类c1的概率值。那么这样的概率该如何计算呢?显然,我们可以利用贝叶斯准则来进行变换计算:

    p(ci|x,y)=p(x,y|ci)*p(ci)/p(x,y)

    利用上面的公式,我们可以计算出在给定实例点的情况下,分类计算其属于各个类别的概率,然后比较概率值,选择具有最大概率的那么类作为点(x,y)的预测分类结果。
    以上我们知道了通过贝叶斯准则来计算属于各个分类的概率值,那么具体而言,就是计算贝叶斯公式中的三个概率,只要得到了这三个概率值,显然我们就能通过贝叶斯算法预测分类的结果了。因此,到了这里,我们就知道了朴树贝叶斯算法的核心所在了。

  3. 如何“朴素”
    "朴素"含义:本章算法全称叫朴素贝叶斯算法,显然除了贝叶斯准备,朴素一词同样重要。这就是我们要说的条件独立性假设的概念。条件独立性假设是指特征之间的相互独立性假设,所谓独立,是指的是统计意义上的独立,即一个特征或者单词出现的可能性与它和其他单词相邻没有关系。

三、手写实践

在企业笔试中,编程题也会出:实现朴素贝叶斯算法进行分类。如2018携程第二题,2019携程第一题,都出了贝叶斯进行分类。
2018携程第二题,朴素贝叶斯实现传送门
其他实践传送门如:文档分类,过滤垃圾邮件分类。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章