• 沒有找到結果。

第三章 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

ij2   

X

i

X

j ’

X

X

j  

/

 

 

D

ij2

X

i

X

j ’

C

W‐1

X

i

X

j    

3‐2  

  i1

1

 

,  

i2

2   ,  

i3

3   , .…,  

im

 

1

1

  2

2

 

       

   

意即,在求

d

ij2時,

C

W‐1

C

W

I

 (單元矩陣)。換言之,當各軸的單位長度相 等,且各軸互為垂直時,歐幾里得距離平方與馬式距離

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‐1    

y

  為依變數  (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旅行時間預測模式。

相關文件