色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解一下GBDT和LR的融合方案

電子工程師 ? 來源:lp ? 2019-03-28 10:15 ? 次閱讀

寫在前面的話

GBDT和LR的融合在廣告點擊率預(yù)估中算是發(fā)展比較早的算法,為什么會在這里寫這么一篇呢?本來想嘗試寫一下阿里的深度興趣網(wǎng)絡(luò)(Deep Interest Network),發(fā)現(xiàn)阿里之前還有一個算法MLR,然后去查找相關(guān)的資料,里面提及了樹模型也就是GBDT+LR方案的缺點,恰好之前也不太清楚GBDT+LR到底是怎么做的,所以今天我們先來了解一下GBDT和LR的融合方案。

在CTR預(yù)估問題的發(fā)展初期,使用最多的方法就是邏輯回歸(LR),LR使用了Sigmoid變換將函數(shù)值映射到0~1區(qū)間,映射后的函數(shù)值就是CTR的預(yù)估值。

LR屬于線性模型,容易并行化,可以輕松處理上億條數(shù)據(jù),但是學(xué)習(xí)能力十分有限,需要大量的特征工程來增加模型的學(xué)習(xí)能力。但大量的特征工程耗時耗力同時并不一定會帶來效果提升。因此,如何自動發(fā)現(xiàn)有效的特征、特征組合,彌補人工經(jīng)驗不足,縮短LR特征實驗周期,是亟需解決的問題。

FM模型通過隱變量的方式,發(fā)現(xiàn)兩兩特征之間的組合關(guān)系,但這種特征組合僅限于兩兩特征之間,后來發(fā)展出來了使用深度神經(jīng)網(wǎng)絡(luò)去挖掘更高層次的特征組合關(guān)系。但其實在使用神經(jīng)網(wǎng)絡(luò)之前,GBDT也是一種經(jīng)常用來發(fā)現(xiàn)特征組合的有效思路。

Facebook 2014年的文章介紹了通過GBDT解決LR的特征組合問題,隨后Kaggle競賽也有實踐此思路,GBDT與LR融合開始引起了業(yè)界關(guān)注。

在介紹這個模型之前,我們先來介紹兩個問題:

1)為什么要使用集成的決策樹模型,而不是單棵的決策樹模型:一棵樹的表達能力很弱,不足以表達多個有區(qū)分性的特征組合,多棵樹的表達能力更強一些??梢愿玫陌l(fā)現(xiàn)有效的特征和特征組合

2)為什么建樹采用GBDT而非RF:RF也是多棵樹,但從效果上有實踐證明不如GBDT。且GBDT前面的樹,特征分裂主要體現(xiàn)對多數(shù)樣本有區(qū)分度的特征;后面的樹,主要體現(xiàn)的是經(jīng)過前N顆樹,殘差仍然較大的少數(shù)樣本。優(yōu)先選用在整體上有區(qū)分度的特征,再選用針對少數(shù)樣本有區(qū)分度的特征,思路更加合理,這應(yīng)該也是用GBDT的原因。

了解了為什么要用GBDT,我們就來看看到底二者是怎么融合的吧!

GBDT和LR的融合方案,F(xiàn)aceBook的paper中有個例子:

圖中共有兩棵樹,x為一條輸入樣本,遍歷兩棵樹后,x樣本分別落到兩顆樹的葉子節(jié)點上,每個葉子節(jié)點對應(yīng)LR一維特征,那么通過遍歷樹,就得到了該樣本對應(yīng)的所有LR特征。構(gòu)造的新特征向量是取值0/1的。舉例來說:上圖有兩棵樹,左樹有三個葉子節(jié)點,右樹有兩個葉子節(jié)點,最終的特征即為五維的向量。對于輸入x,假設(shè)他落在左樹第一個節(jié)點,編碼[1,0,0],落在右樹第二個節(jié)點則編碼[0,1],所以整體的編碼為[1,0,0,0,1],這類編碼作為特征,輸入到LR中進行分類。

這個方案還是很簡單的吧,在繼續(xù)介紹下去之前,我們先介紹一下代碼實踐部分。

本文介紹的代碼只是一個簡單的Demo,實際中大家需要根據(jù)自己的需要進行參照或者修改。

github地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/GBDT%2BLR-Demo

訓(xùn)練GBDT模型本文使用lightgbm包來訓(xùn)練我們的GBDT模型,訓(xùn)練共100棵樹,每棵樹有64個葉子結(jié)點。

