学校数据挖掘比赛心得

题目是根据用户的行为日志,判断用户的性别和年龄段。训练集有标签。判断标准是加权的f1score

特征给了商品id、商品类别ID、卖家ID、卖家类别ID、行为类别(购买、查看、收藏、购物车)以及行为日期

队友一开始想用深度学习,但是特征里不同的ID实在太多了。尤其是商品ID。每一个都算作一个特征的话,会得到一个超级大,超级稀疏的01矩阵。

所以就有了后来我们的特征提取基本都没有考虑商品ID,也许这就是我们没有其他队伍分数高的原因。如果能有分布式计算的设备和能力,也许我们就会能用得上这些特征,能取得更好的成绩。

每个用户都有若干条记录,所以上面所述特征是不能直接拿来用的,要做特征提取。一开始我们的特征是诸如行为数量,购买数量、时间方差,等等,把能想到的交叉特征都提取出来。然后我用svm进行训练。训练时间长,效果也不好。后来加入了每个用户购买最多的商品类别这样的特征,发现效果有显著提升。商品类别是个很有用的特征。再后来我尝试了主办方宣讲会推荐的xgboost。效果很好,f1从15升到17。

使用xgboost发现最重要的特征就是之前说的购买最多的商品类别ID。但是这之后就进入了瓶颈,无论怎么调参,我们的分数只停留在22左右。而且最高的分数是我只用了八分之一的特征做出来的。就这样比赛已经还剩下4天左右的时候,心态已经爆炸,第一名的队伍分数已经上35了。像这种无论怎么调都没有大的改进,一般是特征的问题,而我也发现了特征的问题,GBDT适合处理标量特征。而对于商品类别ID这种特征,本来是标签特征,categorical。但是却当做标量来处理,就意味着GBDT会拿来比大小。ID比大小是没有意义的。但是ID又太多,做成特征的话我们的笔记本估计处理不了。后来队友的学长吧每个人购买最多的前5个商品类别做成了特征,效果很明显,我们的分数也升至27。只可惜已经是比赛结束倒数第二天了。最后我只是用了队友的一个随机森林和我的两个GBDT简单的ensemble,就是投票,然后做了最后一次提交,f1是28

虽然最后比赛名次是22名,前6名才能进入复赛。但是还是有很多收获,用了sklearn,接触了特征工程,xgboost等等。感谢队友一直的坚持不懈,也感谢顾问的耐心指导。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值