滴滴算法大赛算法解决过程 - 机器学习
按照前面文章的方法進(jìn)行數(shù)據(jù)預(yù)測(cè),完全不使用POI,天氣,交通情況的數(shù)據(jù),可以達(dá)到0.43的成績(jī)。
不過(guò)如果想要獲得更好的成績(jī),簡(jiǎn)單的預(yù)測(cè)方法顯然無(wú)法滿足要求了。
GBDT
網(wǎng)友說(shuō)可以使用GBDT的方法來(lái)進(jìn)行數(shù)據(jù)預(yù)測(cè)。所以,我們先來(lái)聊聊GBDT算法的一些基礎(chǔ)知識(shí)。
熵
凡是說(shuō)到算法,人工智能,機(jī)器學(xué)習(xí)的文章,多半一定要說(shuō)到 熵 這個(gè)概念的。什么是熵?
百度一下:
熵(entropy)指的是體系的混亂的程度,它在控制論、概率論、數(shù)論、天體物理、生命科學(xué)等領(lǐng)域都有重要應(yīng)用,在不同的學(xué)科中也有引申出的更為具體的定義,是各領(lǐng)域十分重要的參量。熵由魯?shù)婪颉た藙谛匏?#xff08;Rudolf Clausius)提出,并應(yīng)用在熱力學(xué)中。后來(lái)在,克勞德·艾爾伍德·香農(nóng)(Claude Elwood Shannon)第一次將熵的概念引入到信息論中來(lái)。
一個(gè)體系越是單調(diào),則熵越低,反之亦然。
這里我們引用數(shù)據(jù)挖掘大神的文章來(lái)接單說(shuō)一下熵。
如果有一個(gè)字符串,里面包含了4種字符,每種出現(xiàn)的概率都是P= 1/4。
P(X=A) = 1/4
P(X=B) = 1/4
P(X=C) = 1/4
P(X=D) = 1/4
這樣的字符串可能是:BAACBADCDADDDA。傳送這樣的字符串,每一個(gè)字符需要用幾個(gè)bit?
答案是2個(gè)bit
A = 00, B = 01, C = 10, D =11如果有一個(gè)字符串,里面包含了4種字符,但是每個(gè)字符串出現(xiàn)的概率不同
P(X=A) = 1/2
P(X=B) = 1/4
P(X=C) = 1/8
P(X=D) = 1/8
傳送這樣的字符串,每一個(gè)字符平均需要用幾個(gè)bit?注意這里說(shuō)平均。
答案是1.75個(gè)bit
A = 0, B = 10, C = 110, D =111
(如果使用等概率的方法, A = 00, B = 01, C = 10, D =11,則無(wú)法節(jié)省編碼量,還是2個(gè)bit)
這里巧妙的做到了,出現(xiàn)概率高的字符,使用的bit位少,同時(shí)做到了編碼上的問(wèn)題。
(AB =〉010 和 C 110,D 111 不重復(fù)。AA =〉00 和 B 10 不重復(fù) 等)有如果有一個(gè)字符串,里面3種字符串,每種出現(xiàn)概率都是 1/3呢?
最簡(jiǎn)單的編碼方式是 A = 00, B = 01, C = 10, 這樣是2個(gè)bit,但是如果好好計(jì)算一下,可以做到1.6個(gè)bit。
A=10,B= 11,C = 0(理論上是1.58496 個(gè)bit)有如果有一個(gè)字符串,里面N種字符串,每種出現(xiàn)概率是 PN呢?
如果有一個(gè)字符串,里面包含了4種字符,每種出現(xiàn)的概率都是P= 1/4 = 0.25。
log(0.25,2) = - 2
H(X) = - (1/4) * log(0.25,2) - (1/4) * log(0.25,2) - (1/4) * log(0.25,2) - (1/4) * log(0.25,2) = 2;如果要表示下圖的H(X)和H(Y)呢?
這個(gè)很容易計(jì)算
這個(gè)很容易計(jì)算
H(X)= 1.5
P(Math) = 1/2 P(History)= 1/4 P(CS)= 1/4
log(0.25,2) = - 2 log(0.5,2) = - 1
H(X) = - (1/2) * log(0.5,2) - (1/4) * log(0.25,2) - (1/4) * log(0.25,2) = 0.5 + 0.5 + 0.5 = 1.5;
H(Y)= 1
P(Yes) = 1/2 P(No) = 1/2
H(Y) = - (1/2) * log(0.5,2) - (1/2) * log(0.5,2) = 0.5 + 0.5 = 1;
- 如果說(shuō),我們的計(jì)算范圍只是 X = Math 的數(shù)據(jù)。那么這個(gè)時(shí)候 H(Y | X = Math) 是多少呢?是多少呢?答案是1。(一共4條記錄,但是Y有兩種可能性)
- 如果說(shuō),我們的計(jì)算范圍只是 X = Histroy 的數(shù)據(jù)。那么這個(gè)時(shí)候 H(Y| X = Histroy)是多少呢?答案也是 0 。(一共2條記錄,但是Y只是一種可能性)
- 如果說(shuō),我們的計(jì)算范圍只是 X = CS 的數(shù)據(jù)。那么這個(gè)時(shí)候 H(Y| X = CS)是多少呢?答案也是 0 。(一共2條記錄,但是Y只是一種可能性)
H(Y | X ): 條件熵 Conditional Entropy
現(xiàn)在我們考慮一個(gè)問(wèn)題,如果我們需要將Y傳輸出去。當(dāng)然,如果直接傳輸?shù)脑?#xff0c; H(Y)= 1。
如果我們?cè)趥鬏數(shù)臅r(shí)候,雙方都知道X的值,則需要熵定義為H(Y | X )。
例如:大家都知道X=History,則 Y 必然是 NO, H(Y ) = 0 , Histroy的可能性是1/4 ,需要的傳輸量是 0(CS同理)
大家都知道X=Math,則 Y 可能是 Yes或者No,H(Y ) = 1 ,Math的可能性是1/2 ,需要的平均傳輸率是 1/2 * 1 = 0.5
Math的概率 P(Math) = 1/2 ; History的概率 P(Histroy)= 1/4; History的概率 P(CS)= 1/4;
則我們定義H(Y | X ) = H(Y | X = Math) * P(Math) + H(Y| X = Histroy) * P(Histroy) + H(Y| X = CS) * P(CS) = 0.5
Information Gain 信息增益 和 Relative Information Gain
從上文可知,比起直接傳輸Y,條件熵則更加劃算了。這些劃算的部分,我們稱為信息增益IG。
IG(Y|X) = H(Y) - H(Y | X)
上面的例子,IG(Y|X) = H(Y) - H(Y | X) = 1 - 0.5 = 0.5
進(jìn)一步,這樣劃算的部分,占原來(lái)所需部分的比重是多少呢?
RIG= IG(Y|X) / H(Y) = 0.5 / 1 = 0.5 (節(jié)省的部分占了50%)
信息增益是什么,我們先從它的用處來(lái)了解它:
信息增益是特征選擇中的一個(gè)重要指標(biāo),它定義為一個(gè)特征能夠?yàn)榉诸愊到y(tǒng)帶來(lái)多少信息,帶來(lái)的信息越多,該特征越重要。
指標(biāo)選擇
回到滴滴算法的問(wèn)題,我們應(yīng)該挑選哪些指標(biāo)作為GBDT的參考呢?
滴滴算法大賽算法解決過(guò)程 - 數(shù)據(jù)分析
滴滴算法大賽算法解決過(guò)程 - 擬合算法
滴滴算法大賽算法解決過(guò)程 - 方案設(shè)計(jì)
滴滴算法大賽算法解決過(guò)程 - 機(jī)器學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的滴滴算法大赛算法解决过程 - 机器学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 滴滴算法大赛算法解决过程 - 方案设计
- 下一篇: EM算法(Expectation Max