df_train=pd.read_csv('data/train.csv')df_test=pd.read_csv('data/test.csv')NUMERIC_COLS=["ps_reg_01","ps_reg_02","ps_reg_03","ps_car_12","ps_car_13","ps_car_14","ps_car_15",]print(df_test.head(10))y_train=df_train['target']#traininglabely_test=df_test['target']#testinglabelX_train=df_train[NUMERIC_COLS]#trainingdatasetX_test=df_test[NUMERIC_COLS]#testingdataset#createdatasetforlightgbmlgb_train=lgb.Dataset(X_train,y_train)lgb_eval=lgb.Dataset(X_test,y_test,reference=lgb_train)params={'task':'train','boosting_type':'gbdt','objective':'binary','metric':{'binary_logloss'},'num_leaves':64,'num_trees':100,'learning_rate':0.01,'feature_fraction':0.9,'bagging_fraction':0.8,'bagging_freq':5,'verbose':0}#numberofleaves,willbeusedinfeaturetransformationnum_leaf=64print('Starttraining...')#traingbm=lgb.train(params,lgb_train,num_boost_round=100,valid_sets=lgb_train)print('Savemodel...')#savemodeltofilegbm.save_model('model.txt')print('Startpredicting...')#predictandgetdataonleaves,trainingdata

特征轉(zhuǎn)換

在訓(xùn)練得到100棵樹之后,我們需要得到的不是GBDT的預(yù)測結(jié)果,而是每一條訓(xùn)練數(shù)據(jù)落在了每棵樹的哪個葉子結(jié)點上,因此需要使用下面的語句:

y_pred=gbm.predict(X_train,pred_leaf=True)

打印上面結(jié)果的輸出,可以看到shape是(8001,100),即訓(xùn)練數(shù)據(jù)量*樹的棵樹

結(jié)果為:

print(np.array(y_pred).shape)print(y_pred[0])

然后我們需要將每棵樹的特征進行one-hot處理,如前面所說,假設(shè)第一棵樹落在43號葉子結(jié)點上,那我們需要建立一個64維的向量,除43維之外全部都是0。因此用于LR訓(xùn)練的特征維數(shù)共num_trees * num_leaves。

print('Writingtransformedtrainingdata')transformed_training_matrix=np.zeros([len(y_pred),len(y_pred[0])*num_leaf],dtype=np.int64)#N*num_tress*num_leafsforiinrange(0,len(y_pred)):temp=np.arange(len(y_pred[0]))*num_leaf+np.array(y_pred[I])transformed_training_matrix[i][temp]+=1

當(dāng)然,對于測試集也要進行同樣的處理:

y_pred=gbm.predict(X_test,pred_leaf=True)print('Writingtransformedtestingdata')transformed_testing_matrix=np.zeros([len(y_pred),len(y_pred[0])*num_leaf],dtype=np.int64)foriinrange(0,len(y_pred)):temp=np.arange(len(y_pred[0]))*num_leaf+np.array(y_pred[I])transformed_testing_matrix[i][temp]+=1

LR訓(xùn)練然后我們可以用轉(zhuǎn)換后的訓(xùn)練集特征和label訓(xùn)練我們的LR模型,并對測試集進行測試:

lm=LogisticRegression(penalty='l2',C=0.05)#logesticmodelconstructionlm.fit(transformed_training_matrix,y_train)#fittingthedatay_pred_test=lm.predict_proba(transformed_testing_matrix)#Givetheprobabiltyoneachlabel

我們這里得到的不是簡單的類別,而是每個類別的概率。

效果評價在Facebook的paper中,模型使用NE(Normalized Cross-Entropy),進行評價,計算公式如下:

代碼如下:

NE=(-1)/len(y_pred_test)*sum(((1+y_test)/2*np.log(y_pred_test[:,1])+(1-y_test)/2*np.log(1-y_pred_test[:,1])))print("NormalizedCrossEntropy"+str(NE))

現(xiàn)在的GBDT和LR的融合方案真的適合現(xiàn)在的大多數(shù)業(yè)務(wù)數(shù)據(jù)么?現(xiàn)在的業(yè)務(wù)數(shù)據(jù)是什么?是大量離散特征導(dǎo)致的高維度離散數(shù)據(jù)。而樹模型對這樣的離散特征,是不能很好處理的,要說為什么,因為這容易導(dǎo)致過擬合。下面的一段話來自知乎:

