天池初体验——新人实战赛之[离线赛]

本文适合天池比赛新手,介绍如何从数据准备、特征提取到模型建立和预测的完整流程。使用Spark进行数据处理和机器学习,通过决策树模型预测购买行为,强调了正负样本平衡的重要性,最终获得满意的成绩。
摘要由CSDN通过智能技术生成
 
 
 
注意,本篇博文代码存在一些问题,请查看修改版的博文,地址为:


  • 写在开头:本篇博文的适用对象为对天池比赛完全不知如何下手的小伙伴。本文将从头开始记录如何最简单地整理数据、提取特征,再建立模型或者使用人工规则进行预测,然后选出数据并提交,最后得到结果。所以,本文并不会更多得关注特征的选择提取以及模型该如何建立。最后,本人所使用的工具为Spark,非常地方便,它包含了spark-sql工具,数据库默认使用的是derby,同时,Spark含有mllib库,能非常方便地进行机器学习相关工作,可以说,线下比赛能够完全用Spark完成。

赛题说明


官方说明如下,这里只进行简单解释。

https://tianchi.shuju.aliyun.com/getStart/introduction.htm?spm=5176.100068.5678.1.VEirgR&raceId=231522

可以看到,有两个表。第一个表UI是用户这个月内在商品全集上的行为数据,第二个表P是商品子集信息。而赛题说了,评分数据是12月19号用户对商品子集里商品购买信息的预测。所以,这里提供几个简单规则:

  • 可以根据P表里的商品信息,对UI表进行过滤,只留下含有P表商品的交互记录。这条规则背后蕴含的原理是,因为用户对不同类别商品或者服务,购买的策略不同,所以我们只去考虑P表内含有的那些类别的数据去进行学习。
  • 将实际情况简化,这里只通过预测日前两天的用户商品交互情况来预测。即,为了预测19号的购买情况,我们就用17、18号的用户交互情况来预测。为了进行预测,我们就需要学习一个模型出来。所以,我们可以去根据16、17号的用户交互数据,以及18号用户的购买数据来学习出这个模型,本文将简单地选择决策树模型。
  • 因为UI表格里只含有浏览、收藏、加购物车以及购买这四个数据,对于构建一棵决策树来说肯定不够,所以我们要想办法扩充特征,例如对用户进行打分(例如对某个商品浏览一次加2分,收藏加3分等等)、算一下浏览占总交互次数的比例,等等等。这里只是我随意举的特征,具体的还需要自己打开脑洞想一想。
  • 有一个重要问题需要注意,对于我们提取出来的训练集数据里,在18号不会购买的项的数据量比18号购买的项的数据量多得多,也就是正负样本比例相差得太大!这对于模型学习是灾难性的,学习出的模型完全不能用。所以,我们需要选出训练集里所有在18号购买了的,再选出同等数量或者相差不多的数量的负样本作为新的训练集,利用新训练集去学习决策树模型,这样才能起效果。

数据准备


如果涉及到Spark集群,那么操作文件都默认在HDFS上。首先将两个源数据

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值