2024 國道智慧交通管理創意競賽:交通事故處理時間預測專案

2024 國道智慧交通管理創意競賽:交通事故處理時間預測專案

2024 國道智慧交通管理創意競賽:交通事故處理時間預測專案

本次專案旨在分析 2023 年台灣國道交通事故資料,並預測 2024 年 1–2 月事故的處理時間。我們主要運用資料前處理、特徵工程與機器學習模型(LSTM)來達成目標。

一、資料前處理與整合

資料前處理是確保模型效能的關鍵步驟。面對來自高公局的原始資料,我們進行了以下處理:

  • 欄位數量一致化:
    訓練資料(2023年)有 49 個欄位,測試資料(2024年 1–2月)有 50 個欄位,主要差異在於測試資料多了一個「分局」欄位。

我們透過觀察「簡訊內容」與「分局」之間的對應關係,建立對應字典:

{1:北控,2:中控,3:南控,4:屏控,}

利用「簡訊內容」的前四個字元來回補訓練資料中的「分局」欄位,使得兩份資料的欄位數量一致。

為方便後續處理,我們在訓練與測試資料中新增了 “TAG” 欄位,然後將兩份資料合併。

  • 異常值與隱藏字元清理:
    資料中存在 #VALUE!、#REF! 等異常值以及換行符號、引號等隱藏字元。

透過自定義 clean_string 函數,將這些異常字元替換為 'OTHER',並移除換行符號與引號,確保資料的乾淨度。

  • 遺失值回補:
    不同分局填寫資料的完整性不一,例如「事故類型」欄位常有遺失值。

我們透過分析「簡訊內容」中的關鍵字,判斷並回補了部分遺失的「事故類型」資料。

  • 內容標準化與簡化:
    為降低分析複雜度,我們將部分欄位的內容進行了統一與群組化。

例如,「肇事車輛」欄位有三十多種車種,我們將其群組化以簡化分析。

類似地,「國道名稱」與「方向」等欄位也進行了標準化處理。

此外,根據「簡訊內容」前四個字元,我們也回補了測試資料中缺失的「分局」資訊:

mes_to_number = {    '北控通報': 1,    '中控通報': 2,    '高公局中': 2,    '南控通報': 3,    '高公局南': 3,    '高公局北': 1,    '坪控通報': 4,    '北通報3': 1,    '中控通2': 2,}df['分局'] = df['簡訊內容'].str[0:4].map(mes_to_number)

二、資料重塑與特徵工程

為了更有效地進行模型訓練,我們對資料結構進行了調整,並提取了關鍵特徵:

  • 車輛資訊重塑:
    原始資料以寬表(wide table)形式儲存車輛資訊,且不同事故的車輛數量不一,不利於模型訓練。

我們選擇只記錄發生事故的車輛總數,並將先前群組化的車輛類型以百分比形式表示,記錄單次事故中不同車輛類型的佔比。這樣不僅方便圖表分析,也更適合機器學習模型的輸入。

  • 衍生特徵提取:
    從現有欄位中提取新的、更有意義的特徵。

例如,從「死亡」與「受傷」人數中衍生出布林(Boolean)類型的特徵:

  • is_death:若「死亡」人數不為 0,則為 True,否則為 False。
  • is_injury:若「受傷」人數不為 0,則為 True,否則為 False。
df['is_death'] = df['死亡'] != 0df['is_injury'] = df['受傷'] != 0
  • 冗餘欄位刪除:
    移除已經不再需要的原始欄位,以減少雜訊並降低模型訓練的複雜度。

三、資料探索與洞察

經過資料前處理後,我們對資料進行了初步探索,以了解事故特徵及處理時間的影響因素:

  • 處理時間分佈:大多數事故的處理時間都非常短。
  • 事故類型與時間分佈:
    事故類型分為 A1(死亡事故)、A2(受傷事故)和 A3(僅財損事故),嚴重程度由高到低。

A1 類死亡事故的高峰期主要發生在清晨。這可能是因為清晨車速較快,且視線不佳,一旦發生事故,後果會相對嚴重。

A3 類事故主要發生在早上七點到晚上六點的上班時段。這個時段的車流量較大,雖然事故基數高,但由於視線較佳,事故嚴重程度通常較低。

  • 處理時間的影響因素:
    事故嚴重程度:事故越嚴重,處理時間越長,這符合直觀認知。

  • 發生時段:清晨發生的事故處理時間相對較長,這可能與清晨時段處理量能較少有關。

四、機器學習模型與訓練

在機器學習階段,我們選擇了 LSTM (Long Short-Term Memory) 網路進行處理時間的預測,並採取了以下策略:

  • LSTM 應用:LSTM 是一種遞迴神經網路(Recurrent Neural Network),特別擅長處理序列資料,非常適合用於處理時間序列相關的預測任務。
  • 早停法 (Early Stopping):為避免模型過度擬合(overfitting),我們在訓練過程中使用了早停法。當模型在驗證集上的表現不再提升時,即停止訓練,以確保模型的泛化能力。
  • 中間層 (Hidden Layers):模型中設置了中間層,用於捕捉資料中更深層次的隱含特徵和複雜關係。
    這次競賽專案從資料清理、特徵工程到模型訓練,都展現了完整的資料科學流程。透過對國道交通事故資料的深入分析,我們不僅理解了事故發生的模式,也成功地建立模型來預測事故處理時間,為智慧交通管理提供了有價值的洞察。

Comments

Loading comments…

Leave a Comment