有些人可能会觉得“数据科学”和“机器学习”这两个术语看起来很高大上,觉得需要很专业的技能才能在这两个领域取得成就。乍一看,数据科学和机器学习的领域可能会让人不知所措,新手眼巴巴望着无穷无尽的代码和技术术语,不知道从哪里入门。
Kaggle 是许多人在这一领域探索的起点之一。对于其他人来说,Kaggle 是他们在机器学习行业参与竞赛、赢得声誉和深入研究的去处。
在本文中,我将带你了解我如何在 14 岁时成为一名最年轻的 Kaggle 竞赛大师。
作者的 Kaggle主页
我是 AndyWang,一名高中新生,对数学、人工智能和计算机科学有着浓厚的兴趣。我在 Kaggle 上参与竞赛以学习和提高我的技能,并获得了 2 枚银牌和 1 枚金牌。
作者照片
几年前我对数学产生了兴趣,并开始自学比我在学校所学主题更高级的内容。不久之后我开始研究编程,因为我从小就对计算机科学着迷。我搜索线上教学内容后,找到了几门教授 Python 和基本编程概念的课程。不久之后我就开始自己编程了,还制作了一些小项目,例如用回溯算法制作一个数独求解器。
来自我的数独求解器的代码片段
彼时我有点迷惘,不知道自己手中的知识应该用在什么地方。直到有一天,当我的朋友向我介绍机器学习和数据科学领域时,我才真正意识到了编程的力量所在。然后我找到了 Kaggle 这个网站,它扩展了我对当前计算和人工智能技术的能力边界的认知。
我对编程和机器学习概念的了解主要来自互联网。有疑问时,互联网是你最好的老师。中学阶段没有学校会教授数据科学或神经网络知识,如果我想在 Kaggle 上取得成就,只能靠自己了。
数据科学和机器学习对许多人来说是一项艰巨的任务。面对浩如烟海的资源和主题,人们不知道从哪里开始或如何学习。因为与术语“数据科学”和“机器学习”相关的领域太多,精通每个类别几乎是不可能的。ML 和 DS 的力量太惊人了。对于像我这样的初学者来说,你首先需要找到自己感兴趣的东西,并充分挖掘它所能实现的潜力。
机器学习的不同领域
根据初学者已经掌握的知识水平,学习 ML 和 DS 对许多人来说会有不同的路径,以下则是我取得成功的路径。
学习要脚踏实地,步步为营,每天学到的知识可以轻松积累成非常复杂的东西。
这时,我想通过 Kaggle 竞赛来构建自己的知识体系。我参加了使用回归技术预测房价的初学者竞赛,才发现我学到的东西还远远不够。我最缺的是经验。通过失败和尝试新事物来学习是最佳途径。我熟悉了 Kaggle 的环境,浏览了很多相关讨论和笔记本来研究围绕目标问题的各种解释。不久之后,我觉得自己已经为第一次真正的比赛做好了准备。我和我的朋友Andre Ye一起参加了 Mechanism of Action竞赛。
我们的第一场竞赛,MoA
当时我们都是比赛的新手。论坛里那些看起来很专业的代码和技术讨论让我们目瞪口呆。我决定从头开始,而不是 fork 一个入门笔记本。在讨论帖的帮助下,我得以在很短的时间内就做好了基础工作。创新是赢得竞赛的关键要素。我翻阅了关于这一问题的许多论文和文章,然后将它们与论坛上提供的方法相结合,让我们的解决方案进入了排行榜的前 4%。
后来,有了更多的经验后,我们又参加了两场比赛,获得了银牌和第一枚金牌。这样的结果对我来说真的是一个惊喜,我非常感谢 Kaggle 社区指导我实现这一成就。以下是我在参加比赛时观察和学习到的一些技巧和窍门。
在我参加的比赛中我遵循了一个通用的管道,它不仅可以用来安排工作,还可以高效率地产生有意义的结果。
随着我参加的比赛越来越多,一些解决方案的复杂性让我大受震撼,这些方案从特征工程到神经网络结构都有涉及。
来自 RANZCR 竞赛的头名,令人惊叹的方案
一般来说,机器学习算法只能从包含信息的数据中学习,并且可以学得很好。在某些情况下,使用与预期略有不同的算法可能会有所帮助。例如,使用主成分分析(PCA)来减少数据的维度,然后将减少的特征连接回原始特征,这种方法帮助我解决了不止一种问题。
有了特征工程就有了特征选择。删除不重要的特征有助于减少数据中的噪声。在 Mechanism of Action 比赛中,论坛和讨论帖中的方法对我们设计的模型并没有什么帮助。在这种情况下,你应该大胆地去阅读和深入研究各种论文。由于我处理的案例(多标签分类)并不常见,因此我找不到什么简单的教程。我找到了一篇论文,旨在对比使用问题转换方法的多标签特征选择。
阅读和研究论文看起来是很困难的事情,但浏览它们并从长篇技术术语中掌握关键词是一项至关重要的技能。对于像我这样的初学者来说,试图理解你遇到的每一篇论文的每一个细节是不可能做到的。只有当我找到自己需要和将要使用的论文时,我才会尝试理解论文中的每一个单词和引用。
在建模过程中,我学到的最大的一课就是创造力。不仅要在模型结构中保持创造性,而且要跳出框框,思考模型如何从根本上处理不同类型的数据。
图片来自Kaggle
最后,在一场比赛中奏效的策略不一定能在另一场比赛中改善你的解决方案。在 Jane Street Market Prediction 挑战赛期间,我发现特征工程对结果根本没有帮助。相反,我发现了建模中隐藏的魔力。这里要记住的一般经验法则是:
在这样的情况下,不要纠结于“以前有效”或“对他人有效”的事情,你应该继续前进并花更多时间探索可以带来改进的新事物。参加 Kaggle 比赛并获得奖牌并非易事,但使用正确的学习方法和工具可以让这个过程变得容易许多。
除了所有提示和技巧外,我成功的最重要因素是我一致的建模管道和稳定的 CV。
设置本地交叉验证方案时。以下是应该记住的几个要点:
本文可能无法帮助你赢得比赛,但我向你保证,它们可以帮助你在 ML 和 DS 的旅程中减少失败的痛苦。
原文链接:https://towardsdatascience.com/my-journey-to-kaggle-master-at-the-age-of-14-e2c42b19c6f7
领取专属 10元无门槛券
私享最新 技术干货