天池新人实战赛之[离线赛]题目与思路
2016-03-23 10:08
120 查看
1.1课题介绍
本课题以阿里巴巴移动电商平台的真实用户-商品行为数据为基础,同时提供移动时代特有的位置信息。您需要通过大数据和算法构建面向移动电子商务的商品推荐模型,挖掘数据背后丰富的内涵,为移动用户在合适的时间、合适的地点精准推荐合适的内容。在真实的业务场景下,我们往往需要对所有商品的一个子集构建个性化推荐模型。在完成这件任务的过程中,我们不仅需要利用用户在这个商品子集上的行为数据,往往还需要利用更丰富的用户行为数据。
如下是一个真实的业务场景:
给出一定量用户在时间段11月18日~12月18日内的移动端行为数据(D),
需要预测12月19日用户对商品子集(P)的购买数据。具体的数据说明下面将会详细介绍。
1.1.1数据说明
提供的数据包含两个部分。第一部分是用户在商品全集上的移动端行为数据(D),表名为tianchi_mobile_recommend_train_user,包含如下字段: 字段 | 字段说明 | 提取说明 |
user_id | 用户标识 | 抽样&字段脱敏 |
item_id | 商品标识 | 字段脱敏 |
behavior_type | 用户对商品的行为类型 | 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。 |
user_geohash | 用户位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
Time | 行为时间 | 精确到小时级别 |
每一行代表了用户 user_id 对属于分类 item_category 的物品 item_id 在 time 这个时间于地点 user_geohash 发生了交互,交互类型是 behavior_type 。behavior_type 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。
给出的一共包含31天的交互数据,最后要预测第32天有哪些user会购买哪些item。
第二个部分是商品子集(P),表名为tianchi_mobile_recommend_train_item,包含如下字段:
字段 | 字段说明 | 提取说明 |
item_id | 商品标识 | 抽样&字段脱敏 |
item_ geohash | 商品位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
训练数据包含了抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D),评分数据是这些用户在这个一个月之后的一天(12.19)对商品子集(P)的购买数据。您需要使用训练数据建立推荐模型,并输出用户在接下来一天对商品子集购买行为的预测结果。
1.1.2 输出要求
完成用户对商品子集P的购买预测之后,需要将结果放入指定格式的数据表(非分区表)中,要求结果表名为:tianchi_mobile_recommendation_predict,包含user_id和item_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 | 用户对商品的行为类型 | 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。 |
user_geohash | 用户位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
Time | 行为时间 | 精确到小时级别 |
字段 | 字段说明 | 提取说明 |
item_id | 商品标识 | 抽样&字段脱敏 |
item_ geohash | 商品位置的空间标识,可以为空 | 由经纬度通过保密的算法生成 |
item_category | 商品分类标识 | 字段脱敏 |
输出表名为: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
来自为知笔记(Wiz)
相关文章推荐
- xmlhttprequest请求
- java中的类c继承了b,b继承了a,c可以直接调用a的方法吗?怎么调用。
- 7080生化分析仪使用说明书—— 故障一览篇
- VR/AR...
- select2清空选择框
- java 反编译工具:JD-GUI、JD-Eclipse、JD-IntelliJ
- php-fpm使用sock配置与nginx配置sock连接
- "The graphics preview in the layout editor may not be accurate: Path.isConvex is not supported. (Ig
- Java 日期
- nginx配置
- Zend Framework教程之Zend_Db_Table表关联实例详解
- Ubuntu远程登录及拷贝遇到的问题
- 高性能JavaScript之DOM编程
- Linux Shell编程第四篇case语句
- [随笔]Linux下常用压缩文件(*.tar.gz *.tar.xz *.zip ...)的解压方法
- signalR的一些细节
- linux 安装 maven
- jedis,spring-redis-data 整合使用,版本问题异常以及解决。
- C语言第五篇:位运算
- 物理层、mac层、IP层、TCP(UDP)帧格式-------未完待续