【干货】Kaggle 数据挖掘比赛经验分享

本文分享了作者参加 Kaggle 数据挖掘比赛的经验,从比赛介绍、参赛方式、获奖规则、比赛类型、比赛流程等方面进行详细阐述。作者强调了数据探索、特征工程、模型选择和调参验证的重要性,并介绍了模型集成方法如平均法、投票法、堆叠法和融合法。此外,还提到了自动化框架在提高效率方面的帮助。文章提供了开源代码链接和各种比赛的获奖方案,以及常用的工具和资源,对数据挖掘爱好者和新手具有很高的参考价值。
摘要由CSDN通过智能技术生成

【干货】Kaggle 数据挖掘比赛经验分享

Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台。笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 CrowdFlower 搜索相关性比赛第一名(1326支队伍)和 HomeDepot 商品搜索相关性比赛第三名(2125支队伍),曾在 Kaggle 数据科学家排行榜排名全球第十,国内第一。笔者目前在腾讯社交与效果广告部任职数据挖掘工程师,负责 Lookalike 相似人群扩展相关工作。此文分享笔者在参加数据挖掘比赛过程中的一点心得体会。1.Kaggle 基本介绍Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台。在 Kaggle 上,企业或者研究机构发布商业和科研难题,悬赏吸引全球的数据科学家,通过众包的方式解决建模问题。而参赛者可以接触到丰富的真实数据,解决实际问题,角逐名次,赢取奖金。诸如 Google,Facebook,Microsoft 等知名科技公司均在 Kaggle 上面举办过数据挖掘比赛。2017年3月,Kaggle 被 Google CloudNext 收购。

1.1 参赛方式
可以以个人或者组队的形式参加比赛。组队人数一般没有限制,但需要在 Merger Deadline 前完成组队。为了能参与到比赛中,需要在 Entry Deadline 前进行至少一次有效提交。最简单地,可以直接提交官方提供的 Sample Submission。关于组队,建议先单独个人进行数据探索和模型构建,以个人身份进行比赛,在比赛后期(譬如离比赛结束还有 2~3 周)再进行组队,以充分发挥组队的效果(类似于模型集成,模型差异性越大,越有可能有助于效果的提升,超越单模型的效果)。当然也可以一开始就组好队,方便分工协作,讨论问题和碰撞火花。

Kaggle 对比赛的公正性相当重视。在比赛中,每个人只允许使用一个账号进行提交。在比赛结束后 1~2 周内,Kaggle 会对使用多账号提交的 Cheater 进行剔除(一般会对 Top 100 的队伍进行 Cheater Detection)。在被剔除者的 Kaggle 个人页面上,该比赛的成绩也会被删除,相当于该选手从没参加过这个比赛。此外,队伍之间也不能私自分享代码或者数据,除非在论坛上面公开发布。

比赛一般只提交测试集的预测结果,无需提交代码。每人(或每个队伍)每天有提交次数的限制,一般为2次或者5次,在 Submission 页面会有提示。

1.2 比赛获奖
Kaggle 比赛奖金丰厚,一般前三名均可以获得奖金。在最近落幕的第二届 National Data Science Bowl 中,总奖金池高达 100W 美刀,其中第一名可以获得 50W 美刀的奖励,即使是第十名也能收获 2.5W 美刀的奖金。

获奖的队伍需要在比赛结束后 1~2 周内,准备好可执行的代码以及 README,算法说明文档等提交给 Kaggle 来进行获奖资格的审核。Kaggle 会邀请获奖队伍在 Kaggle Blog 中发表 Interview,来分享比赛故事和经验心得。对于某些比赛,Kaggle 或者主办方会邀请获奖队伍进行电话/视频会议,获奖队伍进行 Presentation,并与主办方团队进行交流。

1.3 比赛类型
从 Kaggle 提供的官方分类来看,可以划分为以下类型(如下图1所示):
◆ Featured:商业或科研难题,奖金一般较为丰厚;
◆ Recruitment:比赛的奖励为面试机会;
◆ Research:科研和学术性较强的比赛,也会有一定的奖金,一般需要较强的领域和专业知识;
◆ Playground:提供一些公开的数据集用于尝试模型和算法;
◆ Getting Started:提供一些简单的任务用于熟悉平台和比赛;
◆ In Class:用于课堂项目作业或者考试。

从领域归属划分:包含搜索相关性,广告点击率预估,销量预估,贷款违约判定,癌症检测等。
从任务目标划分:包含回归,分类(二分类,多分类,多标签),排序,混合体(分类+回归)等。
从数据载体划分:包含文本,语音,图像和时序序列等。
从特征形式划分:包含原始数据,明文特征,脱敏特征(特征的含义不清楚)等。

1.4 比赛流程
一个数据挖掘比赛的基本流程如下图2所示,具体的模块我将在下一章进行展开陈述。

这里想特别强调的一点是,Kaggle 在计算得分的时候,有Public Leaderboard (LB)和 Private LB 之分。具体而言,参赛选手提交整个测试集的预测结果,Kaggle 使用测试集的一部分计算得分和排名,实时显示在 Public LB上,用于给选手提供及时的反馈和动态展示比赛的进行情况;测试集的剩余部分用于计算参赛选手的最终得分和排名,此即为 Private LB,在比赛结束后会揭晓。用于计算 Public LB 和 Private LB 的数据有不同的划分方式,具体视比赛和数据的类型而定,一般有随机划分,按时间划分或者按一定规则划分。

这个过程可以概括如下图3所示,其目的是避免模型过拟合,以得到泛化能力好的模型。如果不设置 Private LB(即所有的测试数据都用于计算 Public LB),选手不断地从 Public LB(即测试集)中获得反馈,进而调整或筛选模型。这种情况下,测试集实际上是作为验证集参与到模型的构建和调优中来。Public LB上面的效果并非是在真实未知数据上面的效果,不能可靠地反映模型的效果。划分 Public LB 和 Private LB 这样的设置,也在提醒参赛者,我们建模的目标是要获得一个在未知数据上表现良好的模型,而并非仅仅是在已知数据上效果好。

2.数据挖掘比赛基本流程从上面图2可以看到,做一个数据挖掘比赛,主要包含了数据分析,数据清洗,特征工程,模型训练和验证等四个大的模块,以下来一一对其进行介绍。

2.1 数据分析
数据分析可能涉及以下方面:

◆ 分析特征变量的分布
◇ 特征变量为连续值:如果为长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值