分类算法之朴素贝叶斯分类(Naive Bayesian classification)

贝叶斯简介

  1. 简介

看了下周志华机器学习中的贝叶斯网络这块,对于贝叶斯的理解有了一定的理解,所以写个博客记录下。贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,因此统称为贝叶斯分类。
首先介绍下分类问题,对分类问题进行定义。然后,介绍贝叶斯分类算法的基础-贝叶斯定理。最后,通过实例讨论贝叶斯分类中的朴素贝叶斯分类

2 . 分类问题介绍
分类问题在现实生活中的例子是:我们看到一个人,先判别是个妹子,然后哇,这个妹子好漂亮。这家伙看着好有钱,这些都是基本的判断和分类。
从数学角度考虑这些问题:
集合:C = {Y1,Y2, Y3 … Yn}, I = {X1, X2,X3 … Xn},C和I之间存在一个映射关系 y = f(x) ,是的任意的Xi属于I有且仅有一个Yi属于C,使得Yi = f(Xi)成立。
C可以称为类别的集合,I 是项的集合,f叫做分类器。分类算法的任务就是获得这个分类器 f。
但是分类问题主要是采用经验性的方法构造映射规则,一次分类问题缺少足够的信息来构造准确率很高的映射规则,而是通过对经验数据的学习从而实现一定概率意义上的正确分类,因此所训练出的分类器并不是一定能够将每个待分类项准确映射到其分类的,分类器的质量、构造方法、分类数据的特征、数据的数量等都有很大的关系。
比如:医生看病的时候,医生是无法直接看到病人的病情的,只能通过观察病人的症状以及机器化验的数据等来推断病情,也就可以说是经验主义。而医生的能力以及他所受到的培养和看病经验可以决定医生这个“分类器”质量的好坏。
1. 贝叶斯定理
贝叶斯定理可以简单理解为条件概率:
P(A|B) 表示B发生的前提下,A发生的概率,可以成为B发生的前提下A的条件概率。P(A|B) = P(AB)/P(B)
贝叶斯定理的作用是,在日常生活中,求解P(A|B)的值很简单,但是P(B|A)比较麻烦,很难直接求出,而贝叶斯定理的主要作用就是将P(A|B)与P(B|A)联系起来。
不加验证的直接给出贝叶斯定理:
P(B|A) = P(A|B)P(B)/P(A)

4 . 朴素贝叶斯分类
4.1 原理和流程
朴素贝叶斯分类的过程比较简单。分类的思想是:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。比如说,当遇到一个外国黑人的时候,我们第一印象认为应该是非洲的,但是也有可能是其他的地方的黑人。只有综合各种判断条件,选择条件概率最大的那个类别。以上的介绍就是朴素贝叶斯的思想基础。

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

  1. 设 x = {a1, a2, a3,….am}为一个待分类项,而每个a为x的一个特征属性。
  2. 有类别集合 C = {y1, y2,… yn}。
  3. 计算 P{y1|x}, P{y2|x}, P{y3|x} …… P{yn|x}.
  4. 如果P{yk|x} = max{P{y1|x}, P{y2|x}, P{y3|x} …… P{yn|x}},则 x属于yk.

主要的步骤是如何计算第三步中各个条件的概率。计算步骤如下:

  1. 找到一个已知分类的待分类集合,这个集合叫做训练样本。
  2. 统计在各个类别下各个特征属性的条件概率。计算如下:P{a1|y1}, P{a2|y1}, P{a3|y1} …… P{an|y1}. P{a1|y2}, P{a2|y2}, P{a3|y2} …… P{an|y2}. P{a1|yn}, P{a2|yn}, P{a3|yn} …… P{am|yn}
  3. 如果各个特征属性是条件独立的,根据贝叶斯定理有如下推导:
    P(yi|x) = P(x|yi)p(yi)/P(x)
    因为分母对于所有的类别来说,都是常数,因此我们只要将分子设为最大化就可以。有因为各个特征属性是条件独立的,所以:
    P(x|yi)P(yi) = P(a1|yi)P(a2|yi)……P(am|yi)P(yi) = P(yi){P(aj|yi)}(j从1到m的P(aj|yi)的乘积)
    朴素贝叶斯的分类分为三个阶段:
    第一个阶段:(准备阶段)
    根据具体的情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程有重要影响,分类器的质量很大程度上由特征属性、特征属性划分、特征样本质量等决定。
    第二阶段:(分类器训练阶段)
    这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现概率及每个特征属性划分对每个类别的条件概率估计,记录结果。输入的是特征属性和驯良样本,输出的是分类器。这一阶段是机器运算阶段,直接由前面讨论的公式可以由机器进行计算。
    第三阶段:(应用阶段)
    这个阶段的任务是使用分类器对分类项进行分类,输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械阶段,由程序完成。

总结和评价
分类器的作用是最终正确的将给定的数据进行分类,分类的正确率是指分类器正确分类的项目占所有被分类项目的比例。
通常是通过使用回归测试来评估分类器的准确率,最简答的方法是构造完成的分类器队训练数据进行分类,然后根据结果给出正确率估计。但是如果全部将训练数据作为检测数据,可能会出现过拟合的现象,所以好的做法是将训练数据一分为二,用一部分构造分类器,然后用另一部分检测分类器的准确性。


猜你喜欢

转载自blog.csdn.net/xiao2cai3niao/article/details/78777556