鄭 濤, 夏東海, 徐 超
(武漢市消防支隊(duì)信息通信科, 湖北 武漢 430020)
近年來(lái),消防部隊(duì)已經(jīng)建立起一套比較完備的業(yè)務(wù)信息系統(tǒng).據(jù)不完全統(tǒng)計(jì),武漢市消防支隊(duì)日均業(yè)務(wù)數(shù)據(jù)生成備份量達(dá)6 GB左右,而一年產(chǎn)生的各種防滅火業(yè)務(wù)數(shù)據(jù)量高達(dá)2 TB以上.如何利用這些數(shù)據(jù)找出城市火災(zāi)發(fā)生規(guī)律和趨勢(shì)等,加強(qiáng)對(duì)工作的預(yù)測(cè)和研判,有針對(duì)性地調(diào)整工作重點(diǎn)以更好應(yīng)對(duì)日趨復(fù)雜的火災(zāi)形勢(shì),是目前消防信息化應(yīng)用所面臨的深層次課題.對(duì)119平臺(tái)的接處警數(shù)據(jù)的深度挖掘與利用尤為重要,因?yàn)榇祟悢?shù)據(jù)一般是由119系統(tǒng)平臺(tái)自動(dòng)生成的的大規(guī)模數(shù)據(jù),具有較高的原始真實(shí)性,是一類十分難得的數(shù)據(jù)分析大樣本.本文面向大量的119系統(tǒng)接處警數(shù)據(jù),使“死”的數(shù)據(jù)能夠自動(dòng)說(shuō)話,也就是構(gòu)建這樣一類數(shù)據(jù)推理模型,能夠自動(dòng)地通過(guò)數(shù)據(jù)表層挖掘出深層次的信息,從而形成基于接處警數(shù)據(jù)的一類經(jīng)驗(yàn)知識(shí),能夠指導(dǎo)日常的消防工作,尤其是火災(zāi)防控工作.
目前,用于自動(dòng)數(shù)據(jù)挖掘及數(shù)據(jù)自動(dòng)推理模型的方法主要有:最大熵、支持向量機(jī)、隱馬爾可夫等模型[1].其中,決策樹(shù)是最大熵方法中一類較成熟有效的方法,它利用信息增益尋找數(shù)據(jù)中最大信息熵的特性,并將其作為一個(gè)樹(shù)節(jié)點(diǎn),再根據(jù)其建立分枝,并利用遞歸的方法反復(fù)這一過(guò)程,最終形成整個(gè)決策樹(shù).在實(shí)現(xiàn)算法方面,當(dāng)前較有影響的決策樹(shù)算法是J.R.Quinlan的ID3算法以及據(jù)此發(fā)展起來(lái)的其他決策樹(shù)算法,比如C4.5,CART等[2,3].本文運(yùn)用該方法來(lái)建立119平臺(tái)接處警數(shù)據(jù)自動(dòng)推理模型,并給出該模型的實(shí)現(xiàn)算法.
設(shè)S是一個(gè)包含s個(gè)119接處警數(shù)據(jù)實(shí)例的集合,類別屬性有m個(gè)不同的值對(duì)應(yīng)于m個(gè)不同的類別Ci,i∈{1,2,3,…,m}.設(shè)si為類別Ci實(shí)例個(gè)數(shù),則對(duì)單個(gè)對(duì)象進(jìn)行分類的信息期望:
(1)
假設(shè)屬性A取v個(gè)不同的值{a1,a2,…,av}.將A作為根節(jié)點(diǎn)可將集合S劃分為V個(gè)子集{S1,S2,…,Sv},其中Sj包含了S集合中A取aj的所有實(shí)例.那么如果用A進(jìn)行分類,設(shè)sij為子集Sj中屬于Ci類別的實(shí)例數(shù),根據(jù)由A分類期望信息由下式給出:
I(s1j,s2j,…,smj).
(2)
其中,(s1j+s2j+…+smj)/s項(xiàng)為第j個(gè)子集的權(quán).E(A)結(jié)果越小,表示其子集劃分的越“純”,而對(duì)一給定子集Sj,其信息為
(3)
這樣利用屬性A對(duì)當(dāng)前分支進(jìn)行樣本集合劃分所獲得的信息增益為
Gain(A) =I(s1,s2,…,sm)-E(A).
(4)
同理,反復(fù)上述過(guò)程便可建立從根到分支直至葉的決策樹(shù),119平臺(tái)接處警數(shù)據(jù)被劃分為越來(lái)越“純”的不同屬性分類的信息,而這些深層次信息就“隱藏”在日積月累的大規(guī)模表層接處警數(shù)據(jù)中,將這些分析后所得的信息抽取出來(lái)即得到基于接處警數(shù)據(jù)的經(jīng)驗(yàn)知識(shí).
將1.1中的理論模型程序化,便得到119平臺(tái)接處警數(shù)據(jù)自動(dòng)推理模型的一般實(shí)現(xiàn)算法.
算法:(General_decision_tree)//根據(jù)給定數(shù)據(jù)集產(chǎn)生一個(gè)決策樹(shù)
輸入:接處警數(shù)據(jù),各屬性均取離散數(shù)值,可供歸納的修行屬性集:attribute_list
輸出:決策樹(shù)
處理流程:
Function General_decision_tree(samples, attribute_list)
{
new(N):/*創(chuàng)建一個(gè)新的節(jié)點(diǎn) N*/
if samples in 同一類 C
then N=leaf( )并返回;/*標(biāo)為節(jié)點(diǎn)*/
if attribute_list=null
then N=leaf( )并返回;/*標(biāo)為普通類*/
選擇attribute_list中具有最高信息增益的屬性test_attribute;
標(biāo)記節(jié)點(diǎn)V為test_attribute;
for each test_attribute中的已知值為a;
從節(jié)點(diǎn)N長(zhǎng)出一個(gè)條件為test_attribute=a的分枝;
設(shè)Si是samples中test_attribute=a的樣本集合;
if Si=null
then 增加一個(gè)葉節(jié)點(diǎn),標(biāo)記為leaf()
else 增加一個(gè)節(jié)點(diǎn)由General_descision_tree(Si,attribute_list-list_attribute)產(chǎn)生.
}
算法中samples為已知的接處警數(shù)據(jù)樣本,attribute_list為候選屬性集合,選擇信息增益最大的屬作為分類節(jié)點(diǎn),該屬性使得結(jié)果劃分中的樣本分類所需的信息量最?。?/p>
2.1.1樣本數(shù)據(jù)來(lái)源選取武漢市某消防支隊(duì)2007年至2012年間的119平臺(tái)接處警數(shù)據(jù)為數(shù)據(jù)源,除去其中非火災(zāi)的應(yīng)急救援?dāng)?shù)據(jù),共選取26 125起有效火災(zāi)接處警數(shù)據(jù)作為樣本數(shù)據(jù),均為Excel格式數(shù)據(jù).
2.1.2數(shù)據(jù)預(yù)處理由于所面臨的接處警數(shù)據(jù)是大規(guī)模的、海量的,而且可能存在無(wú)用、缺失、冗余數(shù)據(jù),所以,為了提高數(shù)據(jù)分析效率,有效減少技術(shù)工作量,需要對(duì)原始的接處警數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理.
1)數(shù)據(jù)抽取 在119平臺(tái)火災(zāi)接處警數(shù)據(jù)中含有諸多數(shù)據(jù)屬性,而特定分析要求需要的關(guān)鍵屬性均不同.例如,需要對(duì)重大亡人火災(zāi)進(jìn)行挖掘分析時(shí),火災(zāi)序號(hào)、出動(dòng)消防隊(duì)名稱、著火單位、戶主名等屬性會(huì)增加計(jì)算的時(shí)間和工作量,但對(duì)分析結(jié)果影響較小.又如,消防監(jiān)督部門(mén)對(duì)社會(huì)單位實(shí)行分級(jí)管理,分級(jí)管理這個(gè)屬性對(duì)分析結(jié)果無(wú)明顯影響,因此在分析計(jì)算過(guò)程中可以將這些屬性值去除,直接從數(shù)據(jù)中抽取出與分析任務(wù)相關(guān)的數(shù)據(jù)屬性.
2)數(shù)據(jù)清洗 在119平臺(tái)火災(zāi)接處警數(shù)據(jù)中,一些關(guān)鍵的數(shù)據(jù)屬性可能存在數(shù)據(jù)缺失,對(duì)于這些空缺,可以通過(guò)數(shù)據(jù)清洗來(lái)處理和填補(bǔ).在數(shù)據(jù)清洗時(shí),如果數(shù)據(jù)量較小,可按照數(shù)據(jù)庫(kù)的中值分布來(lái)填補(bǔ)缺失值;如果數(shù)據(jù)量較大,就用常量來(lái)代替缺失值[4].本文中所使用的數(shù)據(jù)來(lái)源于《全國(guó)火災(zāi)統(tǒng)計(jì)管理系統(tǒng)》,該系統(tǒng)由基層消防中隊(duì)填報(bào),并經(jīng)大隊(duì)、支隊(duì)、總隊(duì)、公安部消防局層層檢查,數(shù)據(jù)缺失較少,可信度較高,一些數(shù)據(jù)缺失值可以采用常量來(lái)填補(bǔ).
3)數(shù)據(jù)規(guī)范 為了方便分析,需要對(duì)數(shù)量型和描述型數(shù)據(jù)進(jìn)行統(tǒng)一規(guī)范,例如,將數(shù)量型數(shù)據(jù)按照一定規(guī)則離散化成若干個(gè)區(qū)間型數(shù)據(jù)[5],如將起火時(shí)間劃分成兩類,白天和夜晚;到場(chǎng)出動(dòng)情況根據(jù)時(shí)間劃分成3種情況:10 min以上到場(chǎng),5~10 min到場(chǎng),5 min以內(nèi)到場(chǎng);過(guò)火面積大小劃分成3種情況:大于1 000 m2,100~1 000 m2,100 m2以內(nèi)等.表1為經(jīng)過(guò)數(shù)據(jù)預(yù)處理后得到的16組實(shí)例數(shù)據(jù).
按照2.1中的方法,自頂向下建立決策樹(shù),首先對(duì)經(jīng)過(guò)數(shù)據(jù)預(yù)處理的火災(zāi)接處警情況信息集(表1),以“一般火災(zāi)”和“較大火災(zāi)”的火災(zāi)事故等級(jí)屬性為基本屬性來(lái)構(gòu)造決策樹(shù)模型.具體步驟如下:
假設(shè),樣本集合的屬性為“火災(zāi)事故等級(jí)”,有兩個(gè)取值“一般火災(zāi)”、“較大火災(zāi)”,M=2,設(shè)C1對(duì)應(yīng)“一般火災(zāi)”類別,C2對(duì)應(yīng)“較大火災(zāi)”類別.為計(jì)算每個(gè)屬性的信息增益,利用式(1)計(jì)算出期望信息.
1)對(duì)給定樣本分類所需的期望信息 由于初始時(shí)刻屬于C1:“一般火災(zāi)”類和C2:“較大火災(zāi)”類的實(shí)例個(gè)數(shù)分別為6個(gè)和10個(gè),對(duì)6個(gè)C1類和10個(gè)C2類分別有:
I(s1,s2)=I(6,10)=
表1 火災(zāi)接處警情況信息集
2)各屬性熵的計(jì)算A1=“著火時(shí)間”,其取值為:v1=白天,v2=夜晚,在A1處取值“白天”的實(shí)例有7個(gè),取值“夜晚”的例子9個(gè),故
取值為“白天”的7個(gè)例子中有4個(gè)C1類(一般火災(zāi)),有3個(gè)C2類(較大火災(zāi)),故
所以“著火時(shí)間”這一屬性的熵為
以此類推可以計(jì)算其他屬性的熵.
3)計(jì)算信息增益A1=“著火時(shí)間”上分枝的信息增益為:Gain(A1)=I(6,10) -E(A1)=0.954-0.861=0.093.
同理,可得出表中其他各屬性的期望信息和信息增益值,如表2所示.根據(jù)算法,可以看出,屬性“起火場(chǎng)所”的信息增益最大,即“起火場(chǎng)所”最“純”,所以選擇“起火場(chǎng)所”作為分類節(jié)點(diǎn),即先按“起火場(chǎng)所”進(jìn)行劃分,再遞歸調(diào)用前述過(guò)程.
表2 根節(jié)點(diǎn)期望信息和信息增益表
4)建立樹(shù)根和分枝 選擇“起火場(chǎng)所”作為分類節(jié)點(diǎn),有5個(gè)分枝,生成決策樹(shù)(圖1).下面對(duì)圖1中的葉結(jié)點(diǎn)1進(jìn)行分類.
圖 1 根節(jié)點(diǎn)分類決策樹(shù)
由表3可知,屬于C1:“一般火災(zāi)”類和C2:“較大火災(zāi)”類的實(shí)例個(gè)數(shù)分別為1和7,所以開(kāi)始時(shí)的期望信息為:
表3 葉結(jié)點(diǎn)1所包含的數(shù)據(jù)集
I(s1,s2)=I(1,7)=
所以如果選取“著火時(shí)間”作為分類屬性,可以看到其取值全部為“夜晚”表示這一支比較純,沒(méi)有分下去的必要,其信息增益Gain (著火時(shí)間)為0.
選取“到場(chǎng)出動(dòng)情況”作為測(cè)試屬性,則熵為:
Gain(到場(chǎng)出動(dòng)情況)=I(1,7) -
E(到場(chǎng)出動(dòng)情況)= 0.542-0.248=0.293,
以此類推可以計(jì)算其他屬性期望信息和信息增益值,如表4所示.
表4 葉節(jié)點(diǎn)1期望信息和信息增益表
可以看出,屬性“到場(chǎng)出動(dòng)情況”的信息增益最大,所以應(yīng)該選擇“到場(chǎng)出動(dòng)情況”作為分枝屬性,將結(jié)點(diǎn)1分為兩個(gè)子集,擴(kuò)展后的決策樹(shù)見(jiàn)圖2.
圖 2 結(jié)點(diǎn)1擴(kuò)展后的決策樹(shù)
按照上述思路向下遞歸延伸,即對(duì)節(jié)點(diǎn)2分類,得到最終的決策樹(shù).如圖3所示.
圖 3 ID3算法生成的最終決策樹(shù)
根據(jù)最終決策樹(shù)從根結(jié)點(diǎn)到葉結(jié)點(diǎn)的路徑及數(shù)據(jù)集所包含記錄信息,可以得出以下經(jīng)驗(yàn)知識(shí):當(dāng)起火場(chǎng)所為商圈娛樂(lè)性場(chǎng)所或多合一場(chǎng)所,火災(zāi)事故等級(jí)為較大火災(zāi),而起火場(chǎng)所為住宅居民樓則火災(zāi)事故等級(jí)為一般火災(zāi);當(dāng)起火場(chǎng)所為廠礦企事業(yè)單位,著火季節(jié)為秋冬季時(shí)為較大火災(zāi),而著火季節(jié)為春夏季時(shí)則一般火災(zāi);當(dāng)起火場(chǎng)所為生產(chǎn)經(jīng)營(yíng)場(chǎng)所,10 min以上消防隊(duì)才到場(chǎng)的火災(zāi)事故等級(jí)為較大火災(zāi),5~10 min到場(chǎng)的防火設(shè)備狀況不明的火災(zāi)事故等級(jí)為較大火災(zāi),防火設(shè)備狀況良好的火災(zāi)事故等級(jí)為一般火災(zāi).知識(shí)化表示如下:
1)IF(起火場(chǎng)所=住宅居民樓) THEN(火災(zāi)事故等級(jí)=一般火災(zāi));
2)IF(起火場(chǎng)所=商圈娛樂(lè)性場(chǎng)所 OR 多合一場(chǎng)所) THEN(火災(zāi)事故等級(jí)=較大火災(zāi));
3)IF(起火場(chǎng)所=廠礦企事業(yè)單位 AND 防火設(shè)備狀況=未通過(guò)消防檢測(cè)) THEN(火災(zāi)事故等級(jí)=較大火災(zāi));
4)IF(起火場(chǎng)所=廠礦企事業(yè)單位 AND 防火設(shè)備狀況=狀況良好或不明) THEN(火災(zāi)事故等級(jí)=一般火災(zāi));
5)IF(起火場(chǎng)所=生產(chǎn)經(jīng)營(yíng)場(chǎng)所 AND 到場(chǎng)出動(dòng)情況=10 min以上) THEN(火災(zāi)事故等級(jí)=較大火災(zāi));
6)IF(起火場(chǎng)所=生產(chǎn)經(jīng)營(yíng)場(chǎng)所 AND 到場(chǎng)出動(dòng)情況=5至10 min AND 防火設(shè)備狀況=狀況不明) THEN(火災(zāi)事故等級(jí)=較大火災(zāi));
7)IF(起火場(chǎng)所=生產(chǎn)經(jīng)營(yíng)場(chǎng)所 AND 到場(chǎng)出動(dòng)情況=5至10 min AND 防火設(shè)備狀況=狀況良好) THEN(火災(zāi)事故等級(jí)=一般火災(zāi));
在本實(shí)例中,雖然樣本數(shù)量和屬性還不夠多,分析所得的知識(shí)還不夠詳細(xì),但是可以從上述結(jié)論看出,對(duì)于客觀準(zhǔn)確地分析一個(gè)地區(qū)發(fā)生較大火災(zāi)事故發(fā)生的可能潛在因素,如人員密集場(chǎng)所、著火季節(jié)、消防人員到達(dá)火災(zāi)現(xiàn)場(chǎng)時(shí)間等,具有重要的借鑒意義.因此,該自動(dòng)推理模型能夠?qū)崿F(xiàn)對(duì)接處警數(shù)據(jù)的解析,并自動(dòng)從中得到所需的經(jīng)驗(yàn)知識(shí).從理論上講,只要在實(shí)際應(yīng)用中接處警數(shù)據(jù)量夠大,記錄屬性夠豐富,那么,該基于決策樹(shù)的自動(dòng)推理模型的數(shù)據(jù)解析效果就十分明顯,所獲得的知識(shí)信息就越豐富,也就能夠有效的預(yù)判火災(zāi)形勢(shì),科學(xué)指導(dǎo)消防工作,有力遏制較大火災(zāi)事故的發(fā)生.
本文探討了利用決策樹(shù)方法來(lái)建立一種數(shù)據(jù)自動(dòng)推理模型,針對(duì)每日產(chǎn)生的大規(guī)模119平臺(tái)接處警數(shù)據(jù)進(jìn)行自動(dòng)分析,使日積月累的“死”數(shù)據(jù)“活”起來(lái),實(shí)現(xiàn)了大樣本數(shù)據(jù)的自動(dòng)解析和知識(shí)挖掘,通過(guò)對(duì)實(shí)例數(shù)據(jù)的分析可以看出,該模型及算法是可行的,能夠較好地解釋和發(fā)現(xiàn)重大亡人火災(zāi)的潛在規(guī)律.但由于實(shí)例分析中數(shù)據(jù)量較小、數(shù)據(jù)類型和結(jié)構(gòu)較單一,未能很好地反映出該推理模型的全部效果和可能存在的問(wèn)題,因此,下一步需要針對(duì)目前已開(kāi)發(fā)和投用的一體化消防業(yè)務(wù)信息系統(tǒng)特點(diǎn),根據(jù)不同類型數(shù)據(jù)屬性,來(lái)進(jìn)一步改進(jìn)和優(yōu)化該數(shù)據(jù)自動(dòng)推理模型及算法,從而提高數(shù)據(jù)解析和知識(shí)發(fā)現(xiàn)的計(jì)算效率,立足119平臺(tái)接處警的原始真實(shí)數(shù)據(jù),更好地服務(wù)于當(dāng)前消防工作的研判預(yù)測(cè).
[參考文獻(xiàn)]
[1] 王 莉.ID3算法的研究與應(yīng)用[J].福建電腦,2010(1):11-12.
[2] 黃愛(ài)輝,陳湘濤.決策樹(shù)ID3算法的改進(jìn)[J].計(jì)算機(jī)工程和科學(xué),2009,31(6):109-111.
[3] 林 震,王 威.基于決策樹(shù)的數(shù)據(jù)挖掘算法優(yōu)化研究[J].現(xiàn)代計(jì)算機(jī),2012(10):20-23.
[4] 陳輝林,夏道勛.基于CART決策樹(shù)數(shù)據(jù)挖掘算法的應(yīng)用研究[J].煤炭技術(shù),2011,30(10):164-166.
[5] 楊 靜,張楠男,李 健,等.決策樹(shù)算法的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):114-116.