朴素贝叶斯算法分析

这两天开始学习朴素贝叶斯算法,下面开始写一些自己查阅资料的总结

1、分类问题概述

       在介绍朴素贝叶斯算法前,我们先简单了解下分类问题,因为朴素贝叶斯是分类算法中的一种。

定义:给定一个对象X,将其划分到预定义好的某一个类别Yi中

---输入:X

---输出:Y(取值于有限集合{y1,y2,......,yn})

应用:人群,新闻分类,query分类,商品分类,网页分类,垃圾邮件过滤,网页排序

不同类型的分类:

类别数量:

  • 二值分类,Y 的取值只有两种,如:email是否垃圾邮件
  • 多值分类,Y的取值只有两个,如:网页分类{政治,经济,军事,体育,............}

类别关系:

  • 水平关系:类别之间无包含关系
  • 层级关系:类别形成等级体系

2、朴素贝叶斯简介

这里我们先简单介绍一下贝叶斯算法,贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本文作为分类算法的第一篇,将首先介绍分类问题,对分类问题进行一个正式的定义。然后,介绍贝叶斯分类算法的基础——贝叶斯定理。最后,通过实例讨论贝叶斯分类中最简单的一种:朴素贝叶斯分类。

要了解贝叶斯分类,必须了解贝叶斯定理,贝叶斯定理离不开条件概率

条件概率定义:

事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。

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

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

由此可得P(B|A)=P(A,B)/P(A),所以有:P(A|B)*P(B)=P(B|A)*P(A),因此可以得出贝叶斯公式为:

                                                                           P(B|A)=\frac{P(A|B)*P(B)}{P(A)}

举一个生活中简单的例子,我们经常知道这种情况 ,P(A|B),但是不知道P(B|A).比如:

A:   表示用户收入高

B:表示订购2G流量套餐

P(A|B) 表示订购2G流量套餐的用户收入高的概率,这个可以通过统计的样本算出得到。

但是现在有一个用户收入高(A),他购买2G流量套餐(B)的概率是多少,即P(B|A),这才是我们关注

下面继续将公式变得更加深入一些,朴素贝叶斯(NaiveBeyesian Classification, NB)分类器

朴素贝叶斯分类的正式定义如下:

      1、设为一个待分类项,而每个a为x的一个特征属性。

      2、有类别集合

      3、计算

      4、如果,则

      那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:

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

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

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

      

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

      

3、朴素贝叶斯算法例子

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(大数据,算法,数据挖掘)