金宇,王曉峰
(上海海事大學信息工程學院,上海201306)
隨著我國經濟的發(fā)展以及汽車保有量的增加,交通事故頻繁發(fā)生,交通安全問題也越來越受到人們的重視,交通事故的發(fā)生雖然具有很大的偶然性和隨機性,但其內在還是主要受到人、車、環(huán)境等因素的共同作用,通過對過往的數(shù)據(jù)來分析影響交通事故嚴重程度的因素,可以對以后道路安全駕駛起到良好的指引作用,為采取措施提供理論依據(jù)。
針對交通事故方面的研究,國內外許多學者都進入深入的研究,如苑春苗[3]提出了基于BP神經網絡的交通事故分析,并用靈敏度方法研究交通事故因素和嚴重程度的關系,孫軼軒[2]通過數(shù)據(jù)挖掘的方法對道路交通事故的致因機理進行分析,運用決策樹對交通事故進行了分類研究,建立了事故嚴重程度模型,AliTava?koliKashani[6]利用分類和回歸樹模型,假定交通事故的獨立變量和非獨立變量沒有關系,從而得出影響交通事故嚴重程度最重要的獨立變量,并得到在兩車道和三車道中,未系安全帶是影響嚴重程度最重要的因素。Caner Erden和Numan?elebi[5]利用粗糙集產生的決策規(guī)則來分析交通事故原因之間的聯(lián)系,大部分都是通過對事故表象的單因素進行孤立的分析,但是交通事故是多方面共同作用的結果,并且各個因素之間可能也是相互關聯(lián)的,而貝葉斯網絡能夠全面地揭示各個因素對交通事故的影響,以及各個影響因素之間的聯(lián)系,更適用于交通事故方面的研究。
貝葉斯網絡是把某個系統(tǒng)中涉及到的隨機變量,根據(jù)是否條件獨立繪制在一個有向無環(huán)圖中,是一種概率圖模型,根據(jù)概率圖的拓撲結構,考查一組隨機變量及n組條件概率分布。貝葉斯的有向無環(huán)圖的節(jié)點表示隨機變量,連接兩個節(jié)點的邊表示兩個隨機變量的條件依賴關系。貝葉斯公式便是貝葉斯網絡的基礎,由條件概率公式和全概率公式可以得到。
貝葉斯網絡的結構學習就是從給定的數(shù)據(jù)中學習出貝葉斯網絡中每一個節(jié)點之間的關系,只有確定了貝葉斯網絡的結構才能繼續(xù)學習貝葉斯網絡的參數(shù),目前常用的貝葉斯結構學習方法有以下幾種:K2算法、爬山法、模擬退火算法,以及抽樣算法等。其中MCMC抽樣方法是源于統(tǒng)計物理學和生物學的一類重要的隨機抽樣算法,MH抽樣算法是MCMC方法中常用的抽樣算法之一,Madigan等人將MH算法首次引進貝葉斯網絡的結構學習,該算法首先要構建一條馬爾可夫鏈,模擬一個收斂于玻爾茲曼的分布,基于“拒絕采樣”來接近平穩(wěn)分布p,算法每次根據(jù)上一輪的采樣結果xt-1來獲取候選樣本x*,但是候選樣本會有一定的概率不被接受,假定從xt-1到 x*的轉移概率為,其中是預先知道的先驗概率,是xt被接受的概率,當達到平穩(wěn)狀態(tài)p時有因此設置轉移概率能夠使馬爾可夫鏈達到平穩(wěn)過程。
Metropolis-Hastings算法
輸入:先驗概率Q(x*|xt-1)
1. 初始化x0
2. for t=1,2...do
3. 根據(jù)先驗概率選出候選樣本
4. 從均勻分布(0,1)范圍選出閾值
5. ifu≤A(x*|xt-1)then
6. xt=x*
7. else xt=xt-1
8. end if
9. end for
10.返回采樣出的樣本序列x1,x2,…,xn
貝葉斯網絡的參數(shù)學習是在貝葉斯網絡結構已經知道的情況下,基于數(shù)據(jù)對網絡中的各個屬性進行條件概率的計算,目前參數(shù)學習的主要方法有貝葉斯估計法和最大似然估計法,兩種估計方法都要滿足樣本是獨立同分布的,兩者不同之處在于貝葉斯估計還利用了參數(shù)的先驗知識,通過先驗概率得到參數(shù)的估計值,理論上比極大似然估計更準確,貝葉斯估計的基本思想是:給定完整的數(shù)據(jù)集d和一個含有未知參數(shù)的分布,θ是有先驗分布p(θ)的隨機變量,則p(θ|d)是θ的后驗概率,而貝葉斯參數(shù)學習的就是p(θ|d),因為Dirichlet分布的共軛性可以減少計算的復雜度,所以p(θ)通常都使用Dirichlet分布。
所以參數(shù)θ的后驗分布為:
本文的數(shù)據(jù)集來源于美國阿勒格尼縣2014年到2016年的82913條交通事故,表中屬性有受傷人數(shù)、是否有死亡、車輛類型、發(fā)生時間、光照強度、天氣狀況、路面狀況、碰撞地點、道路類型、是否飲酒、交通控制方式、是否撥打手機、是否為節(jié)假日、路口類型、碰撞車輛數(shù)目、首先對數(shù)據(jù)進行篩選,并對交通事故發(fā)生的層面進行多維度的分析,發(fā)現(xiàn)交通事故發(fā)生的原因主要集中在人為因素、環(huán)境因素和車輛因素等,理論上來說選取的屬性變量的越多,建模得到的結果更接近交通事故分析的機理,但是屬性變量的增多會增加建模的分析難度,為了平衡建模復雜度和預測精度的關系,經過初步篩選,本文選取受傷人數(shù)和是否有人死亡作為決策變量,其他因素設置為屬性變量,給不同的屬性的不同取值設置編碼,為了符合建模要求,也將一些連續(xù)型的屬性處理成離散變量,詳細的編碼情況如下表所示,其中每一個屬性名稱都對應貝葉斯網絡中的一個節(jié)點。
表1 事故因素編碼表
基于MCMC算法,應用MATLAB的Full-BNT工具箱進行貝葉斯網絡結構的學習,首先導入事故的數(shù)據(jù)集,經過貝葉斯結構學習得到各個屬性的關聯(lián)矩陣,再對屬性進行篩選,根據(jù)關聯(lián)矩陣繪制出各個屬性之間的關系,最終確定了貝葉斯網絡的結構,屬性之間的關系如圖1所示。
圖1 貝葉斯網絡結構圖
1-是否用手機2-是否飲酒3-是否工作日4-光照條件5-路口類型6-碰撞地點類型7-路面狀況8-道路類型9-交通方式10-天氣11-車輛數(shù)12-受傷人數(shù)13-是否有死亡
已經得到貝葉斯網絡的結構,就可以應用貝葉斯估計對貝葉斯網絡進行參數(shù)學習,因為死亡人數(shù)與受傷人數(shù)的關聯(lián)比較大,所以本文主要分析了受傷人數(shù)以及是車輛碰撞數(shù)目兩個變量的參數(shù)學習效果。
表2 受傷人數(shù)與天氣之間的條件概率
首先分析的是交通事故受傷人數(shù)與天氣狀況之間的關系,也對比了貝葉斯網絡參數(shù)學習的結果和實際結果,可以發(fā)現(xiàn)貝葉斯網絡具有很高的精確度,依據(jù)表2可以發(fā)現(xiàn),天氣狀況良好時,并且發(fā)生交通事故時,沒有人受傷的概率是最小的,當天氣為下雪時,發(fā)生事故受傷比例越少,也從側面反映出當天氣狀況惡劣時,人們更注意自己的行車安全,從而發(fā)生事故時,相應的損失也會更少。
表3 道路類型、交通控制、車輛碰撞數(shù)目的條件概率
由表3可知,在道路類型一定情況下,當有交通控制時,雖然交通事故的數(shù)目減少,但是發(fā)生兩車碰撞的概率增加,單機動車發(fā)生事故的幾率大大減少,在交通控制一定的情況下,在國道和省道發(fā)生大型交通事故的可能性更大,這也符合人們一般的經驗常識,因此在國道和省道上行駛的車輛數(shù)目更多,應當更加注意交通控制的方式,減少事故發(fā)生的概率。
本文通過對以往歷史交通事故數(shù)據(jù)進行分析,得出交通事故是環(huán)境-人-車輛-道路多種因素共同作用的結果,通過多方面的分析和MCMC算法,選取合適的屬性,建立貝葉斯模型,用有向無環(huán)圖形象表示和挖掘出各個屬性之間的聯(lián)系,使之更符合人的思維特征和推理形式,體現(xiàn)了各個屬性之間的層次關系,對交通事故進行分析只是保證安全出行的一方面,更需要交管部門的監(jiān)管和駕駛員自身安全意識的提高,通過本文的分析,對以后指導交通駕駛和安全出行都提供了很好的借鑒意義。