用蓋坤的話說,GBDT只是對歷史的一個記憶罷了,沒有推廣性,或者說泛化能力。

但這并不是說對于大規(guī)模的離散特征,GBDT和LR的方案不再適用,感興趣的話大家可以看一下參考文獻2和3,這里就不再介紹了。

剛才提到了阿里的蓋坤大神,他的團隊在2017年提出了兩個重要的用于CTR預(yù)估的模型,MLR和DIN,之后的系列中,我們會講解這兩種模型的理論和實戰(zhàn)!歡迎大家繼續(xù)關(guān)注!

1、Facebook的paper:http://quinonero.net/Publications/predicting-clicks-facebook.pdf2、http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm3、https://blog.csdn.net/shine19930820/article/details/717136804、https://www.zhihu.com/question/358215665、https://github.com/neal668/LightGBM-GBDT-LR/blob/master/GBFT%2BLR_simple.py

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4771

    瀏覽量

    100719
  • LR
    LR
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    10040
  • GBDT
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    3893

原文標題:推薦系統(tǒng)遇上深度學(xué)習(xí)(十)--GBDT+LR融合方案實戰(zhàn)

文章出處:【微信號:atleadai,微信公眾號:LeadAI OpenLab】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    簡單了解一下各種電源端口的命名

    了解電源之前,先來簡單了解一下各種電源端口的命名VCC:C=circuit表示電路的意思,即接入電路的電壓。VDD:D=device表示器件的意思,即器件內(nèi)部的工作電壓。VSS:S=series表示
    發(fā)表于 12-27 07:15

    USB顯微鏡,不想了解一下嗎?

    USB顯微鏡,不想了解一下嗎? 近日,在很多國外網(wǎng)站上都搜的到配備了USB接口的數(shù)字顯微鏡,他們打破了傳統(tǒng)顯微鏡機體笨重,操作復(fù)雜的傳統(tǒng),
    發(fā)表于 04-28 10:24 ?3531次閱讀

    宏碁智能佛珠了解一下

    朋友,最近工作順利嗎?家庭幸福嗎?生活美滿嗎?看你心情復(fù)雜,要不要了解一下宏碁剛發(fā)布的智能佛珠?
    的頭像 發(fā)表于 08-08 16:27 ?3554次閱讀

    GBDT算法原理以及實例理解

    GBDT 的全稱是 Gradient Boosting Decision Tree,梯度提升樹,在傳統(tǒng)機器學(xué)習(xí)算法中,GBDT算的上TOP3的算法。
    的頭像 發(fā)表于 04-28 16:47 ?2.8w次閱讀
    <b class='flag-5'>GBDT</b>算法原理以及實例理解

    XGBoost原理概述 XGBoost和GBDT的區(qū)別

    相比于經(jīng)典的GBDT,xgboost做了些改進,從而在效果和性能上有明顯的提升。
    的頭像 發(fā)表于 07-16 18:54 ?7.9w次閱讀
    XGBoost原理概述 XGBoost和<b class='flag-5'>GBDT</b>的區(qū)別

    帶你了解一下什么是USB 3.1接口

    盡管USB是外部設(shè)備中最常見的連接,但它有很多的版本,不同的接頭和連接類型都令人困惑不解。USB 3.1是當(dāng)今最常見的標準之,但它究竟是什么呢?它與之前和之后的版本有什么不同?讓我們來詳細了解一下。
    發(fā)表于 09-23 17:31 ?1.7w次閱讀

    邏輯回歸與GBDT模型各自的原理及優(yōu)缺點

    、GBDT+LR簡介 協(xié)同過濾和矩陣分解存在的劣勢就是僅利用了用戶與物品相互行為信息進行推薦, 忽視了用戶自身特征, 物品自身特征以及上下文信息等,導(dǎo)致生成的結(jié)果往往會比較片面。而這次介紹的這個
    的頭像 發(fā)表于 12-26 10:01 ?1.2w次閱讀
    邏輯回歸與<b class='flag-5'>GBDT</b>模型各自的原理及優(yōu)缺點

    GBDT是如何用于分類的

    ? 因為用樹模型太習(xí)以為常了,以至于看到這個標題很容易覺得這很顯然。但越簡單的東西越容易出現(xiàn)知識盲區(qū),仔細想一下好像確實有點疑問:GBDT 用的是回歸樹,是如何做的分類呢? - 作者:1直在路上1
    的頭像 發(fā)表于 12-26 10:30 ?3165次閱讀
    <b class='flag-5'>GBDT</b>是如何用于分類的

    了解一下不同的SAR ADC可用模擬輸入類型資料下載

    電子發(fā)燒友網(wǎng)為你提供了解一下不同的SAR ADC可用模擬輸入類型資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-07 08:41 ?26次下載
    <b class='flag-5'>了解</b><b class='flag-5'>一下</b>不同的SAR ADC可用模擬輸入類型資料下載

    兼顧大功率和高能效:這款WAYON維安無橋240W電源模塊方案 了解一下

    兼顧大功率和高能效:這款WAYON維安無橋240W電源模塊方案 了解一下
    的頭像 發(fā)表于 01-06 13:46 ?1556次閱讀
    兼顧大功率和高能效:這款WAYON維安無橋240W電源模塊<b class='flag-5'>方案</b> <b class='flag-5'>了解</b><b class='flag-5'>一下</b>

    大哥!100W移動電源方案,了解一下

    100W移動電源方案了解一下!
    的頭像 發(fā)表于 06-02 19:03 ?2430次閱讀
    大哥!100W移動電源<b class='flag-5'>方案</b>,<b class='flag-5'>了解</b><b class='flag-5'>一下</b>

    了解一下光纖傳輸?shù)奶攸c

    光纖作為綜合布線種常見的傳輸媒介,很多人搞不清楚光纖和光纜這兩者,光纖是光傳導(dǎo)工具,傳輸原理是“光的全反射”,被用作長距離的信息傳遞,下面跟著科蘭小編一起來了解一下光纖傳輸?shù)奶攸c。
    的頭像 發(fā)表于 06-08 13:42 ?843次閱讀

    虹科帶你來了解一下汽車以太網(wǎng)和TSN的測試標準

    虹科帶你來了解一下汽車以太網(wǎng)和TSN的測試標準
    的頭像 發(fā)表于 12-22 17:46 ?3542次閱讀
    虹科帶你來<b class='flag-5'>了解</b><b class='flag-5'>一下</b>汽車以太網(wǎng)和TSN的測試標準

    了解一下“薄膜厚度監(jiān)控”

    光學(xué)鍍膜干貨來了!了解一下“薄膜厚度監(jiān)控”
    的頭像 發(fā)表于 07-20 10:11 ?862次閱讀
    <b class='flag-5'>了解</b><b class='flag-5'>一下</b>“薄膜厚度監(jiān)控”

    無需電流采樣電阻的智能電機驅(qū)動IC,不來了解一下么?

    無需電流采樣電阻的智能電機驅(qū)動IC,不來了解一下么?
    的頭像 發(fā)表于 11-30 17:43 ?452次閱讀
    無需電流采樣電阻的智能電機驅(qū)動IC,不來<b class='flag-5'>了解</b><b class='flag-5'>一下</b>么?
    主站蜘蛛池模板: 婷婷亚洲五月色综合久久| 亚洲欧美自拍明星换脸| 最近2019年日本中文免费字幕| 国产360激情盗摄全集| 免费完整版观看| 亚洲色欲色欲综合网站| 国产不卡视频在线| 欧美精品3atv一区二区三区| 亚洲中文有码字幕日本| 国产精品久久人妻拍拍水牛影视| 欧美2019高清hd巨大| 在线观看黄色小说| 国产亚洲AV无码成人网站| 日韩一区二区三区四区区区| 777久久人妻少妇嫩草AV| 簧片免费观看| 亚洲国产成人精品无码区99| 国产99久久亚洲综合精品西瓜tv| 男女做爽爽爽视频免费软件 | 国产成人无码精品久久久影院 | 四虎影院2022| 99久久网站| 榴莲黄版无限刷| 亚洲一级电影| 国模丽丽啪啪一区二区| 午夜国产理论| 父亲猜女儿在线观看| 人人射人人插| 99国产精品欲AV蜜桃臀麻豆| 老少配xxxxx欧美| 在线观看免费av网| 久久免费观看视频| 亚洲综合中文| 精品动漫国产亚洲AV在线观看| 亚洲 在线 日韩 欧美| 国产精品视频第一区二区三区| 骚妇BB双飞插| 成人天堂资源WWW在线| 欧洲老妇人bb| 澳大利亚剧满足在线观看| 秋霞电影网午夜一级鲁丝片|