阿里移动推荐比赛-数加平台的使用_python

前一段时间发表过一篇名为《天池新人实战赛之[离线赛](完整)》的文章,今天这一篇为该篇的继续与加深。在天池新人实战赛之[离线赛](完整)中的商品推荐模型是完全基于人工规则的,对于规则的制定有相当大的影响,而且一些动态规则难以挖掘。今天这篇文章介绍的是以阿里云服务的数据加工平台(简称:数加平台)为基础,利用机器学习方法实现更加准确的移动端商品推荐模型。

PS:这是将所学的机器学习方法理论应用于实践的很好的机会~~~~

¥1¥ 简单的介绍一下赛题的相关内容

天池新人实战赛是针对数据新人开设的实战练习专场,以经典赛题作为学习场景,提供详尽入门教程,手把手教你学习数据挖掘。天池希望新人赛能成为高校备受热捧的数据实战课程,帮助更多学生掌握数据技能。

本次赛题为《阿里移动推荐算法》,以阿里巴巴移动电商平台的真实用户-商品行为数据为基础,同时提供移动时代特有的位置信息,而参赛队伍则需要通过大数据和算法构建面向移动电子商务的商品推荐模型。希望参赛队伍能够挖掘数据背后丰富的内涵,为移动用户在合适的时间、合适的地点精准推荐合适的内容。

¥2¥ 赛题与数据

¥2.1¥ 竞赛题目 

在真实的业务场景下,我们往往需要对所有商品的一个子集构建个性化推荐模型。在完成这件任务的过程中,我们不仅需要利用用户在这个商品子集上的行为数据,往往还需要利用更丰富的用户行为数据。定义如下的符号:
U——用户集合
I——商品全集
P——商品子集,P ⊆ I
D——用户对商品全集的行为数据集合
那么我们的目标是利用D来构造U中用户对P中商品的推荐模型。

¥2.2¥ 数据说明
       本场比赛提供100万用户的完整行为数据以及百万级的商品信息。竞赛数据包含两个部分。第一部分是用户在商品全集上的移动端行为数据(D),表名为tianchi_fresh_comp_train_user_online,包含如下字段:

 字段

字段说明

提取说明

 user_id

 用户标识

 抽样&字段脱敏

 item_id

 商品标识

 字段脱敏

 behavior_type 

 用户对商品的行为类型

 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。

 user_geohash

 用户位置的空间标识,可以为空

 由经纬度通过保密的算法生成

item_category

商品分类标识

字段脱敏

time

行为时间

精确到小时级别

第二个部分商品子集(P),表名为tianchi_fresh_comp_train_item_online,包含如下字段: 

 字段

字段说明

提取说明

 item_id

 商品标识

 抽样&字段脱敏

 item_ geohash

 商品位置的空间标识,可以为空

 由经纬度通过保密的算法生成

 item_category 

 商品分类标识

 字段脱敏

训练数据包含了抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D),评分数据是这些用户在这个一个月之后的一天(12.19)对商品子集(P)的购买数据。参赛者要使用训练数据建立推荐模型,并输出用户在接下来一天对商品子集购买行为的预测结果。 

¥2.3¥ 评分数据格式
       参赛者完成用户对商品子集的购买预测之后,需要将结果放入指定格式的数据表(非分区表)中,要求结果表名为:tianchi_mobile_recommendation_predict,包含user_id和item_id两列(均为string类型),要求去除重复。在本队伍所在项目空间中产出表即可,系统会按评测时间去自动扫描和评分。

¥2.4¥ 评估指标

比赛采用经典的精确度(precision)、召回率(recall)和F1值作为评估指标。具体计算公式如下:

阿里移动推荐比赛-数加平台的使用_python_02 

其中PredictionSet为算法预测的购买数据集合,ReferenceSet为真实的答案购买数据集合。我们以F1值作为最终的唯一评测标准

¥3¥ 平台的使用权

*使用RAM账号登录数加平台

阿里移动推荐比赛-数加平台的使用_python_03
阿里移动推荐比赛-数加平台的使用_python_04

阿里移动推荐比赛-数加平台的使用_python_05

$4$ 数据开发

 本过程我是分为5步进行的

4.1 导入平台数据

阿里移动推荐比赛-数加平台的使用_python_06

4.2 构建训练数据集,提取的特征有:某商品通过浏览-->购买,加购物车-->购买,添加收藏-->购买,购物车购买转化率,商品热度等等28个特征。

阿里移动推荐比赛-数加平台的使用_python_07
阿里移动推荐比赛-数加平台的使用_python_08
阿里移动推荐比赛-数加平台的使用_python_09


4.3 构建测试数据集

阿里移动推荐比赛-数加平台的使用_python_10

阿里移动推荐比赛-数加平台的使用_python_11


4.4 数据归一化

阿里移动推荐比赛-数加平台的使用_python_12阿里移动推荐比赛-数加平台的使用_python_13

阿里移动推荐比赛-数加平台的使用_python_14

4.5 使用LR进行模型训练

阿里移动推荐比赛-数加平台的使用_python_15

4.6 模型评估,使用准确率,召回率和F1-score

阿里移动推荐比赛-数加平台的使用_python_16

最终取得的成绩为

阿里移动推荐比赛-数加平台的使用_python_17


上述过程还有许多指的优化的地方,也可以使用GBRT,GBDT,和模型组合进行改进。


阿里移动推荐比赛-数加平台的使用_python_18
欢迎分享

转载请标明

(机器学习算法与Python学习)