gbdt怎麼用在 點擊率預測中?

gbdt 基於 決策樹,比較困惑的是,樣本集只有 click vs only-view 兩個類別,難道是直接用 gbdt來預測 這兩個類別嗎。。 感覺不對勁


gbdt是可以直接得到概率的,具體題主可以參見"Greedy function approximation: a gradient boosting machine" 中section 4.5 two class logistic regression. 即使單獨使用gbdt也是可以達到比較高的準確率的。同時也有很多問題需要注意,比如用down sampling處理class imbalance,預測結果的calibration等等。

同時gdbt也可以用來做non-linear feature transformation. 具體來說就是對於每個input instance把其落在每棵樹哪個葉子上作為一個0,1 feature。 比如只有兩棵數 T1,T2

T1 T2

/ /

l_11(x) l_12 l_21 l_22(x)

1 0 0 1

一個training instance x在T1落在l_12,在T2落在l_22

我們就將其變換為一組0,1 feature [1,0,0,1]

之後我們可以將這些0,1 feature 跟其他feature結合起來再用一個linear classifier 比如LR做一次分類。

Facebook Ads的CTR prediction就是使用的上述方式。 具體的細節題主可以參考這篇paper 「Practical Lessons from Predicting Clicks on Ads at Facebook」 (https://www.facebook.com/download/321355358042503/adkdd_2014_camera_ready_junfeng.pdf). 其中也包括只用gdbt跟gdbt+LR performance的比較。


gdbt的樹是回歸樹,可以得到概率的。


Description - Avito Context Ad Clicks Kaggle上這個比賽和你的很類似,Owen Zhang,第一名用的就是GBDT,不過是一種更加快速的方法Xgboost。 關於稀疏的問題,其實可以用採樣的方法解決,muyinanhai/ad-preditor · GitHub 這個代碼就是用對0採樣,然後用Xgboost進行預測,在某小眾比賽中第7


click標籤為1,only-view標籤為0,用logistic regression loss。預測的結果可以認為是對click的概率預測


使用logistic loss是可以的, 但是盡量合併你的樣本集,轉0-1分布為二項分布。


可以用gbdt預測兩個類別啊,gbdt是可以輸出概率的,只不過這樣不會很准,而且會很慢,因為數據集太稀疏


推薦閱讀:

TAG:機器學習 | 點擊率 |