日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【竞赛经验分享】2020腾讯广告算法大赛:如何突破分数瓶颈?

發(fā)布時間:2025/3/8 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【竞赛经验分享】2020腾讯广告算法大赛:如何突破分数瓶颈? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫在前面

期待已久的2020騰訊廣告算法大賽終于開始了,本屆賽題“廣告受眾基礎(chǔ)屬性預(yù)估”。本文將給出解題思路,以及最完備的競賽資料,助力各位取得優(yōu)異成績!!!

報名鏈接:https://algo.qq.com/signup.html?rfisource=DSFISH

豪不夸張的說,看完這篇文章你也可以突破1.4分,同時對于1.4之后的提升,比如1.41,或者1.42+,也會給出更多建議和思考方向。

每個分數(shù)階段都有不同的知識點需要去學(xué)習(xí),我將上分之路按《王者榮耀》段位進行排列,從1.30到1.40+,從倔強青銅到最強王者。

倔強青銅

分數(shù)達到1.30,kfold+lgb

這個階段還是比較簡單的,稍微做些合適的特征就能達到1.30左右。這里不妨使用最簡單的目標編碼和聚合統(tǒng)計特征,模型選擇lgb就可以了。

首先是目標編碼,我們使用kfold進行交叉統(tǒng)計,詳細代碼結(jié)構(gòu)可以參考:

https://github.com/bettenW/Tencent2019_Finals_Rank1st/blob/master/wh/wh_LGB.py

for?fold_,(trn_idx,val_idx)?in?enumerate(folds.split(data_df,data_df)):Log_trn?????=?data_df.iloc[trn_idx]#?meanorder_label?=?Log_trn.groupby([feat])[f].mean()tmp?????????=?data_df.loc[data_df.fold==fold_,[feat]]data_df.loc[data_df.fold==fold_,?colname1]?=?tmp[feat].map(order_label)test_df[colname1]?=?None order_label???=?data_df.groupby([feat])[f].mean() test_df[colname1]?=?test_df[feat].map(order_label)

?接下來是用戶序列信息進行聚合,具體操作參考代碼:

def aggregate_features(df_, prefix):df = df_.copy()agg_func = {'特征1':??['count','nunique'],'特征2':??['nunique'],'特征3':??['mean','max','min','std'],}?agg_df?=?df.groupby(['主鍵']).agg(agg_func)agg_df.columns = [prefix + '_'.join(col).strip() for col in agg_df.columns.values]agg_df.reset_index(drop=False,?inplace=True)return agg_df

特征部分大功告成,下面就可以進行訓(xùn)練了。5折lgb即可。

秩序白銀

分數(shù)達到1.35,kfold+countvec+lgb

相較1.30,本階段考慮詞頻統(tǒng)計特征,保留用戶歷史序列中的所有點擊ID信息,當然tfidf也可以一起使用,這樣下來會有90多w維,可以考慮在參數(shù)上進行設(shè)置,如max_feature和min_df,減少維度。

from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer cntv = CountVectorizer(min_df=30) cntv_user?=?cntv.fit_transform(click_seq)

這樣的結(jié)果就不要進行其它格式的轉(zhuǎn)換了,直接當作稀疏矩陣訓(xùn)練即可。

from scipy import sparse train_csr = sparse.csr_matrix(train_df[features]) test_csr = sparse.csr_matrix(test_df[features]) # CountVectorizer結(jié)果合并 train_csr = sparse.hstack((train_csr, cntv_user[:900000])).tocsr() test_csr = sparse.hstack((test_csr , cntv_user[900000:])).tocsr()

榮耀黃金

分數(shù)達到1.40,kfold+countvec+tfidf+stacking+lgb

下面來的1.40階段,我們依然使用lgb模型。在前面的基礎(chǔ)了,本階段添加了tfidf的模型訓(xùn)練概率結(jié)果作為特征,也將其看作stacking,具體分為三步:

#?第一步:得到tfidf結(jié)果 tfidf = TfidfVectorizer(min_df=30) tfidf_user?=?tfidf.fit_transform(click_seq) # 第二步:進行多模型的訓(xùn)練 # 五折交叉訓(xùn)練 #?選擇簡單的子模型 from sklearn.linear_model import LogisticRegression from sklearn.linear_model import SGDClassifier from sklearn.linear_model import PassiveAggressiveClassifier from sklearn.linear_model import RidgeClassifier from sklearn.naive_bayes import BernoulliNB from sklearn.naive_bayes import MultinomialNB #?第三步:保存訓(xùn)練集概率和測試集概率作為特征給lgb

尊貴白金

分數(shù)達到1.40+,lgb進行很難繼續(xù)上分了,需要嘗試nn方法

? ? ? ?本賽題與NLP關(guān)聯(lián)還是非常大的,首先,我們來看下如何和NLP問題聯(lián)系起來。用戶在90天內(nèi)點擊了不同的廣告,我們可以將每個廣告看作一個單詞word,然后把這些單詞連接起來組成一句話[creative_id_1,creative_id_2,…,creative_id_n]。由于每個廣告有不同屬性,如廣告主id,并且每個用戶點擊廣告也有不同屬性,如點擊次數(shù),這樣對于每個用戶我們就可以得到8種文本。那么剩下的問題就是根據(jù)這8種文本如何預(yù)測用戶的年齡和性別。

? ? ? ?在NLP中,預(yù)測文本的類別有許多模型,比如lstm, gru, transformer等。對于8種文本,我們將他們看成正常的文本,然后輸入到常見的NLP模型中,在輸出端做多分類即可。

在之后的文章還將分享永恒鉆石、至尊星耀和最強王者三個段位的上分之路,希望大家持續(xù)關(guān)注。Coogle也將帶來更多干貨分享!!!

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯AI基礎(chǔ)下載(pdf更新到25集)機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯本站qq群1003271085,加入微信群請回復(fù)“加群”獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看

總結(jié)

以上是生活随笔為你收集整理的【竞赛经验分享】2020腾讯广告算法大赛:如何突破分数瓶颈?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。