滴滴算法大赛算法解决过程 - 拟合算法
擬合
概論
Gap的預測,是建立在一個擬合函數上的。也有一些機器學習的味道。
總的Gap函數 = 函數(時間,地區)
- TimeID : 時間片編號
- DistricID:地區編號
- Traffic:交通流量
- Weather:天氣
- POI:設施數
百度地圖POI說明
注意:每家公司的POI分類都是不同的,這里只是將百度POI做個例子,滴滴打車的POI和百度的POI定義好像是不同的。
交通流量和時間有關,一個地方的擁堵程度和時間有關系
不同的地區,各種設施配置不同。
天氣和時間有關。
Gap函數 = 函數(交通擁擠度函數(時間,地區編號),POI函數(地區編號),天氣函數(時間))
這里可以認為,一個地方的打車人數,交通越堵,則打車的GAP越大。天氣不好,打車的人則越多,GAP也越大。設施越多的地方,打車的需求也越多,GAP可能也越大。但是這一切都只是可能性。
(題外話,其實真實的情況也要考慮節假日的問題,在節假日的時候,GAP可能會變大。當然這是一個人文的考量了)
zhihu網友的算法
作者:四名評論員
鏈接:你對滴滴算法大賽賽題的解決思路是什么?
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
利益不相關,不是參賽選手,不是滴滴工作人員,純粹覺得題目好玩。
我的分析:
這個題目的目標是預測,預測的核心是發掘信息,信息才是消除不確定性的唯一途徑。信息存在于乘客與司機的幾種行為模式,以及POI的不同功能類型。
乘客的行為基本上有三類模式,周期性的(每天上下班、每周去上補習班)、集中偶發性的(音樂會)和隨機性的(各類雜事)。司機的行為模式包括出車、收車、找活、趴活、午休。POI類型也可以分為周期性的(工作單位)、集中偶發性(電影院、體育館、演播大廳)、隨機性的(醫院、車站),當然每個POI的功能類型不是絕對的。
GAP是用車需求和供給的差,那么分別為需求和供給建立模型。
簡單說,一個完整的打車需求包括出發地、目的地、時間。首先任意兩個POI之間都存在一條線路,每條線路的人流量可以按照乘客的行為模式進行分解,這樣也就包含了時間因素。這樣最終就可以算出從每個POI出發的人數。由于數據只有方格的總數,這看起來是一個隱馬爾科夫鏈。至于天氣則基本可以看成線路人流量的一個系數。
司機接單在全天大多數時間里都是找活的狀態,也就是附近有單就搶,那么某個方格某個時間片司機接單數應該是空車數量*一個系數,空車數量=上一個時間片到達的乘客數+其他司機漫無目的找活出入方格的凈值+趴活司機數(找活、趴活數應該和poi類型有關,這得問問老司機拉活的竅門),系數就是搶單成功率。
非專業人士,以上只是粗淺的想了一下,還有很多細節沒有考慮,拋磚引玉,達人莫笑!非專業人士,以上只是粗淺的想了一下,還有很多細節沒有考慮,拋磚引玉,達人莫笑!
算法
交通擁堵
交通擁堵函數:
這里的交通擁堵函數是使用4個等級表示的。
- LV1 20條路 權重8
- LV2 10條路 權重4
- LV3 15條路 權重2
- LV4 05條路 權重1
那么擁堵指數怎么計算呢?這里應該是對每個擁堵喲一個權重,等級越高,權重越大。
擁擠度 = SUM(權重 * 數量)
在上文中?滴滴算法大賽算法解決過程 - 數據分析?提過了通過統計分析可以得知,LV1的路大約占2/3強,估計LV4,LV3的路是變化的關鍵。
由于數據量非常龐大,所以這里建議將中間的計算結果也放入數據庫中備用。
博客園不支持圖片放大功能,如果您想更好的查看圖片,也可以使用以下網址獲得更好的閱讀體驗:
http://codesnippet.info/Article/Index?ArticleId=00000041
我們嘗試使用最小二分法擬合 LV4和 訂單總量
從圖中可以看到,大部分的點在一個 Y = AX+ B 的直線函數中。
(未去噪點)
A:4.67355309006603
B:18.931303546517
(去除1500以上的噪點)
A:1.08888907683687
B:192.700547917395
(這里使用的是2016-01-01 #51 的數據)
任務
- 研究同一時間片,同一地區,按照日期變化,數據的變化。觀察天氣對數據變化的影響
- 研究同一時間片,不同地區,POI的數量對數據變化的影響
- 研究每個區域的需求量,可能每個區域的需求量基準數值都是差不多的。
總結
以上是生活随笔為你收集整理的滴滴算法大赛算法解决过程 - 拟合算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滴滴数据挖掘竞赛题目
- 下一篇: 滴滴算法大赛算法解决过程 - 方案设计