专栏首页谭学仕的专栏【SPA大赛】菜鸟在数据挖掘中的体验
原创

【SPA大赛】菜鸟在数据挖掘中的体验

首先很感谢腾讯举办这次比赛,让我们学生党可以接触到这么丰富的数据。这是我们团队第二次参加数据挖掘的比赛,虽然在第一次的比赛中没能取得好的成绩,但也从中吸取了很多经验和教训,让我们尽快地开展了工作。抱着学习和交流的心态,我们参加了这次腾讯举办的广告社交大赛。

在参加比赛中,我们觉得以下几点可以帮助我们尽快融入比赛中的:

1、首先要理解业务场景。

刚看到题目时,我们并没有着急开始分析数据,而是,首先明确了任务要求和提供的数据。在这个比赛中,我们要预测的是31天的转化率,官方提供了17到30天的 历史行为数据,还有用户和广告的基本信息;对于业务的理解,我们需要知道提供的每张表格中那些信息,每种信息是怎样关联起来的。了解业务场景有助于我们提取优秀的特征,我们可以假设自己是一个点击的用户,从一个用户的角度来思考怎样的特点会吸引发生转化行为;

2、如何开展特征工程。

构造怎样的特征工程和你对业务理解有关,这是一个关于时间序列的问题,用户的过去行为反映了用户在31天的可能转化的情况,所以我们可以考虑用户过去时间里的点击后发生转化的比率来表征用户的特征,同时我们也用了APPid点击后发生转换的比率来表征app的特征;在构造特征的过程中,由于这是一个关于时间序列的问题,要防止“穿越”行为——用用户未来的数据表征当前用户的特征;同时,构造特征时,除了自己对了业务的理解外,还可以进行数据分析, 一个方法是按label进行分组统计的操作,看看哪一类特征在lable中有着不一样的分布,下面这一段代码统计lable在不同的positionID和age类型下的转化率。

per_positionID= traintestUser.groupby('positionID').apply(lambda df: np.mean(df["label"])).reset_index(name = 'per_positionID')
per_age= traintestUser.groupby('age').apply(lambda df: np.mean(df["label"])).reset_index(name = 'per_age')

这是我们的实验结果:

从结果可以看出不同的positionID在转化率上有着很大的差别,所以我们把positionID的转化率作为一个重要的特征,'age'在不同的类别上的转化率并没有很大的区别,所以‘age’的区分能力并不强;

对于表格数据表达信息不直观的问题,可以考虑做数据的可视化,下面是对age的转化率做可视化的结果:

同样展现了不同的age类型在转化率上没有较大差别,也就没有很大的区分能力。对于如何进行数据可视化,kaggle上有一个不错的分享:

https://www.kaggle.com/benhamner/python-data-visualizations

3、特征工程的重要性。

就像一句老话说的那样,“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”,所以说,在比赛的前期阶段我们更加要重视特征工程的构建,一个好的特征就能使得损失下降很多。举一个例子来说明,在这个比赛中,组合特征就是一个很强的特征,用户点击后安不安这个APP和这个APP性质有很大关联,有些APP是针对男性的,有些APP是针对未婚人士的,所以我们提取了APP和性别、年龄、婚姻状态来做组合特征,加上这几维特征后,我们线上的损失直接下降了0.002,相对于调参和换其他算法,这样的提高来得更加直接些;当做特征工程没有很大的作用时,我们才开始考虑做参数调优和模型融合;

4、多和别人交流。

由于我们参加比赛的经验不足,在思路方面不是很开阔。在交流群上和别人进行交流能打开自己的思路,同时,也可以多多参考Kaggle上类似的比赛,除了能学习到别人的思路想法以外,还可以学到大神的代码风格,增强实现自己想法的能力。

抱着学习进步的心态参加这次比赛,学习很多大神分享的经验,就算没能获得很好的名次,也是一次很难得的经历。希望这次比赛越办越好,大家在这次比赛中有所收获。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 美DARPA支持研发用于救灾与高风险环境的微型机器人

    美国国防部高级研究计划局(DARPA)宣布将支持若干研究项目,以开发可用于救灾或在高风险环境执行任务的微型机器人。

    人工智能快报
  • CTR——人工神经网络+决策树

       这是篇论文的笔记,记录阅读该论文中的一些体会,希望与大家一起学到知识。论文题目为《Using neural networks for click pred...

    zhaozhiyong
  • CTR——人工神经网络+决策树

    一、引言    这是篇论文的笔记,记录阅读该论文中的一些体会,希望与大家一起学到知识。论文题目为《Using neural networks for click...

    zhaozhiyong
  • The `useMongoClient` option is no longer necessary in mongoose 5.x, please remove it.

    mongoose升级到5.X版本就不支持useMongoClient 这种写法了,而是应该写成useNewUrlParser。

    acoolgiser
  • 随机加权平均 -- 在深度学习中获得最优结果的新方法

    在这篇文章中,我将讨论最近两篇有趣的论文。它们提供了一种简单的方式,通过使用一种巧妙的集成方法提升神经网络的性能。

    AI研习社
  • 想研究BERT模型?先看看这篇文章

    序列转换方式由基于复杂递归神经网络(RNN)和卷积神经网络(CNN)的编码器和解码器模型主导。表现最佳的模型也只是通过一个注意力机制来连接了编码器和解码器。我们...

    程序员一一涤生
  • 搞定NLP领域的“变形金刚”!手把手教你用BERT进行多标签文本分类

    过去的一年,深度神经网络的应用开启了自然语言处理的新时代。预训练模型在研究领域的应用已经令许多NLP项目的最新成果产生了巨大的飞跃,例如文本分类,自然语言推理和...

    大数据文摘
  • 深度学习最新方法:Snapshot Ensembling以及OUT!随机加权平均才是未来!!!

    朱晓霞
  • 深度学习最新方法:随机加权平均,击败了当前最先进的Snapshot Ensembling

    【AI 科技大本营导读】本文,我们将讨论近期两篇有意思的论文,论文的大致思路是通过一种集成方式来提高任意给定的神经网络性能。这两篇论文分别是:

    AI科技大本营
  • SQL之美 - 分页查询的排序问题

    编辑手记:前面我们分享过分页查询的基础知识,其目的就是控制输出结果集大小,将结果尽快的返回。主要有两种方式,一种是嵌套的查询方式,一种是通过范围控制分页的最大值...

    数据和云

扫码关注云+社区

领取腾讯云代金券