網頁

2018年5月28日 星期一

YouBike 騎乘預測模型

這篇文章旨在建立一套YouBike還車量預測模型,期望能以每15分鐘的頻率精準預測台中市各站點的還車量,結果雖然不盡如人意,以下仍詳細紀錄過程及一些實驗結論。

本文為原文摘錄,詳細報告於此:https://goo.gl/s8SxcS





預測目標


本文的模型為輸入“觀測當下”可取得之客觀資訊,是一種上下文無關的模型,利用每次觀測可取得之“日期”、“天氣”、“借至還先驗分佈”﹒﹒﹒等特徵,預測未來15分鐘台中市各站點的還車量分佈狀況。

資料來源

  1. 2016 年台中地區 YouBike 借還資料
  2. 2016 年中央氣象局每小時觀測紀錄
  3. 2016 年人事行政局行事曆
  4. 台中市 YouBike 各站經緯度
這次輸入模型的特徵及模型輸出的預測值皆由上列資料經計算轉換後得出,其中,借還數據為本次實驗的主要資料,經轉換後可得出2016年台中市各站每15 分鐘的借還量,其餘的資料則用以生成本次實驗所用之特徵。

資料清洗


在數據的處理中,如果原資料雜訊較多且不妥善處理,就會影響到樣本整個的分佈,如此一來,盡管模型學的再好,也是學到錯誤的分佈,從而輸出不可信的數值,所以這裡描述本次實驗如何去除YouBike 借還資料中不合理的資料,以期樣本更符合真實的分佈狀況。

本次實驗按以下幾項條件對數據刪減:

  1. 借/還站非台中市站點
  2. 年份異常
  3. 還車時間早於借車時間
  4. 總騎乘秒數小於 300 秒
  5. 總騎乘秒數小於 3600 秒
經刪減後,最後YouBike借還資料中每筆數據僅留四項數值:借出時間、還入時間、借出站點、還入站點。

兩種歸還形式


本文欲建立的是以每15分鐘的頻率預測台中各站的歸還量,在這個前提下,歸還的形式有兩種,本文將其二者稱為“第一型歸還”“第二型歸還”,第一型歸還直白的講是指“觀測的當下仍未還車者於下個15分鐘裡還車至各站的分佈狀況”,這也是模型真正要預測的對象,詳細解釋見於原文。

兩種歸還形式

特徵值


模型實際上是利用輸入的數值找到一組方程式以線性/非線性的方式對應目標值,所以前期特徵工程中取得的特徵值與目標值之間的聯繫相當重要,本次實驗自前述資料中求得各種特徵值,以期望模型能習得輸入的特徵與預測目標之間的聯繫,以獲得較佳的預測結果,以下分別講述模型輸入的特徵為何。

日期

本次實驗假設借站至還站可能受客觀日期、時間﹒﹒﹒等影響,故這次實驗採用的日期相關特徵有“月份”“星期幾”“時段”“是否假日”,月份為1到12月,星期幾為1到7,時段為0時至23時,是否假日則用0或1分別代表是或否,這幾項皆應作為獨立狀態而非連續值,故用獨熱編碼將“月份”編為12碼以對應12種狀態,“星期幾”則編為7碼對應7種狀態,“時段”則編為24碼對應24種狀態,“是否假日”則編為2碼對應2種狀態。

天氣

本次實驗假設騎乘行為應受天氣影響,例如:大雨影響視線、車速﹒﹒﹒等直覺的想法,考慮到本案模型輸入特徵為觀測當下可獲取之資訊,故可輸入的天氣資訊並非那麼多,本案最終只採兩項天氣特徵,分別為“當前氣溫”“當前降雨與否”,其中,當前氣溫除以40,降雨與否則用獨熱編碼編為2碼,以對應降雨與否的2種狀態。

借至還先驗分佈

本文認為影響騎乘者從甲站借車至乙站還車意願的客觀主要影響因素有二,分別為“已騎乘秒數”“站點間距離”,過去的兩則文獻(詳見原文)在台北市投放的問卷調查中得出類似的結果—騎乘時間在30分鐘內的人為絕大多數,因此可以想見還車的機率隨著騎乘時間愈長,還車的機率也隨之愈高,本次實驗按過去文獻歸納還車機率:

“已騎乘秒數” 對應的歸還機率

根據此一機率分佈,3600秒以下的騎乘者還車機率高達97%,按每一個借出站在一小時內以時速8公里的速度可能到達的歸還站歸納為7個區間:

“逢甲大學站”(紅)與各站的距離

每個未還車的騎乘者,可根據“已騎乘秒數歸還機率”“借出站點至各站距離”求得此騎乘者還車至各站點的先驗機率分佈,本次實驗最終將每15分鐘當下的所有未還車騎乘者對應各站的先驗機率分佈加總,得出整個台中市當前的“借至還先驗分佈”

目標值


本次實驗關注的是每15分鐘各站的還車量分佈狀況,模型有兩種輸出,第一種輸出為各站點是否有來車要還的判斷,只要還量為0則“是”,反之為“否”,第二種輸出為各站第一型歸還量的分佈狀況。

