Fellows:劉憲錡、林立哲、郭冠伶
Mentor:謝宗震
Project Manager:莊靜雅
Project Partner:高雄市政府消防局
Introduction
高雄市消防局自成立以來,咸奉「預防火災」、「搶救災害」、「緊急救護」之消防三大任務及其他為民服務事項,共同努力。為達成積極主動為民服務之使命,消防員24小時受理民眾需求並隨時出勤執行各項救災救護任務。每次的出勤任務都代表著人民傷亡或財物損失,同時也耗費國家的人力資源,卻無法徹底解決問題,因此預防火災便成了消防局積極推動的首要目標。
Problems
有鑑於住宅火災佔總案件數一半以上,高雄市消防局加強宣導住宅社區火災預防措施。但如何善用有限人力與資源,進而顯著降低火災發生頻率,一直讓消防局苦無對策。於是消防局與資料英雄合作,冀望能從建築物角度出發,彙整住戶與周遭環境資料以建構出建物火災風險預測模型,進而找出高風險住宅戶做居家訪視與社區消防觀念宣導,此外,本專案交叉分析不同數據,希望從中闡述新穎觀點以作為決策參考。
Method
資料處理
為評估建物火災機率,建築物火災風險地圖是以建物門牌號作為每一筆資料的索引,在高雄市政府機關大力的配合下,取得自稅捐處取得十三萬餘筆左營區地價資料、地政局建照十三萬餘筆建照資料。透過 Python 與 SQLite 反覆比對地址以及對地址進行正規化處理後,我們合併出約八萬九千筆資料。另外,根據金門大學火災預測碩士論文(link),承蒙社會局提供左營區身障、低收、獨居老人資料,加上消防局的狹小巷弄、火災報案紀錄,我們整理出以下特徵值。
資料處理實際上是這次專案花掉最多時間的地方,因各處室資料格式繁紊不一,資料整併窒礙難成。冀望將來,市府能將跨處室之集中資料倉儲作為資訊基礎建設之基石。
平衡學習 & 非平衡學習
在訓練建物火災機率模型初期,我們嘗試以深度學習演算法建置模型。我們得到 99.9% 的準確度,而後發現模型預測所有的建物都不會失火,因訓練資料中未失火的建物佔絕大多數,僅約四百筆建物曾失火,模型無法學習到失火建物的特徵,故模型猜測沒失火,且可藉此得到高準確度。
建物火災機率預測實為典型的非平衡學習,而準確度之於非平衡學習不是個好的指標。我們發現我們的初期模型在召回率方面的表現非常差。參考過往文獻後,我們決定以 BalanceCascade 的方法來訓練模型。下面我們將一步步介紹如何實作 Blanace Cascade 方法。
首先,我們需要對所有未失火的建物進行分群。我們將建物分成 137 群,每一群擁有八百筆建物資料。為此,我們採用了kNN(k-Nearest Neighbors)演算法。