基於時間序列的使用者預測模型
前段時間幫朋友做了個電信學院的競賽題
已知使用者一個月前27天的瀏覽和操作記錄
要求根據月末三天的使用者帖子的開啟情況來預測月末三天使用者的點贊或踩行為
這是個典型的分類問題,對與一個使用者瀏覽記錄 判斷使用者是否會操作,進一步預測是點贊或者踩
由於給的特徵是基於時間的日誌記錄,所以也可以定義為時間序列的使用者行為預測
分類問題可以用LR,RF,GBDT,XGBoost,SVM等很多模型來處理,這裡我們採用了比較火的
XGBoost。
要判斷使用者是否會對某個帖子進行點贊或踩,需要提取一系列的特徵來刻畫使用者和帖子
問題的定義:
用u表示一個使用者,p表示帖子,問題即定義一個多類分類器C
C(u,p)={0,1,2} 0表示無操作,1表示贊,2表示踩
或者2個2類分類器C1,C2
C1(u,p) ={0,1} u對p有無操作
C2(u,p) = {0,1} 是贊還是踩
問題定義完後,我們來處理樣本集,題目中的資料已知1-30號的使用者瀏覽資料 ,以及
1-27號的使用者操作資料。要求預測28-30號的使用者操作。
很明顯我們的問題樣本為預測的所有28-30號中使用者u瀏覽過的帖子p
並根據u,p來判斷是否會有點贊行為。
那怎麼來訓練這個模型呢?
我們可以使用1-24號的資料來訓練25-27的點贊行為。
那使用者或者帖子的哪些特徵會對是否點贊有影響呢
使用者的歷史點贊行為,瀏覽點選情況,以及帖子的歷史點贊,點選情況,帖子的熱門度,新鮮度等
基於此我們可以提取以下特徵
使用者:基於預測點(預測為28號,訓練選25號)的前1,3,5,7,10,20天瀏覽,點選,點贊,點踩數
帖子:基於預測點的前前1,3,5,7,10,20天瀏覽,點選,點贊,點踩數
此外還可以找一些其他刻畫特徵
檢視立即點讚的次數,
帖子的熱度:(log(view*0.1+click*0.5)+praise*click/5 + praise) / (0.5*T + 0.5*p_lastday_praise+1)^1.5
T卡片存在時間,p_lastday_praise最後一次點贊時間
帖子的新鮮度:(view*0.1+click*0.5)/(T+1)^G
使用者喜歡的內容(圖片,主題詞)
帖子內容
定義好特徵後,我們可以有資料生成每個帖子和使用者的特徵,
使用者根據25,26,27三天的使用者瀏覽和點贊資料生成訓練集:
<Fui,Fpj>, {0,1}
然後用28,29,30三天的資料來生成要預測的預測集並預測結果。