GBDT+LR
GBDT + LR 模型融合在之前的推薦系統中很常見,甚至現在有的廠子也在用這一套東西,畢竟每個廠子的業務不同數據不同,所以不同的算法模型效果也會參差不齊
13年左右的時候,業界訓練模型主要有兩條路:
? ? 大規模特征 + 線性模型(Goole,Baidu)
? ? 中小規模特征 + 非線性模型(Yahoo,Bing,Taobao)
之前很多人都會用到LR,是因為LR是線性模型,可以并行處理大量數據,但是缺點也是同樣顯著,就是需要大規模的特征;人工處理大量的特征并不能保證會帶來效果上的提升,因此如何自動組合、挖掘特征是一個重要的問題。
挖掘特征目前主要有兩條路:
?1、FM系列->通過隱變量的形式,挖掘特征之間的組合關系
?2、樹系列-> GBDT,Xgboot,lightGBM
今天給大家說一下樹系列的組合特征挖掘
GBDT是樹系列的一個模型,拆開來看就是 梯度(G)? + 集成(B) + 決策回歸樹(DT)
首先它是由一顆決策回歸樹(DT)為單位組成的,這里要注意是回歸樹不是分類樹,兩者有區別,例如預測的是身高、年齡這種連續的用回歸樹,如果出現是否點擊,是否聊天這種屬于分類
其次它是一個集成(B)的樹,它是一個串行的結構和隨機森林不同,隨機森林是并行結構,為什么說它是串行結構,是因為它會先讓第一個樹先學習,假如你的目標值是10,第一個樹只學到9,那么還有殘差為1沒有學到,第二顆樹的目標值是1而不是10,直到最終學習到的值小于閾值,停止學習
最后說一下梯度(G),說白了它就是往殘差逐漸減小的方向學習
LR模型大家應該比較清楚啦,它就是一個線性函數?w1x1+w2x2+......,之后外面套一個sigmoid函數,把最終的數值映射到0-1之間,目的學的是w1,w2.....wn這些參數
GBDT + LR:
說白了就是兩步,
第一步把數據輸入到gbdt輸出的是每條數據對應一個向量,如下圖所示
第二步把向量輸入到LR分類模型,獲取結果
代碼實現:
導入相應包
加載數據,預處理
設置參數,輸出實驗結果:
現在大量的數據業務會出現很多高維度離散數據,很多網上的帖子說之所以現在很多樹模型并不適用,是因為大數據高維離散特征,樹模型比較容易過擬合,其實以目前我的觀點來看,我并不完全贊同這種說法:
1、感覺很多樹模型并不適用的主要原因是沒有深度模型效果好
2、很多深度模型會加上正則項來控制過擬合,但是在非線性模型樹中,你主要就是調整樹的深度和個數,通過訓練集和測試集合的效果的差值來評判是否是過擬合,一般來說訓練集AUC 和測試集AUC 之差大于3%,表示過擬合
3、現在很多公司都在用xgboost,lightgbm這種模型神器,很大一部分原因就是公司業務不同,數據不同,所以不同模型效果不同
很多公司都會測試各種模型,比較那個模型比較好
?
參考:
1、http://quinonero.net/Publications/predicting-clicks-facebook.pdf
2、https://www.jianshu.com/p/96173f2c2fb4
3、https://blog.csdn.net/weixin_41362649/article/details/83184422
4、https://blog.csdn.net/weixin_41362649/article/details/82803279
5、https://blog.csdn.net/weixin_41362649/article/details/82080198
?
總結
- 上一篇: 关于AUC计算公式推导
- 下一篇: 用户画像-标签