首页 > 其他分享 >最年轻的Kaggle Master:永远不要复制别人的工作!

最年轻的Kaggle Master:永远不要复制别人的工作!

时间:2022-10-20 18:32:42浏览次数:63  
标签:模型 论文 Kaggle 学习 复制 Master Andy 数据

Andy Wang,高中新生,学习经验总结​

有些人可能会觉得数据科学和机器学习这两个术语令人生畏,认为它们需要专业技能才能成功。盯着无穷无尽的代码,可能会让人不知所措。

Kaggle是许多人开始数据科学的地方,在这篇文章中,讲分享Andy(14岁)是如何成为最年轻的Kaggle Master。


个人介绍

我是 Andy Wang,一名高中新生,对数学、人工智能和计算机科学有着浓厚的兴趣。我在Kaggle上学习和提高我的技能,获得了2枚银牌和1枚金牌。

最年轻的Kaggle Master:永远不要复制别人的工作!_数据

几年前,我开始对数学产生兴趣,并开始学习比我在学校自学的更高级的主题。不久之后,我开始研究编程,因为我从小就对计算机科学着迷。

通过关键词搜索我找到了几门教授 Python和基本编码概念的课程。不久,我开始自己编程,使用回溯算法制作小项目,例如数独求解器。

我是如何进步和学习的

我对编程和机器学习概念的了解主要来自互联网。有疑问时,互联网是最好的老师 。没有学校教授数据科学或神经网络,如果我想在 Kaggle 上取得成功,我就靠自己了。

最年轻的Kaggle Master:永远不要复制别人的工作!_数据科学_02

随着学习资源的增加,人们不知道从哪里开始或如何学习。因为“数据科学”和“机器学习”相关的领域太多,精通每个类别几乎是不可能的。对于像我这样的初学者,您需要找到自己感兴趣的东西,并充分挖掘它所能实现的潜力。

数学是一切的基础,线性代数和微积分是机器学习中使用的两个最重要的数学概念。几乎所有的机器学习算法都以某种方式与这两个领域相关。数据以向量和矩阵的形式表示和处理。因此需要了解矩阵的基本运算。

最年轻的Kaggle Master:永远不要复制别人的工作!_数据科学_03

在了解了基础知识后,我开始着手编写代码。凭借面向对象编程(OOP) 和 Python的基本知识,我找到了一些在线课程,这些课程教会了我机器学习中常用的所有库。

一点一滴的学习,一开始学到的知识,将来可以轻松积累成复杂的东西。

Andy最开始参加了使用回归技术预测房价的初学者竞赛。我发现我学到的东西远远不够。我最缺的是经验。最好的学习方法是通过失败和尝试新事物。

然后参加了Mechanism of Action 比赛,通过在论坛、Notebook完成快速学习,最后取得了前4%的成绩。然后Andy又参加了两场比赛,又获得了银牌和第一枚金牌。

我的Kaggle解题流程

从我参加的比赛中,我遵循了一个通用的流程,它不仅可以组织工作,还可以有效地产生有意义的结果。

  1. 仔细阅读数据描述和概述。如果可能,可以尝试探索领域知识。
  2. 在阅读任何论文、讨论或Notebook之前,尝试自己创建一个基线。这有助于在将您的思想锁定在其他人所说的内容之前产生全新的想法。
  3. 建立可行的交叉验证策略并提交到排行榜。确保您的CV策略也适用于 LB,这一点很重要。
  4. 阅读,阅读和学习!充分探索与该主题相关的论文,在论坛和笔记本中寻找灵感。
  5. 开始在模型方面或功能方面调整基线。一次只调整一件事,所以你知道是什么导致模型改进/表现更差。
  6. 尽可能多地探索新方法,不要在行不通的事情上纠缠太久。
  7. 如果其他一切都让你失望,模型集成是最稳定的改进方式。
  8. 选择具有良好 CV 分数的提交。


我学习到的知识

特征选择删除不重要的特征,有助于减少数据中的噪声。在 Mechanism of Action 竞赛期间,论坛和讨论帖中的方法对我们设计的模型没有帮助。在这种情况下,不要害怕深入研究并阅读论文。由于我处理的案例多标签分类并不常见,因此我找不到任何简单的教程。我找到了一篇论文,旨在比较使用问题转换的多标签特征选择。

