机器学习算法 --- Naive Bayes classifier

1、引言

   在开始算法介绍以前,让咱们先来思考一个问题,假设今天你准备出去爬山,但起床后发现今天早晨的天气是多云,那么你今天是否应该选择出去呢? 你有最近这一个月的天气状况数据以下,请作出判断。html

  • 这个月下雨的天数占10%
  • 这个月早晨是多云的天数占40%        
  • 在下雨的天数中早晨是多云的占50%        

   若是有普通本科的几率论知识,这个问题就不难解决,计算一下今天会下雨的几率,而后根据几率决定便可。解决方式以下:算法

    

  能够发现,今天下雨的几率只有12.5%,仍是能够出去玩的(固然若是怕万一,那仍是呆在家里)。dom

2、Bayes’s theorem

  没错,上面的计算公式就是贝叶斯定理,这个定理的数学表示以下:机器学习

 

  这个定理在平常生活中的应用很是普遍,好比:学习

    • If dangerous fires are rare (1%) but smoke is fairly common (10%) due to barbecues, and 90% of dangerous fires make smoke. 若是烟雾报警器检测到有烟,请问发生火灾的可能为多少?spa

    • Suppose that a test for using a particular drug is 99% sensitive and 99% specific. That is, the test will produce 99% true positive results for drug users and 99% true negative results for non-drug users. Suppose that 0.5% of people are users of the drug. What is the probability that a randomly selected individual with a positive test is a drug user?
    • ....

  对上述公式作一个变形以下:3d

  在对其进行扩展则以下:htm

 

3、Naive Bayes Classifier

  上面说了这么多,好像与机器学习分类器没啥关系啊!可是不是,是有关系的, Naive Bayes Classifier就是一种基于几率的分类器。blog

  首先,咱们假设一组向量 ,这组向量的各个值表示某个数据的特征值,那么它属于某个类别  的几率就可用这个形式表示: 。ci

  根据上面的 Bayes’s theorem,这个几率的计算方法就以下:

  (1)

  对于条件几率的定义以下:

  

  则,

  =

  可将上式写成以下形式:

  (2)

  而后,咱们假设xi与xj(j不等于i)独立(即特征之间没有关系),则:

  

  则,对于(2)式(即(1)式右半部分的分母),就能够写成以下形式:

  

  

  假设,则(1)式能够写成以下形式:

  (3)

   经过(3)式,咱们就能够计算一个数据属于某个类别的几率,分类结果也就是几率最大的那一个类别,因此Naive Bayes Classifier的完整表达形式以下:

  

  注意:因为在最后的结果比较中,每个结果的计算都含有,即它不影响比较结果,能够直接忽略。 

4、说明

   关于Naive Bayes Classifier,咱们假设了特征之间不存在任何关系,然而现实是特征之间是不可能没有关系的。好比对于水果的类别,它们的颜色,大小,重量之间好比存在某种联系;再好比对于人类的性别,身高与体重等特征也是存在联系的。可是,Naive Bayes Classifier每每会取得比较好的结果,若是对数据和样本能作一些合适的预处理,它取得的结果是很是好的。

   Naive Bayes Classifier在现实生活中的应用:垃圾邮件的分类,拼写检查与自动纠正,银行关于信用卡欺诈的检测等等。

 

5、参考与扩展连接

  关于本篇文章的参考连接:https://www.mathsisfun.com/data/bayes-theorem.html

              https://www.wikiwand.com/en/Bayes%27_theorem# 

              https://www.wikiwand.com/en/Naive_Bayes_classifier 

  这些连接中的不少知识本篇文章中尚未讲到,推荐你们去阅读学习。

相关文章
相关标签/搜索