模型(類神經網路)


基本結構

本文採用的模型為深層類神經網路,超參數並無經過網格搜尋的方法細調,僅由人為經驗隨意挑了幾種組合,模型的輸入為前面述的特徵值,輸出同上節所說的一樣,分為兩種輸出,其中預測各站“是否來車”的部份與預測第一型歸還分佈狀況都是以子網路的方式實現,使用子網路實現每一站預測“是否來車”的方式雖然耗費運算資源,不過這樣更能適應每一站特有的借還車模式,這樣子的作法在某種程度上等同於每站獨立一個網路。


預測方法

此模型一邊輸出第一型歸還量的預測值,另一大半輸出各站是否來車的獨熱編碼,在實務上,本文按是否來車的預測來判斷是否相信第一型歸還量的預測值,如果模型預測甲站點的第一型歸還量不為0且預測甲站點的來車輛判斷為否,這種狀況下本文就認為預測甲站點的第一型歸還量為0。

模型架構

實驗結果


借還資料經清洗後有效站點共有174站,每筆借還數據經計算後共得35040組對應的特徵值、目標值,35040組資料打亂後按90%、10%的分佈切分訓練集及測試集,最後,訓練集有31536筆,測試集有3504筆。

因為模型輸出兩種類型的數值,其中“是否來車”屬於二元分類問題(True or False),“第一型歸還量分佈”則屬於回歸實際值,故應採用兩種不同的評估方式判斷準確與否:

“是否來車”


“是否來車”的準確率、精確率、召回率

其中Accuracy為模型預測所有“是否來車”的準確率,雖然高達88%,但是,如果大多時間中的大多站點第一型歸還量都是0,模型很多時候只要預測沒有來車就很準了,其他四項便是在驗證這個猜想,其中No_Precision代表的是模型預測“無來車”的精確率,No_Recall是模型預測“無來車”的召回率,分別是87%95%,可見在模型在判斷沒有來車的情況是相當準確的,Have_Precision代表的是模型預測“有來車”的精確率,Have_Recall是模型預測“有來車”的召回率,分別是52%28%,可以看出模型在判斷有來車的情況失準是很嚴重的,這種情況下整體準確率卻依然有88%,由此可見,多數時間中的多數站點,“無來車”的比例是相當高的。

“第一型歸還量分佈”

模型旨在預測台中市174站每15分鐘第一型歸還量的分佈狀況,在真實的預測過程中會利用上述“是否來車”的預測結果加以修正原預測的歸還量分佈,經修正後的分佈與真實的分佈Mean Squard Error1.37,換句話說,每站預測的歸還量與實際歸還量的誤差僅有正負1.17輛,單看這個誤差是極小的,然而就如前面所述,歸還量為0的狀況佔了絕大多數,誤差看起來小是受此因所致,真實情況下的還車高峰誤差就要大的多,流量較大的站影響尤甚,如果細究這些大站,大站高峰的誤差肯定要更大。

預測各站第一型歸還量的MSE

額外實驗紀錄


這裡旨在紀錄實驗中無意間獲得的數據,這些數據並非如前述從較具目的性實驗設計中得出的數值,是運算過程中順便計算得出的數據,僅有簡短的統計敘述,敬請見諒。

短程借還

按各站點經緯度使用K-Means算法分為12類群組,其中,群內借群內還的狀況佔2016借還數據中的63%。

分群一覽

還車量少

在全部的每15分鐘時間切片中,全部的站點紀錄中,有98%的第一型歸還量小於等於該站最大容量的10%。

整體趨勢

雖然上述的種種實驗中都指出各站點的第一型歸還量極少,然而,如果關注台中地區在每個切片中第一型歸還的總量,可以看出每日的趨勢,雖然每日的總量有漲跌趨勢,可總量依舊不多,如果再細分至每個站點就會十分稀疏了,這或許是較難預測的原因之一。
隨意抽取連續七日借(藍)還(紅)總量

結論


2016台中市YouBike使用量小

無論是從“是否來車”的判斷,抑或直接觀測借還總量,上述總總跡象都指向使用量小導致數據極其稀疏,多數時間的多數站點甚至沒有還車量,缺乏高度的使用量就難以找出泛用的使用模式,另外,在過去文獻(詳見原文)投放的問卷中指出2011年台北市騎乘者中用來通勤通學這種行為模式較明顯的重度用戶僅佔全數使用者13.3%,如果台中的使用者亦復如是,在使用量已經很少的情況下無異於雪上加霜,這些種種都可能進一步導致了預測的困難。

未掌握騎乘意向的關鍵因素

除卻上述提及的使用量小導致整體數據稀疏的問題,如果僅關注數據較多的大站中,也未見堪用的表現,合理的猜測便是本案未掌握影響騎乘意向的關鍵因素,本案使用之日期、天氣、站點距離、已騎乘時間﹒﹒﹒等特徵,對於騎乘情況未如本案預期的重要,應是流量大站預測也失準的重要因素之一。

沒有留言:

張貼留言