任芷樂
媽媽開車外出時,因難以找到停車位,停車總要花費很多時間。盡管有些手機App能顯示當前車庫車位的空位數,但往往等我們把車開過去時車庫就已經停滿了。如果能提前預測車庫在幾分鐘之內有空位,可以直接開過去停車,該有多好啊。
要想預測出幾分鐘之后的車庫空位,我認為必須用一種可根據歷史停車信息推斷出未來空位信息的智能算法。
經過搜索,我發現有很多智能預測算法,其中BP神經網絡可根據歷史信息推算出未來的信息。在BP神經網絡研究者的探索下,BP神經網絡的各方面都趨向成熟,如今已被運用到多個領域,如數據挖掘、模式識別、圖像處理、股票預測、市場分析等。
能不能用該算法預測車庫的空位數?
一、實施步驟
我選擇位于溫州市區車流量較大地區一個車容量為210輛的停車場作為研究對象,選取了從2017年10月21日 0:00:00到2017年10月26日 21:15:08的1612條即時車庫空位數據按照以下步驟進行研究。
1.讀入車庫空位數據集。抽取成1612行、6列的數據格式,第1到第5列為輸入層數據,第6列為輸出層數據。
2.劃分數據集。前865條為訓練數據集,后747條為測試數據集。
3.輸入數據歸一化處理。采用最大最小歸一化方式:xk=(xk-xmin)/(xmax-xmin)。
4.初始化BP網絡訓練結構。設置輸入層節點數為n=5個,隱含層節點為j=50個,輸出層節點k=1個的三層結構。初始化輸入層、隱含層和輸出層節點之間的連接權值wij,wjk(隨機值),并給出隱含層節點和輸出層節點的閾值θj和θk(隨機值),這里迭代次數為5000次,學習率net.lr=0.01,學習目標精度net.goal=0.0003,節點傳遞函數=‘logsig。
5.隱含層輸出計算。根據輸入層5個時間節點的車庫空位Oi以及隱含層的連接權值wij、隱層閾值θj,計算隱含層輸出Oj。
Ij=■wijOi+θj Oj=■
6.輸出層輸出計算。根據隱含層輸出Oj、連接權值wjk和輸出層閾值θk,計算輸出層輸出Ok(預測的車庫空位數)。
Ok=■Ojwjk+θk
7.誤差計算,根據誤差反向傳播,并更新權值和閾值。期望輸出Yk,輸出層誤差Errk,隱含層誤差Errj。
Errk=Ok(1-Ok)(Yk-Ok)
Errj=Oj(1-Oj)■Errkwjk
權值和閾值更新:
Vwjk=lr*ErrkOj Vwij=lr*ErrjOi
wjk=wjk+Vwjk wij=wij+Vwij
V =lr*Errk V =lr*Errj
θk=θk+V θj=θj+V
8.判斷模型迭代是否結束或是否達到目標精度net.goal=0.0003,若沒有則按第5步驟繼續計算。
二、實驗分析
按照以上步驟,我用matlab分別對該停車場5min后、10min后、15min后的車輛數進行仿真預測,并和真實值進行對比。
由預測值與實際值的對比得出以下結論。
1.用BP神經網絡算法基本能預測出未來5min、10min、15min的停車場車輛數,由此可得出空位數。
2.車輛數變化較小的時段,預測誤差也較小。
3.將預測數據和實際數據進行對比,計算出未來5min的停車場車輛預測平均誤差率為1.76%,未來10min預測平均誤差率為2.90%,未來15min預測平均誤差率為3.91%。由此可見,預測平均誤差率5min后的最小,10min后的次之,15min后的最大,也就是說,預測效果5min后的最佳,10min后的次之,15min后的最差。
4.將預測數據和實際數據進行對比,5min后、10min后、15min后的預測車輛數和實際數的最大差值分別為16輛、27輛、39輛。
5.將預測數據和實際數據進行對比,5min后、10min后、15min后的預測車輛數和實際數相差小于1輛的預測次數比例分別為46.72%、38.15%、34.94%。預測車輛數和實際數相差小于5輛的比例分別是93.19%、81.04%、71.03%,而預測車輛數和實際數相差小于10輛的比例分別是99.07%、95.06%、89.45%,滿足率較高。
6.將預測所得的數據按照車輛數100進行劃分,少于或等于100輛定義為閑時,大于100輛定義為忙時,分別計算閑時和忙時的預測誤差率可得,閑時未來5min、10min、15min的停車場車輛預測平均誤差率分別為2.84%、4.43%、5.86%;忙時未來5min、10min、15min的停車場車輛預測平均誤差率分別為1.10%、1.97%、2.73%。
三、實驗結論
1.BP神經網絡算法可用來預測車庫未來5min、10min、15min的車輛數。其中預測效果5min后的最佳,10min后的次之,15min后的最差。
2.在預測空位超過10個的情況下,有空位的幾率非常高,用戶可優先選擇附近空位超過10個的車庫。
3.此預測方法所得忙時的預測誤差率比閑時預測誤差率小,而人們更需要的是忙時的預測,所以忙時誤差率小對用戶更有利。
四、研究思考
1.有些時段的誤差偏大,我認為主要原因可能是BP神經網絡算法本身學習時間比較長、收斂比較慢,或是我的參數初始值選得不好、我選擇的用來學習的數據不具有代表性等等。今后我還會嘗試改善算法,進一步縮小誤差。
2.我研究的對象是有210個車位的停車場,在我調取數據的時間段內均沒有車位停滿的情況,那么針對車位很緊張的車庫,BP神經網絡算法能否準確預測呢?
3.人工神經網絡是人們常用的預測方法之一,BP神經網絡算法只是其中之一,還有其他很多的算法,比如支持向量機、極限學習機等先進方法,把這些算法運用到車庫空位預測中,效果如何?