4.3贝叶斯分类
贝叶斯分类是一类分类算法的总称,这类分类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
贝叶斯定理:通常,事件A在事件B条件下发生的概率,与事件B在事件A条件下发生的概率是不一样的,然而两者有确定的关系。即P(Y|X) = P(X|Y) * P(Y) / P(X) 。
在贝叶斯分类器中,朴素贝叶斯最为常用,因此这里介绍朴素贝叶斯。它表示先验概率P(Y)、条件概率P(X|Y)、证据P(X)来表示后验概率P(Y|X)。
1、思想
(1)对于给出的待分类项,求解在此出现的条件下各个类别出现的概率,那个最大,就认为此待分类项属于哪个类别。
比如:你在街上看到黑人,你会猜测他来自非洲。
为什么?
因为黑人中非洲人的比率最高,当然他也可能是美洲人或亚洲人,
但在 没有其他可信情况下,我们会选择条件概率最大的类别,这样就是朴素贝叶斯思想基础。
(2)朴素贝叶斯分类器建立在一个类条件独立性假设(朴素假设)的基础之上:
(3)类条件独立假设:给定类结点(变量)后,各属性结点(变量)之间相互独立。
①设条件概率P(Xk | Ci),其中X是样本,k是样本数量,C为类别,i为类别的数量
②该条件概率意思是每个样本在每个类别的条件概率。
③该条件概率可以通过训练数据集求得。
(4)求未知类别样本x得分类:
①可以先分别计算出x属于每一个类别Ci的概率P(x | Ci)*P(Ci)。
②然后选择其中概率最大的类别作为其类别。
2、步骤
①设x = { a1,a2,a3,...,am }为一个待分类项,而每个a为x的一个特征属性。
②有类别集合C = { y1,y2,y3,...,yn }。
③计算P(y1 | x),P(y2 | x),...,P(yn | x)。
④如果P(yk | x) = max{ P(y1 | x),P(y2 | x),...,P(yn | x) },则x ∈ yk。
本步骤关键:第③步的各个条件概率:
(1)找到一个已知分类的待分类集合,这个聚合叫做训练样本集。
(2)统计得到在各类别下各个特征的条件概率估计,即
①P(a1 | y1),P(a2 | y1),...,P(am | y1)
②P(a1 | y2),P(a2 | y2),...,P(am | y2)
③...
④P(a1 | yn),P(a2 | 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(aj | yi)(其中J从1到m)
(4)朴素贝叶斯分类流程图(暂不考虑验证)
由上图可以看出,朴素贝叶斯分类为如下三个阶段。
①第一阶段:准备工作阶段。
这个阶段的任务是为朴素贝叶斯分类作必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这个阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段。其质量对整个过程有重要的影响。分类器的质量很大程度上有特征属性,特征属性划分及训练样本质量决定。
②第二阶段:分类器分类阶段。
这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和样本样本,输出是分类器。这个阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。
③第三个阶段:应用阶段。
这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项和类别的映射关系。这一阶段也是机械性阶段,有程序完成。
3、总结
(1)朴素贝叶斯算法成立的前提是各属性之间相互独立。当数据集满足这种独立性假设时,分类的准确度较高,否则可能较低。另外该算法没有分类规则输出。
(2)由于贝叶斯定理假设一个属性值对给定类的影响独立于其他属性值,而此假设在实际应用中经常不独立,因此其分类准确率有可能会下降。为此出现了许多降低独立性假设的贝叶斯分类算法。如:TAN算法和贝叶斯网络分类器。
4、优缺点
(1)优点:简单、高效、健壮。
①面对孤立的噪声点,朴素贝叶斯分类器是健壮的,因为在从数据中估计条件概率时,这些点被平均。
②另外,朴素贝叶斯分类器也是可以处理属性值遗漏问题。
③而面对无关属性,该分类器依然是健壮的,如果Xi是无关属性,那么P(Xi | Y)几乎变成了均匀分布,Xi的类条件概率不会对总的后验概率的计算产生影响。
(2)缺点:
相关属性可能会降低朴素贝叶斯分类器的性能,因为对这些属性,条件独立的假设已不成立。