比賽鏈接:https://www.kesci.com/home/competition/5ab8c36a8643e33f5138cba4
比賽排名:14/1392
一.數據劃分
初賽(定長窗口):
train | test | ||
特徵區間 | 標籤區間 | 特徵區間 | 標籤區間 |
1-16 | 17-23 | 15-30 | 31-37 |
8-23 | 24-30 |
複賽(變長窗口):
train | test | ||
特徵區間 | 標籤區間 | 特徵區間 | 標籤區間 |
1-16 | 17-23 | 1-30 | 31-37 |
1-23 | 24-30 |
複賽中,複賽的滑窗方法比初賽的滑窗方法提分明顯,我們推斷可能有以下原因:
(1)變長窗口可以預測全範圍的用戶活躍概率,而定長窗口只能預測特徵區間內的所有用戶。
(2)變長窗口有利於線下的驗證集構造,因爲數據分佈基本一致,保持線上線下一致,而定長窗口的切分窗口數據好。
(3)變長窗口構造的訓練集比定長窗口多。
二.特徵工程
1.時間特徵
用戶啓動app的天數
用戶拍攝的天數
用戶行爲的天數
用戶第一次啓動app距離預測日的天數
用戶第一次拍攝距離預測日的天數
用戶第一次行爲距離預測日的天數
用戶最後一次啓動app距離預測日的天數
用戶最後一次拍攝距離預測日的天數
用戶最後一次行爲距離預測日的天數
用戶第一次和最後次啓動app距離的天數
用戶第一次和最後次拍攝距離的天數
用戶第一次和最後次行爲距離的天數
用戶啓動app相距最長天數
用戶拍攝相距最長天數
用戶行爲相距最長天數
用戶啓動app相距最短天數
用戶拍攝相距最短天數
用戶行爲相距最短天數
各個行爲類型用戶第一次行爲距離預測日的天數( 去除最後兩種 )
各個行爲類型用戶最後一次行爲距離預測日的天數(去除最後兩種)
2.統計特徵
用戶啓動app次數
用戶拍攝次數
用戶行爲次數
用戶對各個頁面的行爲數
用戶對各個行爲類型的行爲數(去除最後兩種)
用戶最後第n(n=1,2,3)天的拍攝數
用戶最後第n(n=1,2,3,4,5,6,7)天的行爲數
用戶最後n(n=2,3,4,5,6,7)天的APP啓動數
用戶最後n(n=2,3,4,5,6,7)天的拍攝數
用戶最後n(n=2,3,4,5,6,7)天的行爲數
用戶各個行爲類型最後第n(n=1,2,3)天的行爲數(去除最後兩種)
用戶各個頁面最後第n(n=1,2,3)天的行爲數
用戶觀看視頻作者的人數
用戶觀看視頻的人數
用戶視頻操作的數量
3.最大值特徵
拍攝日誌APP每天啓動次數最大值
行爲日誌APP每天啓動次數最大值
4.基礎特徵
用戶註冊類型
用戶設備類型
三.模型參數
param = {'booster': 'gbtree',
'silent': 1,
'eta': 0.03,
'min_child_weight': 5,
'max_depth': 5,
'subsample': 0.8,
'colsample': 0.8,
'scale_pos_weight': 1,
'objective': 'binary:logistic',
'eval_metric': 'logloss'}
plst = param.items()
bst = xgb.train(plst, dtrain, num_boost_round=440)
四.收穫與總結
1.參數(比賽後期無思路時選擇)
minchildweight=0,num_round=1300
2.代碼優化(針對訓練集過大導致程序無法運行)
由於複賽數據量增大,使得我們在運行程序的過程中常常會出現運存不足導致程序運行失敗,所以在這種情況下我們要合理的設置程序結構,對於暫時用不着的變量直接del,然後gc.collect()
3.時間衰減(根據時間給予一定權重)
對於時間衰減問題,可以對統計的特徵按照時間先後給與一定的權重
4.節假日處理(針對節假日數據有區別時採用)
對週末兩天和其他五天的特徵做比較或者分開統計
5.滑窗(不同滑窗構造不同模型)
設置窗口不能破壞數據的週期性。此外,可以嘗試不同的滑窗來進行融合,也可以用不同的滑窗來測試特徵,因爲有些特徵在不同的滑窗的效果可能有很大區別。
6.多模型嘗試
構建lr,gbdt,lgb用於模型融合
五.Top10隊伍答辯ppt總結
1.數據劃分
train | test | ||
特徵區間 | 標籤區間 | 特徵區間 | 標籤區間 |
1-9 | 10-16 | 1-30 | 31-37 |
1-16 | 17-23 | ||
1-23 | 24-30 |
2.特徵
(1)特徵二次構造,解決不同區間統計特徵分佈差異問題
啓動天數==>啓動頻率=啓動天數/區間天數
總活躍次數==>日均活躍次數=總活躍次數/區間天數
(2)離散化,增強魯棒性及去燥
上週是否上傳視頻
行爲頻率,工作日是否大於節假日
(3)對於有的行爲類型數很少,如何處理
認爲除了播放行爲,其他行爲都是帶有感情色彩的,因此可以直接相加。
從感情色彩的強度分析:舉報>轉發>喜歡==不喜歡>播放
emotion_activity=點贊+不喜歡+2*轉發+3*舉報
(4)TF-IDF
合理性:表示某個用戶與author_id的親密程度,用於區分特定的用戶羣體。其中,author_id類似於文檔,user_id類似於單詞。
user_id1 | user_id2 | user_id3 | user_id4 | user_id5 | |
author_id1 | 3 | 0 | 1 | 0 | 2 |
author_id2 | 1 | 1 | 2 | 1 | 1 |
author_id3 | 0 | 3 | 0 | 0 | 0 |
authod_id4 | 1 | 2 | 2 | 1 | 2 |
3.模型融合
構造多個模型,主要從以下角度:
(1)不同模型採用不同的數據劃分
(2)不同的模型給予不同的特徵
採用rank融合
4.trick
根據規則強制給異常用戶(註冊類型爲3的用戶)在預測結果中賦予0