您的位置:首页 > 其它

京东算法大赛-高潜用户购买意向预测(一) 资料整理

2017-04-11 11:10 651 查看

    初学者可以参考daoliker提供的资料:https://github.com/daoliker/JData,这是一位热心的参赛者提供的一份入门程序,涵盖了数据清洗、数据(统计)分析、特征抽取、搭建模型、模型评估,这些机器学习通用的完整流程,对于初学者来说可以作为参考。

    上面的连接中有相关的说明,如:

data_cleaning.ipynb       数据清洗

data_analysis.ipynb         数据分析

exlpore_potential_user.ipynb 探索高潜用户行为

其他都是.py的python文件,无需额外说明,上面这几个.ipynb是可导入jupyter notebook的文件,如果没有安装的话需要先安装jupyter notebook,然后upload上面几个文件即可。

一 基础数据介绍:

官网上其实已经有了描述,这里为了方便查看,再次列出:

1. 用户数据 - JData_User.csv

 user_id 用户ID
脱敏

 age 年龄段
-1表示未知

 sex 性别
0表示男,1表示女,2表示保密

 user_lv_cd 用户等级有顺序的级别枚举,越高级别数字越大

 user_reg_tm 用户注册日期粒度到天

 2. 商品数据 - JData_Product.csv

 sku_id 商品编号
脱敏

 a1 属性1
枚举,-1表示未知

 a2 属性2
枚举,-1表示未知

 a3 属性3
枚举,-1表示未知

 cate 品类ID
脱敏

 brand 品牌ID
脱敏

3. 评价数据 - JData_Comment.csv

 dt 截止到时间
粒度到天

 sku_id 商品编号
脱敏

 comment_num 累计评论数分段0表示无评论,1表示有1条评论,

 2表示有2-10条评论,

 3表示有11-50条评论,

 4表示大于50条评论

 has_bad_comment 是否有差评0表示无,1表示有

 bad_comment_rate 差评率差评数占总评论数的比重

4. 行为数据 - JData_Action_201602.csv,JData_Action_201604.csv,JData_Action_201603.csv

 user_id 用户编号
脱敏

 sku_id 商品编号
脱敏

 time 行为时间
 

 model_id 点击模块编号,如果是点击脱敏

 type 1.浏览(指浏览商品详情页); 2.加入购物车;3.购物车删除;4.下单;5.关注;6.点击

 

 cate 品类ID
脱敏

 brand 品牌ID
脱敏

二 任务描述:

参赛者需要使用京东多个品类下商品的历史销售数据,构建算法模型,预测用户在未来5天内,对某个目标品类下商品的购买意向。对于训练集中出现的每一个用户,参赛者的模型需要预测该用户在未来5天内是否购买目标品类下的商品以及所购买商品的SKU_ID。评测算法将针对参赛者提交的预测结果,计算加权得分。

三 https://github.com/daoliker/JData程序详解

这里对这位作者的程序进行一下简单解析,可供初学者参考,因为是自己的理解,可能有不当之处,欢迎大家批评指出。

3.1 数据清洗 data_cleaning.ipynb

数据与程序在相同目录,/data文件夹下,如下图,比大赛提供的数据多了JData_Action_201603_extra.csv【作者在git中已经说明,这个是前面一版的数据,从代码中删除这个文件相关的代码即可】,JData_User_New.csv,user_table.csv,item_table.csv四个文件,这是其他程序生成的。其中,item_table.csv由create_item_table.py生成,user_table.csv由create_user_table.py生成;JData_User_New.csv由explore_data.py生成。

文件执行顺序:

1、 生成缺失的三个文件,这一步的目的,是把文件中的数据按照商品和用户两个维度进行聚合

执行顺序:

python create_item_table.py

python explore_data.py 

python create_user_table.py
执行时间较长,但完成后,可以在data/目录下看到新生成的三个文件,注意检验数据条数是否一致

2、缺失文件生成完成后,就可以进行数据清洗和分析了

(2-1)数据分析

进入到我们下载上面程序的目录,在这个目录下启动jupyter notebook:

直接点击data_analysis.ipynb查看即可,这里是在notebook中通过pandas,numpy和matplotlib查看数据的统计特征,进行初步分析

(2-2)数据清洗

查看data_cleaning.ipynb,这里面有原作者的详细描述,介绍了一种数据清洗方法,大家可以在这里改为自己的清洗策略

3、高潜用户行为分析,查看explore_potential_user.ipynb即可,这里是原作者对高潜用户的一些定义,大家可以根据自己的理解修改或调整阈值

4、挖掘过程和结果:

python potential_user.py

简要说明:

find_buy_user函数,查找2,3,4月有购买行为的用户记录(type=4,已去重),保留"user_id", "sku_id"字段,含义分别为用户id,商品id,结果数据存储到了buy_user_list.csv

find_potential_user,查找潜在用户,使用策略为:先读取buy_user_list.csv,取出有购买行为的用户;然后通过ui_record_in_batch_data方法,拿到用户的行为序列(不只是购买行为);more_than_a_day方法:最后购买日期:行为序列中,购买类型行为的最后日期(last_buy_day);最早行为日期(earliest_behave_day):对某商品有浏览等行为的最早日期,这里对用户的意向打了一个标签,当last_buy_day>earliest_behave_day时,则标记potential_flag
为1;否则标记为0

意义:这里标签的定义方式为,如果用户对某个商品,有从浏览,到最终购买的行为链条,则可以说明用户对该商品有购买意向;否则说明没有。

当然,上述标签只是原作者的一种定义方式,可能并不符合我们的设想,我们可以针对这里进行改进。例如,多次浏览同一商品,有关注,或加入购物车行为都可以认为是有意向,只是强弱不同,这样,可以构造特征集合,并使用逻辑回归进行分类。

具体的策略,暂时不进行描述。以上就是对daoliker资料的介绍了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息