【新智元导读】与机器学习不同,数据挖掘关注对特定问题及其数据的理解,针对每个问题设计最适合的解决方案。但本文作者却使用同一个管道,解决 3 个不同数据分析预测问题,都取得了比较好的结果。这种思路与机器学习类似:不针对某个具体问题,而是优化模型或算法。同时,在这三项竞赛中,都涉及了随机森林、PCA 等常用的机器学习算法。希望作者的 Kaggle 竞赛实践经历能对你有所启发。
(文/Ying Dong)近年来大数据已成为一个热门话题。由于计算机技术和数据存储能力的快速发展,世界上的数据量已经在各种领域呈爆炸趋势。我们迫切需要自动化数据分析工具来精确检测大量数据中包含的知识。
作为相应的解决方案之一,数据挖掘(Data Mining,DM)吸引了很多人。数据科学家需要大量的真实数据改进他们的研究方法,公司需要更准确的模型来进行预测。因此,数据预测竞赛就成了研究人员和公司进行 DM 项目一个不错的选择。
Kaggle 是一个数据建模和数据分析竞赛平台,也是最流行的预测建模和分析竞赛平台之一。企业和研究者可在其上发布数据,统计学者和数据挖掘专家可在其上进行竞赛以产生最好的模型。几乎所有预测建模的问题都可以有很多中解决策略,而我们不可能在一开始就知道,对于某个问题什么方法是最有效的,因此才产生了 Kaggle 这种众包模式。
Kaggle 竞赛介绍
可能你已经听说、参加乃至赢得过 Kaggle 竞赛了。不过,为了机器学习入门者,下面还是简单介绍一下 Kaggle 竞赛的类型:
类型 | 特色介绍 |
---|---|
Featured | 公共竞赛有重大的奖金目标是解决商业问题 |
Masters | 参赛需要邀请具有重要的商业价值或敏感数据 |
Research | 公开竞赛目标是研究、科学性质或服务于公共利益有现金奖励或邀请参加会议或在同行评议期刊发表 |
Playgroud | 公开竞赛竞赛内容以有趣为宗旨、有个性,创意驱动 没有奖品 |
Getting Started | 公开竞赛没有现金奖励适用于机器学习初学者随时可以参赛,没有截止日期 |
Masters
Research
Playgroud
Getting Started
本文的主要思想是,设计一个基于第一次 Kaggle 竞赛的管道(pipeline),然后在其他任务中重复使用这个管道,以尽可能少的力气取得尽可能好的结果——在不同的 Kaggle 竞赛中都得到相对较高的排名。
目录
内容概述
引言之后,第 2 章对文中使用的数据挖掘和几种机器学习算法进行了概述。第 3 章介绍了用于处理数据预测竞赛的管道。第 4 章、第 5 章和第 6 章,分别描述了三个 Kaggle 竞赛及其结果和方法。最后,作者在第 7 章做了总结。
其中,第 3 章介绍的竞赛是森林覆盖类型分类(Forest Cover Type classification),参赛者需要使用制图特征将森林分类为 7 个类型。作者提出的管道由数据探索、数据预处理、特征工程和选择、模型验证和选择以及参数调整组成。流程中的每一步都列出了一些常见的简单方法。我提交的最终版本在 1694 个队伍中排名第 29。
第一场 Kaggle 竞赛中包括的图例
第二场竞赛由 Otto Group 主办,要求参赛者使用 93 个模糊特征(obfuscated features)将其产品分为 9 类(下图为这场竞赛中的一个图例)。在这场比赛中,我在 3514 个队伍中排名第 347。
第 6 章描述了最后一场竞赛——自行车共享需求竞赛。在这场比赛中,参赛者需要根据给定的日期、时间和天气数据,预测自行车的租赁数量。我的解决方案在 3252 个队伍中排名第 36。
这三场比赛的结果表明,使用第 3 章给出的管道可以在数据预测竞赛中得到不错的结果。但要终赢得竞赛,你必须付出更多的努力、提出更复杂的解决方案才行。
编译来源:http://www.ke.tu-darmstadt.de/lehre/arbeiten/studien/2015/Dong_Ying.pdf