第三章 k-NN 模式構建
3.1 k-NN 模式介紹
3.1.1 k-NN 資料分群
在建立預測模式前,首先要做好分群的動作,當接收到一筆即時資料,
能夠利用較短時間在龐大的資料庫中搜尋需要的歷史資料,減少比對時間,
迅速將預測結果提供給用路人。因此在建立k-NN 預測模式前,做好歷史資 料分群是首要工作,研究文獻中有依照星期別、季節、或是將每天視為一 個分群,或是根據資料分析來找出明顯的特徵分群。若是按照每天的資料 作分群,可再將當天的交通狀況區分出尖峰與離峰交通狀態,或是將每周 的交通狀況區分出假日與非假日的交通趨勢,也可以將每季的交通狀況則 區分出不同季節的交通變化,如夏季的交通行為與冬季的交通行為就會有 所不同。
3.1.2 距離量度(Distance Metric)
在 k-NN 模式中,距離量度的主要功能為比對現況資料與歷史資料相近 程度的一種判斷工具。當距離量度小於門檻值,則可判斷此筆現況與歷史 資料相類似,相反的,當距離量度大於某門檻值,則判斷此筆現況資料與 歷史資料差異較大。距離量度較常見的主要有下列三種,分述如下:
(一) 歐幾里得距離(Euclidean distance)
設有 n 個事物,每個事物有 m 個屬性,則第 i 個事物與第 j 個事物間的 歐幾里得距離如式 3-1 所示:
3‐1
(二) 馬式距離 (Mahalanobis distance, D
2)
馬式距離D
2可用矩陣如式 3-2 來表示:
上式中,
C
W為聯合組內共變數矩陣(pooled within-group covariance matrix),馬式距離
D
2是歐幾里得距離平方的一種引申:3‐3
d
ij2X
iX
j ’X
iX
j/
D
ij2X
iX
j ’C
W‐1X
iX
j3‐2
i1
1
,
i22 ,
i33 , .…,
im1
1
2
2
意即,在求
d
ij2時,C
W‐1C
WI
(單元矩陣)。換言之,當各軸的單位長度相 等,且各軸互為垂直時,歐幾里得距離平方與馬式距離D
2相同。(三)街道區距離 (city block distance)
設有 n 個事物,每個事物有 m 個屬性,則第 i 個事物與第 j 個事物間的 街道區距離可以如式3‐4 衡量:
3‐4
3.1.3 k 值設定
k 值的選定,是決定預測誤差大小的關鍵步驟,若是選取太大或太小的 k 值,容易產生較大的預測誤差,導致預測結果產生偏差,因此一般研究在 k 值設定這一步驟時,通常都是測試選取不同 k 值,找出各個 k 值所得應到 的誤差結果,由此取得使誤差最小的 k 值,以此設定為 k 值最佳解,如此 可確保預測誤差達到最小。
本研究 k 值的設定,主要先設定不同的門檻值來進行 k 值選取,當比 對的距離量度小於此門檻值,即判斷該筆資料與即時資料相近,依照各門 檻值內所得到的不同 k 值,找出該時段預測誤差最小的 k 值,以此作為該 時段的最佳 k 值解,由於每五分鐘即預測一次,k 值也隨著每五分鐘變化一 次,以找出適合該時段的最佳 k 值解。
| |
3.2 k-NN 模式構建
本研究構建之一旅行時間預測模式,為使用k-NN 方法依照上述 k-NN 流程步驟,構建高速公路旅行時間預測模式。首先,在資料分群的步驟,
依照星期別作區分,與即時資料進行比對,比對時,將同時段、兩兩固定 點之間的即時旅行時間資料與歷史旅行時間資料互相作比對,找出 k 筆最 鄰近的歷史旅行時間資料,將這 k 筆旅行時間資料依照距離量度的大小作 加權平均,以此輸出旅行時間預測值。
研究將針對各時段的 k 值進行分析,找出 k 值最佳解。以下將相關預 測步驟進行說明,本研究k-NN 模式構建之相關流程可表示如圖 3.2 所示。
圖 3.2 k-NN 模式構建流程圖 即時旅行時間資料
(時間 t)
比對即時資料與歷史資料
找出該時段的 k 值 最佳解 歷史旅行時間
資料庫
資料庫進行 分群處理
分群後的歷史旅 行時間資料庫
將 k 筆歷史資料作 加權平均
輸出旅行時間預測值
(時間 t) t t 1
選取 k 筆歷史資料
而本研究 k-NN 模式構建流程運作主要可分為下列五個步驟,說明如下:
Step 2. 將歷史資料作分群
建構 k-NN 模式時需先將歷史資料作分群,當收到一筆即時資料時能 夠立即判斷資料屬於哪一分群,再比對即時資料與群中的歷史資料,如此 可減少比對時間,增加預測速度。本研究 k-NN 模式將依照不同的星期別 將資料作分群,將一周七天資料分成七群,若遇到特殊節日,須獨立出來 考慮。
Step 3. 比對即時資料與歷史資料
利用距離量度比對即時與歷史資料,以得到各筆歷史資料與即時資料 的差異程度。本研究的距離量度採用歐幾里德距離(Euclidean Distance)算 法,比對與即時資料同星期別、前後半小時的歷史資料,將兩兩固定點間 的即時旅行時間資料與歷史旅行時間資料,依照歐幾里得距離方法作平方 差加總,找出該分群資料庫中各筆歷史資料與即時資料的距離量度。
Step 4. 選取 k 筆資料
依照距離量度的大小排序,選取 k 筆最小距離量度的歷史資料,而 k 值設定方式,必須要找到 k 值最佳解,也就是讓預測誤差最小的 k 值解,
作為設定 k 值的條件。
Step 5. 利用加權法減少 k-NN 模式誤差
由於現況的旅行時間會與先前的旅行時間相關,但是隨著時間距離的 增加其影響程度越小,所以我們可以根據歷史資料距離即時資料的時間差 距或是距離量度的大小,將這 k 筆資料加入權重值做調整,以減少旅行時 間預測誤差。
Step 6. 輸出旅行時間預測值
將預測的旅行時間輸出,並將此旅行時間預測值存入歷史資料庫中,
提供給下一個時段的旅行時間預測模式作使用。
3.3 k-NN 模式範例說明
以下舉一範例作說明:要預測 2008/3/6(四)早上 8 點從 A 收費站出發到 B 收費站間的旅行時間,其中有五個固定點 x1、x2、x3、x4、x5,在早上 8 點一組收到兩點間即時旅行時間資料。
範例假設如下:
1. 歷史旅行時間資料庫內只有 2008 年 1、2 月份的資料。
2. 只搜尋同時段旅行時間資料。
在 2008/3/6(四)早上八點鐘收到即時旅行時間資料,若只搜尋同時段 旅行時間資料,也就是在比對歷史資料的時候,只比對 2008 年 1、2 月份 同星期別(禮拜四)早上八點鐘的資料。
3. 權重值皆設定為 1。
4. k 值設定為 3。
之後使用實際資料時會重新作設定。
圖 3.3 k-NN 範例路段示意圖
本範例將分成三個步驟來進行,說明如下:
A
收 費 站B
收 費 站x2 x3 x4
x1 x5
Step1. 比對即時資料與歷史資料
因為已將 1、2 月份歷史資料庫依照同星期別作好分群,因此,在比對 資料時只比對同時段的歷史資料,所以總共有 1/3(四)、1/10(四)、1/17(四)、
1/24(四)、1/31(四)、2/7(四)、2/14(四)、2/21(四)、2/28(四)這九天,
比對各偵測器間八點鐘的歷史旅行時間資料。
Step2. 找出各筆歷史資料的距離量度
各筆歷史資料的距離量度如表 3.2 距離量度資料表所示。
表 3.2 k-NN 距離量度資料表
時間單位:秒
各筆歷史資料與即時資料的距離量度算法如下所示:
1/3 : 280 200 370 250 390 290 350 260 181.9341
1/10 : 280 260 370 390 390 500 350 280 227.1563
時間
x1~x2 旅行時間
x2~x3 旅行時間
x3~x4 旅行時間
x4~x5
旅行時間 距離量度 1/3 AM 8:00 200 250 290 360 181.9341 1/10 AM 8:00 260 390 500 280 227.1563 1/17 AM 8:00 250 440 280 330 147.3092 1/24 AM 8:00 300 460 390 360 130.384 1/31 AM 8:00 280 300 500 420 187.3499 2/7 AM 8:00 400 360 250 380 110.4536 2/14 AM 8:00 350 500 400 290 198.2423 2/21 AM 8:00 290 470 390 300 171.4643 2/28 AM 8:00 330 360 330 410 181.9341 3/6 AM 8:00 280 370 390 350
…
2/28 : 280 330 370 360 390 330 350 410 181.9341
Step3. 選擇 k 筆資料
因為 k 值設定為 3,所以從距離量度中篩選最小的三筆,分別為 1/17、
1/24、2/7 這三天。
可得:
VD1~VD2 旅行時間為:(250+300+400)/3=316.67(秒)≒5.28(分鐘)。
由於每五分鐘可收到一筆即時資料,而 x1~x2 的旅行時間已超過五分 鐘,因此 x2~x3 的旅行時間必須搜尋下一時段(8:05)的旅行時間資料如表 3.3 所示。
表 3.3 8:05 旅行時間資料表
從表 3.3 可得:
x2~x3 旅行時間為:(280+300+290)/3=290(秒) ≒4.83(分鐘)。
因為未超過五分鐘,因此 x3~x4 的資料還是用 8:05 分的資料來計算:
x3~x4 旅行時間為:(300+360+330)/3=330 (秒) 5.5(分鐘)。
由於 VD2~VD3 旅行時間 4.83(分鐘)加上 x3~x4 旅行時間 5.5(分鐘)總 共為 10.33 分鐘,已超過十分鐘,因此 x4~x5 的旅行時間,需要蒐尋下兩 個時段(8:15)的旅行時間資料如表 3.4 所示。
時間
x1~x2 旅行時間
(秒)
x2~x3 旅行時間
(秒)
x3~x4 旅行時間
(秒)
x4~x5 旅行時間
(秒) 1/17 AM 8:05 270 280 300 310 1/24 AM 8:05 320 300 360 370 2/7 AM 8:05 430 290 330 350
表 3.4 8:15 旅行時間資料表
從表 3.4 可得:
x4~x5 旅行時間為:(320+350+330)/3=333.33 (秒) ≒5.56(分鐘)。
Step4. 輸出旅行時間預測值
整理以上的旅行時間資料結果可得到:
x1~x2 旅行時間為:(250+300+400)/3=316.67(秒)≒5.28(分鐘)。
x2~x3 旅行時間為:(280+300+290)/3=290(秒) ≒4.83(分鐘)。
x3~x4 旅行時間為:(300+360+330)/3=330 (秒) 5.5(分鐘)。
x4~x5 旅行時間為:(320+350+330)/3=333.33 (秒) ≒5.56(分鐘)。
因此,預測 3/6 早上 8 點鐘 A 收費站到 B 收費站旅行時間為:
(5.28 + 4.83 + 5.5 + 5.56) = 21.17 (分鐘)。
時間
x1~x2 旅行時間
(秒)
x2~x3 旅行時間
(秒)
x3~x4 旅行時間
(秒)
x4~x5 旅行時間
(秒) 1/17 AM 8:15 280 270 320 320 1/24 AM 8:15 320 320 310 350 2/7 AM 8:15 330 280 300 330
第四章 時變係數模式
在上一章已介紹完k-NN 旅行時間預測模式,本章將介紹本研究所使用 的另一項旅行時間預測模式-時變係數模式(Time-Varying Coefficient Model, TVC Model),其基本概念為多元線性迴歸模式(Multiple Linear Regression Model)為基礎,本章將從 TVC 基本概念作介紹,經由構建流程每一步驟深 入作探討,以建構完整TVC 旅行時間預測模式。
4.1 TVC 模式介紹
上述提到的多元線性迴歸模式,又稱為複迴歸模式(Multiple Regression Model),其主要在自變數的部分,為探討兩個以上的自變數與因變數之間 的關係,利用最小平方法(Method of Least Squares) 校估各個迴歸係數,建 立多元線性迴歸方程式,當得到自變數x
i
時,即可預測依變數y。
其模式型 態如式4‐1 所示:y α β 1 x 1 β 2 x 2 … β n x n
ε i
4‐1y
為依變數 (dependent variables)。α
為常數 (constant)。β
i為迴歸係數 (regression coefficients)。
x i
為自變數 (independent variables)。εi
:誤差值 (error)。TVC 模式也就是利用複迴歸模式為基礎,依照時間變化係數跟著作改 變。而本研究利用蒐集資料的時間差異,所對應不同的迴歸係數,以此建 立不同時間點所形成的迴歸模式,TVC 流程圖整理成圖 4.1 所示。因此,
建構TVC 模式前可先利用分群方式將資料作處理,將整理好的分群歷史資 料利用統計軟體SPSS 進行線性迴歸模式分析,依此建立各個分群的線性迴 歸模式,當輸入一筆即時資料,立即可判斷即時資料屬於哪一分群,將此 即時資料代入相同分群的迴歸模式,即可輸出所要的預測結果。
圖 4.1 TVC 流程圖
將歷史資料作分群
建立各分群的迴歸模式
檢定迴歸模式的統計顯著性
分析修正判定係數R2的解釋 能力
輸出預測結果 將即時資料代入分群迴歸
模式
迴歸分析的基本統計假設
以下將會依照TVC模式流程圖每個步驟作一詳細說明,以建構完整 TVC旅行時間預測模式。
4.1.1 TVC資料分群
在上一章構建k-NN模式中也有提到資料分群步驟,在本研究k-NN模式 與TVC模式分群的目的及方法並不完全相同。在k-NN模式中,分群的目的 主要是能減少資料比對的時間,增加預測速度,因此依照不同的星期別來 作分群。而TVC模式分群的目的是為了找出旅行時間的周期性變化,以此 構建各分群的迴歸模式,讓迴歸預測模式能夠隨著時間作改變。
因此,本研究為了找出旅行時間週期性的變化,將依照不同星期別以 及將每天的交通狀況區分為尖峰、離峰時段作分群,尖峰時段為星期一到 星期五早上七點到九點和下午五點到七點,其餘皆屬離峰時段,試著利用 此分群方式,構建本研究的TVC旅行時間預測模式。
因此,本研究為了找出旅行時間週期性的變化,將依照不同星期別以 及將每天的交通狀況區分為尖峰、離峰時段作分群,尖峰時段為星期一到 星期五早上七點到九點和下午五點到七點,其餘皆屬離峰時段,試著利用 此分群方式,構建本研究的TVC旅行時間預測模式。