阅读研究论文似乎令人生畏,但能够浏览它们并从长页技术术语中掌握关键词是一项至关重要的技能。对于像我这样的初学者来说,试图理解你遇到的每一篇论文的每一个细节是不可能的。只有当我找到我需要和将使用的论文时,我才会尝试理解论文中的每一个单词和引用。

  • 将模型调整为具有非线性拓扑结构或为表格数据构建类似 ResNet 的结构化网络不仅在 MoA 竞赛中获得了一些惊人的结果,而且在接下来的 Jane Street Market Prediction 中也获得了一些惊人的结果,我们在其中排名第16。
  • 探索不同类型的自动编码器,例如去噪、变分和稀疏编码器,可以为您的数据带来令人惊讶的变化,而不仅仅是简单的特征工程和选择可以实现的。
  • 模型融合。组合不同模型的结果可以为您的解决方案增加多样性,从而使其更加稳健和稳定。无论什么建模技巧奏效,合奏总是我在比赛中的“最后手段”。
  • 始终关注新论文并探索论坛中提到的内容之外的内容。调整激活函数(尝试swish而不是 ReLU)和优化器(尝试AdaBelief而不是 Adam 等)之类的小东西可能只会从模型中挤出一些性能。
  • 跳出框框思考!使用一维CNN对表格数据进行特征提取。或者使用DeepInsight,将表格数据转换为图像,利用 CNN 的优势。

不要沉迷于现在的工作,继续前进并花更多时间探索可以带来改进的新事物。

参加 Kaggle 比赛并获得奖牌并非易事,但通过正确的学习方法和工具,这个过程可以变得更容易。

  • 检查讨论帖子和阅读公共笔记本非常有帮助。每天都有新想法出现,我通过论坛中提到的论文和笔记本中使用的库了解了一些最新且引人入胜的模型和工具。其中之一是TabNet,这是一种通过使用顺序注意将特征选择合并到模型中来对表格数据进行建模的新方法。这个模型让我在 MoA 比赛中获得银牌。
  • 最后,拥有稳定而强大的管道对于在最终的私人排行榜中取得出色表现最为关键。浪费时间过度拟合以在公共排行榜中获得额外的 0.0001 是没有意义的。始终相信您当地的交叉验证分数,因为训练数据量大于公共排行榜的数据量。

只是按复制粘贴对学习或赢得比赛没有帮助。我在 Kaggle 中最重要的座右铭是永远不要复制别人的工作,我可以从他们的想法中得到启发,甚至使用他们的建模方法,但我从不提交其他人的工作作为我的解决方案。

在接触新事物时,我养成了查找所有我不理解的东西的习惯,直到我可以自信地向其他人解释这个主题。

最年轻的Kaggle Master:永远不要复制别人的工作!_机器学习_04


标签:模型,论文,Kaggle,学习,复制,Master,Andy,数据
From: https://blog.51cto.com/u_15699042/5780422

相关文章

  • app直播源代码,jquery 拖拽复制
    app直播源代码,jquery拖拽复制 <head>  <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>  <title>jqeruyUI拖拽练习</title>  <......
  • day13 I/O流——字节输入输出流、字符输入输出流 & File常用类 & (字节)复制大文件
    day13I/O流定义:数据在两设备传输称为流,流是一组有顺序的,有起点和终点的字节集合I是input的缩写,表示输入流O是output缩写,表示输出流字节流(视频等)输入InputStream......
  • Redis主从复制​
    Redis主从复制​概念:​主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)。数据的复制是单向的,只能......
  • Kaggle竞赛神器—Facets:快速评估数据集质量,把控数据分析核心环节
    在机器学习任务中,数据集的质量优劣对数据分析的结果影响非常大,所谓Garbagein,garbageout,数据决定模型的上限,因此数据质量成为数据分析流程不可或缺的一个环节。即使是像K......
  • k8s-master节点的安装2
    k8s-master节点的安装21.环境准备图1注意事项:先增加host解析,再配置yum源,三个节点的yum源都改好了。如图2所示 ......
  • jq 点击文本复制
    <atitle="<?=$u['did'];?>"id="article"><divclass="td-text"id="copy-text"><?=$u['did'];?></div></a>$(document).on('click','#art......
  • 复制csdn文章到语雀[转]
     原文:https://blog.csdn.net/belongtocode/article/details/104235007CSDN博客中有很多优秀的文章,为了便于之后浏览,习惯复制到自己的博客收藏。怎样直接复制粘贴全文?解......
  • NIO文件复制+RateLimiter限流
    /***平衡工具类**@authorlucky*@date2022-09-29*/@Slf4jpublicclassBalanceUtil{/***最大传输字节数4MB*/finalstaticin......
  • MySQL5.6的主从复制
    1、准备两台相同一版本的数据库(5.6.51)192.168.1.7(master)192.168.1.6(slave)2、修改主服务器配置文件/etc/my.cnf添加一下vim/etc/my.cnf[mysql......
  • 将windows下的内容复制到linux虚拟机中 VMWare
    使用Ctrl+Alt+T打开控制台,输入如下指令:sudoapt-getautoremoveopen-vm-tools键入y选择卸载卸载完成后,在键入如下指令sudoapt-getinstallopen-vm-tools-deskt......