from: 七月在線數組
電商推薦與銷量預測相關案例
1、預測用戶對哪一個事件感興趣(感興趣不必定去參加)
用戶歷史參加事件、社交信息、瀏覽信息(app)、要預測的事件數據結構
recall:召回率app
準確率:函數
協同過濾不考慮賣/買的東西是什麼,只關心歷史數據中哪兩個用戶的興趣度同樣。(1-2)spa
(2,3 -> 3)(視做分類模型:LR/SVM/GBDT/DNN/RF,除了預測感興趣與不感興趣,還想知道感興趣的程度--機率)svm也會輸出機率,可是用的很少。3d
2、代碼
1. import pickle (py3)內存不足的時候,能夠保持原來的數據結構,Load到本地,是二進制的。Load很快,若是原來是字典,load內存後仍然是字典;若是原來是數組,load內存後仍然是數組。 (py2 import cPickle)blog
2. 處理關聯數據:只處理有共同行爲的關聯信息事件
1)計算關聯用戶:內存
歷史信息:計算cosine類似度it
註冊時的我的信息:計算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. 交叉驗證訓練數據
數據與特徵決定上限,模型只是逼近上限
對最終結果,數據與特徵更重要一些