1:题目要求
参赛者需要使用京东多个品类下商品的历史销售数据,构建算法模型,预测用户在未来5天内,对某个目标品类下商品的购买意向。对于训练集中出现的每一个用户,参赛者的模型需要预测该用户在未来5天内是否购买目标品类下的商品以及所购买商品的SKU_ID。评测算法将针对参赛者提交的预测结果,计算加权得分。
——————————————————————————————
https://github.com/daoliker/JData
这是个热心的参赛者的代码和流程,个人觉得还不错,有兴趣的同学可以去看看,我们一起来讨论讨论.
——————————————————————————————
现在在以下的过程中描述下我和我的小伙伴的思路过程:
首先对于购物,我们要从几个简单的角度出发,这样的角度通常都是根据我们的日常生活.比如说我们各类行为的转化与购买的关系(比如浏览,加入购物车,关注商品)等行为,另外一方面就是已经购买的此类商品的重复购买率,另外一个很关键的一点就是性别与商品销售之间的关联程度.
接下来就应该进行特征的提取:
比如包括用户特征,商品的特征属性,用户的历史行为特征等数据
接下来最重要的一步就是模型的构建:
1:商品候选集合的确定,首先要确定用户和商品的结合关系,这里的商品最好是以单个商品为例,不应该是整个的商品集合,这里边可能用到的方法比如关联分析,协同过滤这类的
2:模型的选择—分类
3:代码编写与参数调整(具体代码部分比赛完成后我们将会上传到我们的GitHub上,请各位多多指教)
4:效果的预测估计和迭代优化
下面的实际过程按照上述的操作顺序进行整理:
1:用户ID数据的预处理
用户行为数据,京东提供的JData_Action_201602.csv中的user_id是浮点型,都是带了个.0的浮点型,这个事就特别蛋疼,直接跟JData_Action_201602.csv相关联很麻烦,其实是我们强迫症看着不爽,所以就用了几个action文件把数据规范化了,这样心里才美滋滋.
1:格式化user_ID[使用AWK命令,gsub函数]
2:用户行为合并
原始的数据中,用户的行为是每一行是一条数据,无法形成行为序列,这样又得处理了,心里难受100分钟,所以这里又得加上了中间数据的处理,便于分析用户的商品浏览到购买行为的全过程,这里给文件字段说明是'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:用户维度的聚合
用户维度,在同一个商品的行为序列再次聚合,一个商品分为一个元组
3:正样本的提取
首先,什么是正负样本?
正样本:有过非购买行为,且有购买行为的用户记录,针对同一种的商品(剁手党)
负样本:有过浏览的行为,但是最终没有购买的样本的行为数据(浏览党)
初步的目标,就是从有非购买行为,且有购买行为的用户中,分析出其中隐藏的规律,并利用这个规律,对其他行为的用户进行购买行为的预测
以上就是我们思考的大致思路,因为是自己的理解,可能有不当之处,欢迎大家批评指出。
网友评论