童 威,黄启萍
(1.安徽文达信息工程学院 计算机工程学院,安徽 合肥 231201;2.安徽电气工程职业技术学院 计算机工程学院,安徽 合肥 230051)
随着社会经济的迅速发展,传统的消防安全体系问题越来越突出。据公安部消防局公布数据,2017年全国共接报火灾25.9万起,已核直接财产损失31.2亿元[1]。其中,建筑物火灾相对多发,伤亡人数最多。解决城镇建筑物的消防安全问题,一方面通过公安消防部门的现场勘查,发现火灾安全隐患问题,另一方面通过市民投诉电话来随机检查非法建筑物。这2种做法都存在缺陷,前一种做法成本太高,后一种做法效率低下[2]。
文献[3]提出一种基于视频图像的烟雾特征提取方法,利用该方法可以准确探测出火灾烟雾,并根据烟雾进行火灾检测,该方法具有较高的检测效果,但是凭借烟雾浓度进行火灾检测,无法有效实现灾害发生前的火灾消防预测,其安全性能较差;文献[4]提出了一种基于光流法和纹理特征的火灾烟雾检测算法,可用于火灾早期报警,通过建立皮拉米德图像,并利用LBP和LBPV提取不同层次的静态纹理特征。由于烟雾运动的湍流特性,烟雾方向是一致的,采用光流矢量分析判断可疑区域轮廓的运动方向,降低了计算复杂度,最后,利用支持向量机识别烟雾图像的纹理特征,仿真结果表明,该算法能够保证算法的及时性,但其准确性有待提高。
判断一栋建筑物可能发生火灾的相关常见因素包括:建筑物的类型、高度、施工材料、建筑的新旧程度、建筑物位置、年份等。对某建筑物可能发生火灾的预测,大多以贝叶斯算法为主,但现有的朴素贝叶斯算法在针对分类预测研究时,最大的缺陷在于各特征属性之间相互独立,没有考虑到每个属性的权重问题,从而影响了分类预测的性能[5]。本文基于朴素贝叶斯算法,对每一个特征属性附加权重系数,以此提高预测的正确率。通过本文的研究,将建筑物信息与违法改建相关因素进行联系,希望可以作为设计消防检测系统的基础,将某地区的建筑划分为多个风险等级,以帮助消防监察单位决定每次的常规检查路线和重点检查单位。
贝叶斯学习方法通过概率规则进行理论学习和推导,采用概率来表示所有结论的不确定性,表示出对不同结论可能性的信任程度,其概率的计算过程极为复杂。朴素贝叶斯算法简化了贝叶斯学习方法所需要的计算,在某些特定的领域,其性能可以比得上机器学习中的其他高级算法,如:神经网络[6]、决策树[7]等。但该算法更容易使用,并且速度较快[8]。
将给定的全概率事件划分m个类C1,C2,…,Cm。通过输入不确定分类的训练样本Y,该算法输出Y属于具有最高后验概率的类[9],即朴素贝叶斯算法预测Y属于类Ci,令
P(Ci|Y)>P(Cj|Y),1≤i,j≤m,j≠i
(1)
式中:P表示先验概率。这样,最大化P(Ci|Y)。其P(Ci|Y)最大的类Ci称为最大后验假设。
朴素贝叶斯模型假设数据的所有特征属性之间是独立的[10],这样可以降低计算的复杂度和难度[11]。在多维向量情况下,联合概率正好是每个单独特征概率的乘积,因此可以得出贝叶斯分类器的分类过程为[12]
(2)
但是,朴素贝叶斯算法的缺点也显而易见,就是特征属性之间是相互独立的,没有关联。在所设计的消防检测框架中,各特征属性之间必然会存在一定的关联,如建筑物所处的位置与建筑物的年份,区域居民经济收入和建筑物年份等的强弱关联。因此,如果不考虑特征属性量化权重的问题,朴素贝叶斯算法对于此类问题的预测效果是不理想的。
对朴素贝叶斯算法进行改进,根据每个特征属性对类别变量影响的关联度来量化相应的权重值,以此来提高朴素贝叶斯算法的性能。
设权重系数向量W=(W1,W2,…,Wm),其中m为样本特征属性。加权的朴素贝叶斯算法的核心问题就是特征属性权重系数Wm的计算[13-14]。本文采用信息增益算法来量化每个特征属性的权重系数[15-16]。信息增益是计算特征属性与类别属性之间的不确定度,当信息增益值越大,则这个特征属性对分类的信息量就越大,相应的权重系数也就越大,反之亦然[17-18]。权重系数Wm对应特征属性集合A=(A1,A2,…,Am)的计算公式为
(3)
式中:G(Ak)是第k个特征属性与类别属性之间的信息增益值。
利用属性加权的信息增益算法,计算出每个特征属性与类别之间的信息增益[19],然后利用式(3)进行归一化处理,计算过程如下。
输入:样本集S=(S1,S2,…,Sn),n为样本个数。
(2) 计算特征属性信息熵E(Ak)。
(3) 计算特征属性与类别属性的信息增益G(Ak)=I(C1,C2,…,Ck)-E(Ak)。
(4) 利用式(3)计算权重向量W=(W1,W2,…,Wm),其中,m为特征属性个数。
输出:权重向量W=(W1,W2,…,Wm)。
有了属性权重系数以后,根据式(2)对朴素贝叶斯模型进行扩展得出加权朴素贝叶斯分类模型:
(4)
式中:Xk代表特征属性。
运用加权朴素贝叶斯算法,建立分类模型[20],模型的创建步骤如下。
(1)数据预处理。将训练样本和待分类样本中的缺失数据利用数据平滑、同类样本平均值等方法进行补齐,连续型数据通过等深划分、区间法、聚类法进行离散化。
(2) 加权计算。扫描所有训练样本数据,设置一个G(Ak)阈值(0.2)。分别计算各个特征属性的信息增益,删除所有小于预定阈值的特征属性,保留满足阈值的信息增益的属性。按照上文的特征属性权重定义方法计算每个属性X的权值Wm。
(3) 计算概率。根据训练数据集S,针对每个属性X的属性值,每个类别Ck,计算所有的先验概率P(Xk|Ck),即类别Ck出现的概率和在类别Ck下属性Xk出现的概率。
(4) 分类器构造。生成经加权的朴素贝叶斯概率表及属性权值列表。
(5) 分类。调用概率表和属性权值列表,得出分类结果。
为了验证基于改进朴素贝叶斯算法在消防检测中的有效性,提取了UCI的10个数据集,该数据集包含了模拟建筑物的特征信息。其中属性最多的数据集有24个特征属性,14个离散属性,10个连续属性。所有数据集共20 470条数据,分别利用K最近邻(KNN,K-NearestNeighbor)分类算法、决策树算法(采用C4.5算法)、支持向量机(SVM,support vector machine)算法、朴素贝叶斯算法和加权朴素贝叶斯算法对建筑物的火灾隐患进行检测,将检测的准确率进行对比。所有实验均在Weka平台上完成。将每个数据集分成10份,其中训练数据有9份,测试数据有1份,依次进行测试实验。每次实验得出各种分类算法相应的准确率,10次结果的平均值作为对算法精度的估计,实验结果如表1所示。
表 1 不同算法的消防隐患检测准确率
根据表1的实验结果,对加权朴素贝叶斯算法做如下分析。
(1) 在表1中的10个UCI数据集中,本文的加权朴素贝叶斯算法准确率高于其他算法的有9个,从数据集的特点来看,本文加权朴素贝叶斯算法更适合处理特征属性较多,且属性间依赖关系较强的数据集。对于符合这些特点的数据集,它的分类效果更好。
(2) 在公用建筑数据集上,特征属性间的依赖关系较弱,依照本文的属性加权算法得到的特征属性与分类属性间的相关度差异较小,导致各个特征属性的权重系数基本相同。故改进后的分类效果与朴素贝叶斯算法的准确率大致相同,且低于SVM分类算法的分类准确率。
(3) 从实验数据可以看出,大部分情况下,加权朴素贝叶斯算法的准确率要高于SVM算法,这充分说明了在消防检测系统中,针对建筑物的特征属性加权问题非常重要,对分类效果的影响很大。它避免了特征属性对分类属性贡献相同的弊端。因此,在朴素贝叶斯算法的基础上增加特征属性权重,以提高分类准确率是非常必要的。
特征属性的独立性假设,在很大程度上限制了朴素贝叶斯算法在分析处理多特征属性相互依赖问题的预测准确率。本文给出一种属性加权的朴素贝叶斯分类器,用于实现建筑物消防检测框架。利用原有的建筑物特征属性信息,通过信息增益算法增加每个特征属性的权重,以此替代传统的朴素贝叶斯算法。通过实验表明,对比朴素贝叶斯算法、KNN算法、C4.5算法、SVM算法等常用分类算法,加权朴素贝叶斯算法提高了朴素贝叶斯算法的分类性能,从而证明此算法在消防检测系统中的有效性和可行性。今后,改进加权方法和完善消防检测系统将是一个重要的研究方向。