推薦系統相關比賽-kaggle


from: 七月在線

電商推薦與銷量預測相關案例

一、預測用戶對哪個事件感興趣(感興趣不一定去參加)

用戶歷史參加事件、社交信息、瀏覽信息(app)、要預測的事件

recall:召回率

准確率:

協同過濾不考慮賣/買的東西是什么,只關心歷史數據中哪兩個用戶的興趣度一樣。(1-2)

(2,3 -> 3)(視作分類模型:LR/SVM/GBDT/DNN/RF,除了預測感興趣與不感興趣,還想知道感興趣的程度--概率)svm也會輸出概率,但是用的不多。

二、代碼

1. import pickle (py3)內存不足的時候,可以保持原來的數據結構,Load到本地,是二進制的。Load很快,如果原來是字典,load內存后仍然是字典;如果原來是數組,load內存后仍然是數組。  (py2 import cPickle)

2. 處理關聯數據:只處理有共同行為的關聯信息

1)計算關聯用戶:

歷史信息:計算cosine相似度

注冊時的個人信息:計算cosine相似度

相似度可使用屬性:位置、時區、注冊時間(可能是小伙伴邀請注冊)、國家id、性別等(在數據處理時全部轉換成數值)用戶維度處理信息

2)用戶社交關系挖掘

朋友數量,朋友中每個朋友參加活動的頻次

3)構造event和event相似度數據

4)活躍度/event熱度 數據

處理上述特征的時候,歸一化處理

 5)組合上述數據,訓練

mmwrite/mmread 處理時先存到本地,然后訓練時,讀取到內存。可以節省內存

協同過濾:ABCD有相似度,根據BCD的喜歡的東西,對A推薦東西,並給出推薦度。

 便利店銷量預測

 

1. 希望做的事情,提前六周知道未來的銷量。但是每個國家的節日不同,銷量不同。

2. 修改xgboost的loss函數(因為該競賽的loss不是常用的loss,xgboost里沒有該loss)

需要知道loss的一階導數(grad)與二階導數(hess)

2.  除了訓練時修改了xgboost的導數,還要定義對應的loss,在訓練時把loss作為參數傳進去。

3. 與時間有很緊密的聯系:促銷、葯店(流感期)

4. xgboost可以顯示特征重要性

5. lightgbm比xgboost快一些

6. 交叉驗證訓練數據

數據與特征決定上限,模型只是逼近上限

 對最終結果,數據與特征更重要一些

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM