天池新人實戰賽之[離線賽]題目與思路


1.1課題介紹

本課題以阿里巴巴移動電商平台的真實用戶-商品行為數據為基礎,同時提供移動時代特有的位置信息。您需要通過大數據和算法構建面向移動電子商務的商品推薦模型,挖掘數據背后豐富的內涵,為移動用戶在合適的時間、合適的地點精准推薦合適的內容。

在真實的業務場景下,我們往往需要對所有商品的一個子集構建個性化推薦模型。在完成這件任務的過程中,我們不僅需要利用用戶在這個商品子集上的行為數據,往往還需要利用更豐富的用戶行為數據。

如下是一個真實的業務場景:

給出一定量用戶在時間段1118~1218內的移動端行為數據(D),

需要預測1219日用戶對商品子集(P)的購買數據。具體的數據說明下面將會詳細介紹。

1.1.1數據說明

提供的數據包含兩個部分。第一部分是用戶在商品全集上的移動端行為數據(D表名為tianchi_mobile_recommend_train_user,包含如下字段:

 字段

字段說明

提取說明

user_id

用戶標識

抽樣&字段脫敏

item_id

商品標識

字段脫敏

behavior_type

用戶對商品的行為類型

包括瀏覽、收藏、加購物車、購買,對應取值分別是1234

user_geohash

用戶位置的空間標識,可以為空

由經緯度通過保密的算法生成

item_category

商品分類標識

字段脫敏

Time

行為時間

精確到小時級別

 

D集合的記錄顯示如下:

每一行代表了用戶 user_id 對屬於分類 item_category 的物品 item_id  time 這個時間於地點 user_geohash 發生了交互,交互類型是 behavior_type behavior_type 包括瀏覽、收藏、加購物車、購買,對應取值分別是1234

給出的一共包含31天的交互數據,最后要預測32天有哪些user會購買哪些item

第二個部分是商品子集(P,表名為tianchi_mobile_recommend_train_item,包含如下字段: 

 字段

字段說明

提取說明

item_id

 商品標識

 抽樣&字段脫敏

 item_ geohash

商品位置的空間標識,可以為空

由經緯度通過保密的算法生成

item_category 

商品分類標識

字段脫敏

這部分數據,是 tianchi_mobile_recommend_train_user中出現的物品item_id的一個子集。官方的第32天的會發生購買的 user, item 中的item都是這個數據表中的item,所以我們預測的 user, item 需要根據這個文件來過濾掉一些結果。

訓練數據包含了抽樣出來的一定量用戶在一個月時間(11.18~12.18)之內的移動端行為數據(D),評分數據是這些用戶在這個一個月之后的一天(12.19)對商品子集(P)的購買數據。您需要使用訓練數據建立推薦模型,並輸出用戶在接下來一天對商品子集購買行為的預測結果。 

1.1.2   輸出要求

完成用戶對商品子集P的購買預測之后,需要將結果放入指定格式的數據表(非分區表)中,要求結果表名為:tianchi_mobile_recommendation_predict,包含user_iditem_id兩列(均為string類型),要求去除重復。

表名:tianchi_mobile_recommendation_predict

結果表樣例:

字段

字段類型

示例

User_id

String

100001

Item_id

String

12900

1.1.3   評估指標

比賽采用經典的精確度(precision)、召回率(recall)F1值作為評估指標。具體計算公式如下:

其中PredictionSet為算法預測的購買數據集合,ReferenceSet為真實的答案購買數據集合。我們以F1值作為最終的唯一評測標准。

 

2.1解答

2.1.1題目解讀

已知 用戶在時間段11月18日~12月18日內的移動端行為數據(D), 預測12月19日用戶對商品子集(P)的購買數據。
數據(D),表名為tianchi_mobile_recommend_train_user, 包含如下字段

 字段

字段說明

提取說明

user_id

用戶標識

抽樣&字段脫敏

item_id

商品標識

字段脫敏

behavior_type

用戶對商品的行為類型

包括瀏覽、收藏、加購物車、購買,對應取值分別是1234

user_geohash

用戶位置的空間標識,可以為空

由經緯度通過保密的算法生成

item_category

商品分類標識

字段脫敏

Time

行為時間

精確到小時級別

 

商品子集(P,表名為tianchi_mobile_recommend_train_item,包含如下字段: 

 字段

字段說明

提取說明

item_id

 商品標識

 抽樣&字段脫敏

 item_ geohash

商品位置的空間標識,可以為空

由經緯度通過保密的算法生成

item_category 

商品分類標識

字段脫敏

其中, 預測的用戶為數據(D)中用戶,預測的備選商品 數據(P)為數據(D)中商品的子集。預測用戶在12月19日有可能會購買多個不同備選商品。

輸出表名為:tianchi_mobile_recommendation_predict,結果表樣例如下:

字段

字段類型

示例

User_id

String

100001

Item_id

String

12900

 
 

2.1.1我的思路

准則
1、用戶在19日前幾天的網頁行為中次數最多的,最有可能成為19日用戶的購買商品
2、用戶需求商品沒在備選商品中時,
     2.1用戶有可能根據商品類別 item_category購買了同一類商品或者商品相關度高的商品
     2.2前一個月里,備選商品銷售量最大的最有可能成為用戶購買的商品
 
步驟
 
1、對數據(D)做清洗,將網頁行為behavior_type轉換為liulan、shoucang、jiagou和buy4個變量;分割時間字符串數據,將其分類year、month、day和hour4個變量,生成 Data1.csv
2、 提取出用戶前3天的網頁行為數據(12月16日至18日),生成bhv.csv(user_id , item_id, liulan, shoucang, jiagou, buy)
3、在bhv.csv表中計算用戶需求指數Staneed <-Data$liulan*1+Data$shoucang*3+Data$jiagou*6,並對每個用戶提取出指數大小前3的數據(user_id、item_id、Staneed、ind(排名1、2、3) ),生成userneed.csv,其中部分商品為備選商品,還有一部分是特有的,需要根據其它准則替換成備選商品。
4、標記出在userneed.csv中的商品類別存在而在數據(P)備選商品類別中不存在的商品數據,從 Data1.csv數據總表(增加 Staneed變量)提取出userneed.csv中特有的數據(P)中備選商品類別的數據行( 612706 ),並將這些數據轉換為列為用戶,行為商品,內容為Staneed的矩陣(cast函數)數據大,失敗!,計算這些商品類別之間的距離,在userneed中特有商品類別取備選商品類別中最近的一個。
5、 從Data1.csv數據總表(增加Staneed變量)中提取在備選數據(P)中對應商品行數據,並僅提取出(item_id,Staneed)兩列數據,取Staneed最大的商品item_id作為userneed.csv中特有商品的替換商品。生成預測結果result.csv
 
沒有用到的數據:hour、商品地理坐標、商品分類數據
 
后記:

沒有用模型,結果不理想。(2016-03-21 17:06:17提交)F1和精准率為0,目前排名為103




免責聲明!

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



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