滴滴算法大赛算法解决过程 - 方案设计
數(shù)據(jù)分析:?http://codesnippet.info/Article/Index?ArticleId=00000038
擬合算法:?http://codesnippet.info/Article/Index?ArticleId=00000041
滴滴算法大賽到底需要什么樣子的答案?
我一開始的想法是建立一個(gè)模型,通過天氣,POI,交通擁堵的參數(shù)來(lái)推導(dǎo)出訂單數(shù)和GAP數(shù)。
但是通過現(xiàn)有的數(shù)據(jù)發(fā)現(xiàn),這個(gè)模型很難建立。
其實(shí)看一下題目,這是一個(gè)預(yù)測(cè)題:
給定每個(gè)區(qū)域在時(shí)間片tj,tj-1...的各項(xiàng)數(shù)據(jù),預(yù)測(cè)gapi,j+1, ?di∈D。
如果不是想研究機(jī)器學(xué)習(xí)的話,其實(shí)也沒有必要(或者沒有可能)建立一個(gè)完整的模型。
我們只需要知道,數(shù)據(jù)的發(fā)展趨勢(shì),例如這個(gè)時(shí)間點(diǎn)是 N ,按照經(jīng)驗(yàn),后一個(gè)時(shí)間點(diǎn)的趨勢(shì)是上升還是下降,幅度大約多少即可。
那些因素左右訂單
前幾天一直在尋找那些因素制約著訂單數(shù)。
9點(diǎn)整和18點(diǎn)整 全區(qū)域訂單分析圖
訂單的總量在不同日期,表現(xiàn)出極大的不同。但是,接單量和司機(jī)數(shù)有關(guān)系,司機(jī)數(shù)則是比較穩(wěn)定的,9點(diǎn)的司機(jī)數(shù)大約是5000人,18點(diǎn)為4500人。(前三個(gè)數(shù)據(jù)是 01-01 到 01-03 節(jié)假日 ,01-09 ,01-10,01-16,01-17 分別是節(jié)假日,所以早晨的需求比較少 )
通過分析,我們應(yīng)該可以整理出一張司機(jī)數(shù)和時(shí)間段的對(duì)應(yīng)函數(shù)。(節(jié)假日和非節(jié)假日區(qū)分開來(lái))
如果我們按照節(jié)假日和非節(jié)假日去看分時(shí)接單量
- 節(jié)假日的早高峰和平日的早高峰項(xiàng)目,相差巨大。
- 節(jié)假日和非節(jié)假日,其他時(shí)段接單量,基本持平。
- 每天的8:30分,17:30分 是兩個(gè)最高值。
- 根據(jù)這個(gè)統(tǒng)計(jì)數(shù)據(jù),我們大概知道了每天的接單情況。可以預(yù)測(cè)未來(lái)的某個(gè)時(shí)間片的接單量。當(dāng)然,如果我們能夠計(jì)算出Gap比率(GAP數(shù)/總訂單數(shù)[GAP+接單數(shù)]),Gap數(shù)也是可以預(yù)測(cè)出來(lái)的。很遺憾,Gap比率的數(shù)據(jù)統(tǒng)計(jì)如下:(每天訂單量起伏比較大,接單數(shù)較為固定,GAP比率則變化很大)
日期別9:00和18:00GAP比率
預(yù)測(cè)訂單趨勢(shì)
上面說(shuō)了,日期別的訂單差異量很大,但是我們是否可以考察一下,每個(gè)時(shí)段的訂單變化率是否有規(guī)律可循呢?
例如在 100個(gè)時(shí)間片上訂單時(shí) N,則101個(gè)時(shí)間片上,根據(jù)統(tǒng)計(jì)一般會(huì)增加 1.5%的話,則可以預(yù)測(cè)101個(gè)時(shí)間片上的訂單時(shí) 1.05 * N;
當(dāng)然如果就這么計(jì)算的話,可能會(huì)接近于正確答案,但是完全沒有使用POI,天氣,交通等數(shù)據(jù),基本上是不可能獲獎(jiǎng)的。。。
不過,我們可以先來(lái)試試看,是不是可以找到規(guī)律呢。從圖表上看,我們應(yīng)該可以統(tǒng)計(jì)出,每個(gè)時(shí)間點(diǎn)上數(shù)據(jù)的變化率。
周三的變化:
從第一個(gè)周三到第二個(gè)周三的變化
從第一個(gè)周三到第二個(gè)周三的變化率
訂單變化率:(這個(gè)時(shí)間片 - 上個(gè)時(shí)間片)/ 上個(gè)時(shí)間片
這樣的話,我們大概可以對(duì)于各個(gè)時(shí)間片之間訂單的變化率做一個(gè)統(tǒng)計(jì)平均表。
假設(shè)時(shí)間片 N 的訂單數(shù)位 Order ,下一個(gè)時(shí)間片N+1的訂單數(shù)為 NextOrder,則 變化率 K = (NextOrder - Order) / Order。
我們可以計(jì)算出全區(qū)域的每個(gè)時(shí)間片的變化率,也可以算出單個(gè)區(qū)域的每個(gè)時(shí)間片的變化率。
每個(gè)區(qū)域的訂單比例
有些區(qū)域訂單多,有些區(qū)域訂單少,這個(gè)比例是否會(huì)隨著時(shí)間變化而變化呢?
放心,基本上每個(gè)區(qū)域的訂單比率很固定的。
如何解決問題
題目里面告訴了我們所需測(cè)試Gap的時(shí)間片的前三個(gè)時(shí)間片的數(shù)據(jù)。結(jié)合變化率的概念,其實(shí)我們可以計(jì)算出待預(yù)測(cè)的時(shí)間片的訂單量。
還有一個(gè)問題是接單量怎么考慮,我的想法是將這三個(gè)已知時(shí)間片的接單量的平均值作為新的接單量。
(有一種情況,例如一個(gè)時(shí)間片里 有50個(gè)訂單,但是有1個(gè)GAP,這個(gè)時(shí)候其實(shí)不能認(rèn)為接單量只有49,而應(yīng)該認(rèn)為這個(gè)區(qū)域的基本上是公供需平衡的。1個(gè)GAP有可能是偶然因素。所以我這里認(rèn)為5個(gè)GAP以下都是供需正常的。)
- 第N+1個(gè)時(shí)間片的GAP = 第N + 1個(gè)時(shí)間片的訂單數(shù) - 第N + 1個(gè)時(shí)間片的接單能力。
- 第N + 1個(gè)時(shí)間片的訂單數(shù) = 第N 個(gè)時(shí)間片的訂單數(shù) * (訂單變化率+ 1)
- 第N + 1個(gè)時(shí)間片的接單能力 = 第 N ,N-1, N-2 個(gè)時(shí)間片的接單能力的平均值。
最后公式是:
- 第N+1個(gè)時(shí)間片的GAP = 第N 個(gè)時(shí)間片的訂單數(shù) * (訂單變化率+ 1) - 第 N ,N-1, N-2 個(gè)時(shí)間片的接單能力的平均值
這種方法計(jì)算出來(lái)的結(jié)果可能接近于答案,也可能遠(yuǎn)離答案。但是完全沒有體現(xiàn)出機(jī)器學(xué)習(xí)的作用,所以本人覺得肯定是有問題的。這里只是給出一種解決方案。接下來(lái),開始思考正統(tǒng)的解決方案。
總結(jié)
以上是生活随笔為你收集整理的滴滴算法大赛算法解决过程 - 方案设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滴滴算法大赛算法解决过程 - 拟合算法
- 下一篇: 滴滴算法大赛算法解决过程 - 机器学习