京東算法大賽-高潛用戶購買意向預測(二)策略迭代



上一篇中介紹了以爲熱心參賽者的代碼和流程。這篇將記錄自己的策略更新過程。


一 數據特徵統計分析

幾個主要的點:

(1)各類行爲與轉化(購買)之間的關聯關係,包括瀏覽、加入購物車、關注

(2)已購商品的復購率

(3)性別與商品的關聯程度


二 特徵提取

包括用戶特徵,商品特徵,和用戶歷史行爲特徵


三 模型構建

1、商品候選集確認 - 用戶&相關商品,不應該是整個商品集;可能使用到關聯分析,協同過濾

2、模型選擇 - 分類

3、代碼編寫與參數調整

4、效果評估與迭代優化


以下分別按照上面描述進行整理。


二 操作

1、用戶id數據預處理 

用戶行爲數據,提供的JData_Action_201602.csv 中的user_id是浮點型,都帶了個.0,直接跟JData_User.csv關聯稍有麻煩,當然主要是看着不爽,所以先把幾個action文件的數據規範化

(1)格式化user_id 【使用awk 命令,gsub函數】

awk '$0 ~ /.0,/ {gsub(".0,", ",", $0); print}' JData_Action_201602.csv > Format_JData_Action_201602.csv


(2)用戶行爲合併

原始數據中,用戶的行爲是每行一條數據,無法形成行爲序列,所以這裏加一步中間數據的處理,便於分析用戶的商品瀏覽到購買的全流程行爲。給的文件字段說明,是'user_id','sku_id','time','model_id','type','cate','brand' 七個字段,但解析的過程中發現,有不少記錄按照逗號分割後,是6個,例如:

266079.0,138778,2016-01-31 23:59:02,,1,8,403

266079.0,138778,2016-01-31 23:59:03,0,6,8,403

200719.0,61226,2016-01-31 23:59:07,,1,8,30


追查後,發現是第一步處理時導致部分空值丟失。。所以重寫編寫了腳本,這裏一併完成user_id的處理在腳本中實現。

(2.1)用戶維度聚合

(2.2)用戶維度,同一個商品的行爲序列再次聚合,一個商品一個元組



(3)正樣本提取

先明確一下正負樣本的定義:

正樣本:有過非購買行爲,且有購買行爲的用戶記錄(針對同一商品)

負樣本:有過瀏覽等行爲,但最終沒有購買行爲的用戶記錄

初步的目標,就是從有非購買行爲,且有購買行爲的用戶中,分析出其中隱藏的規律,並利用這個規律,對其他有行爲的用戶進行購買行爲的預測

上一篇中介紹了以爲熱心參賽者的代碼和流程。這篇將記錄自己的策略更新過程。

一 數據特徵統計分析

幾個主要的點:

(1)各類行爲與轉化(購買)之間的關聯關係,包括瀏覽、加入購物車、關注

(2)已購商品的復購率

(3)性別與商品的關聯程度

二 特徵提取

包括用戶特徵,商品特徵,和用戶歷史行爲特徵

三 模型構建

1、商品候選集確認 - 用戶&相關商品,不應該是整個商品集;可能使用到關聯分析,協同過濾

2、模型選擇 - 分類

3、代碼編寫與參數調整

4、效果評估與迭代優化

以下分別按照上面描述進行整理。

二 操作

1、用戶id數據預處理 

用戶行爲數據,提供的JData_Action_201602.csv 中的user_id是浮點型,都帶了個.0,直接跟JData_User.csv關聯稍有麻煩,當然主要是看着不爽,所以先把幾個action文件的數據規範化

(1)格式化user_id 【使用awk 命令,gsub函數】

awk '$0 ~ /.0,/ {gsub(".0,", ",", $0); print}' JData_Action_201602.csv > Format_JData_Action_201602.csv

(2)用戶行爲合併

原始數據中,用戶的行爲是每行一條數據,無法形成行爲序列,所以這裏加一步中間數據的處理,便於分析用戶的商品瀏覽到購買的全流程行爲。給的文件字段說明,是'user_id','sku_id','time','model_id','type','cate','brand' 七個字段,但解析的過程中發現,有不少記錄按照逗號分割後,是6個,例如:

266079.0,138778,2016-01-31 23:59:02,,1,8,403

266079.0,138778,2016-01-31 23:59:03,0,6,8,403

200719.0,61226,2016-01-31 23:59:07,,1,8,30

追查後,發現是第一步處理時導致部分空值丟失。。所以重寫編寫了腳本,這裏一併完成user_id的處理在腳本中實現。

(2.1)用戶維度聚合

(2.2)用戶維度,同一個商品的行爲序列再次聚合,一個商品一個元組


(3)正樣本提取

先明確一下正負樣本的定義:

正樣本:有過非購買行爲,且有購買行爲的用戶記錄(針對同一商品)

負樣本:有過瀏覽等行爲,但最終沒有購買行爲的用戶記錄


初步的目標,就是從有非購買行爲,且有購買行爲的用戶中,分析出其中隱藏的規律,並利用這個規律,對其他有行爲的用戶進行購買行爲的預測




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章