問題描述
基于用戶app的下載和使用情況預(yù)測用戶的人口屬性(性別和年齡)。
數(shù)據(jù)說明
- gender_age:訓(xùn)練和測試集
- events, app_events: 當(dāng)用戶使用TakingData SDK時,系統(tǒng)記錄的日志列疗。包括經(jīng)緯度和對應(yīng)app情況刨秆。
- phone_brand_device_mode:用戶的手機(jī)屬性
數(shù)據(jù)分析
基本數(shù)據(jù)
如上圖所示可柿,選手要做的不是直接預(yù)測用戶的性別和年齡散休,而是把預(yù)測用戶屬于哪個性別/年里的分組单鹿。在這個比賽中馏予,賽題舉辦方將用戶分為12個組天梧,例如M32-38,該用戶為男性霞丧,年齡在32-38歲之間呢岗。選手給出預(yù)測結(jié)果,采用的評分機(jī)制是logloss蛹尝。
年齡和性別分布
基于手機(jī)類型的性別分布
可以猜想后豫,用戶的年齡和性別跟使用的手機(jī)型號和使用的app會有一定關(guān)系,直接用圖標(biāo)來說明問題突那。
橫坐標(biāo)是不同的手機(jī)型號挫酿,縱坐標(biāo)是性別的分布情況。整體上男性的比例大于女性(猜想這些sdk都是基于Android的愕难,Android用戶中早龟,女性用戶大于男性用戶),在某些手機(jī)的型號中猫缭,男女比例是用顯著不同的葱弟。
基于手機(jī)類型的年齡分布
大多數(shù)看起來都一樣,沒有明顯區(qū)別猜丹。
解決方案
1芝加、基于手機(jī)品牌,型號和安裝app(brand射窒,model藏杖,app)
- one-hot brand
- one-hot model
- one-hot app
- one-hot app-label
- sparse representation
- logistic Regression or XGBoost
- score:2.273 CV / 2.265 LB
2老赤、深度學(xué)習(xí)方法
該方法主要基于方法1,在方法1的基礎(chǔ)上增加了一些tf-idf的特征制市。由于處理好的特征和維度和一張圖片的維度比較類似,所以有些選手分享了一些基于深度學(xué)習(xí)的方法弊予,這些方法在這個問題中也取得了比較好的效果祥楣。
- TF-IDF of brand and model and app labels
- Frequency of brands and model names
- sparse representation
- 3 layers Dense with 3 layers Dropout neural network
- score:2.23452 LB (+ 0.03)
3、數(shù)據(jù)泄露
這是一個很有爭議的比賽汉柒,因?yàn)樵诒敬伪荣愔谐霈F(xiàn)了嚴(yán)重的數(shù)據(jù)泄露误褪,可以看到,在比賽的最后階段碾褂,利用數(shù)據(jù)泄露的隊(duì)伍成績得到了大幅度提升兽间。提升幅度約為0.06
參考價值
- 準(zhǔn)確率:基于安裝app來預(yù)測用戶的人口屬性的效果比較一般,在訓(xùn)練的過程中觀察到的準(zhǔn)確率約為20%-30%之間正塌,我覺得基于安裝app很難將準(zhǔn)確率進(jìn)行進(jìn)一步的提高嘀略。
- 數(shù)據(jù)情況:我們有著更高質(zhì)量的數(shù)據(jù),比如網(wǎng)站的注冊情況乓诽,BOC購買情況帜羊,賬單消費(fèi)情況等,會比基于安裝app的預(yù)測取得更好的效果鸠天。
- 其他方面:在特征比較多的情況下讼育,采用深度學(xué)習(xí)的方法可以節(jié)省很多特征工程的時間,效果也比較突出稠集。但是采用什么結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)奶段,采用怎么樣的學(xué)習(xí)參數(shù),都是需要進(jìn)一步的實(shí)驗(yàn)剥纷。