7月QCon广州站2022,关注Web 3.0、数据架构选型、数字化转型等热门话题,点击了解 了解详情
写点什么

我参加了一次 Kaggle 竞赛,从此改变了我的数据科学学习之路

  • 2022 年 2 月 17 日
  • 本文字数:1468 字

    阅读完需:约 5 分钟

我参加了一次Kaggle竞赛,从此改变了我的数据科学学习之路

“不要把时间浪费在 Kaggle 竞赛上。在处理真正的业务问题时它一点用都没有。”在我刚开始数据科学生涯的时候有人曾经对我说过这样的话。


作为一名年轻而懵懂的数据科学家,有两年时间我都遵从这条建议,一直在回避 Kaggle 比赛。最近,我偶然看到了 Abhishek Thakur 在 LinkedIn 上发表的帖子,给“歌曲流行度预测”Kaggle竞赛做宣传。


看完帖子后我就有了参加他的比赛的冲动,我还想看看之前得到的那条建议是不是正确的。而这篇文章要说的就是我完成比赛后得到的五项关键收获。

社区论坛中无私的代码分享


一开始,我以为参加 Kaggle 竞赛主要是为了与大家竞争,比比谁的分数最高。结果让我没想到的是,震撼我的竟然是社区的慷慨无私氛围。甚至在比赛开始时,他们已经开始分享有用的 EDA 代码、特征工程技术等等资源了。我个人觉得这更像是大家在一起共事,而不是相互竞争。

丰富了我对其他类型 ML 问题的经验

我的工作经验主要集中在时间序列的预测和优化领域。而参加 Kaggle 竞赛实际上是一个很好的实践机会,让我体验到了不同类型的 ML 领域所面临的常见问题。例如,这个歌曲流行度预测(分类)问题让我能尝试一些重采样方法来解决不平衡数据问题,并学到了如何使用正确的指标来评估模型。

接触到创造性的特征工程和缺失归因技术


“到头来,有一些机器学习项目成功了,还有一些失败了。是什么造成了这种差异?最重要的因素是项目所使用的特征”。——华盛顿大学的 Pedro Domingos 教授


由于市面上有许多模型可供选择,许多人将注意力转移到了模型/算法开发上,忽视了数据质量或特征工程技术。我个人认为我们更应该关注数据质量和高级特征工程技术,同时用一些简单的模型就够了。


在论坛上,大家分享了数不清的特征工程和缺失数据归纳技术相关资料。说实话,我收藏的那么多技术资料自己也没能全都尝试过。以下是我觉得很有趣的技术:


  • 聚类模型(如 KMeans),用于生成新的特征。

  • PCA,一种降低维度的方法,用于减少特征的维度。

  • 应用对数、箱形图、幂数转换来缩放数据。

  • 对缺失数据进行 LGBM 计算。

  • 基于领域知识,对 2-3 个变量进行特征交互。

  • 多项式特征转换

学会如何编写高效的数据分析和绘图代码


由于我最近刚从 R 语言过渡到Python,所以对 ggplot 的代码结构比 matplotlib/seaborn 更熟悉一些。很多时候,我要么会遇到很多代码错误,要么最后得到的是没那么漂亮的图。所以我非常喜欢这个代码分享论坛,他们不只会分享构建模型的代码,还分享了许多内容翔实的 EDA 笔记本,其中有他们自己的发现。下面是我个人在这次竞赛中最喜欢的两篇文章。


  • 使用交互式绘图的简单 EDA(文章链接:https://www.kaggle.com/dextermojo/song-popularity-eda-heads-or-tails-python-ver)

  • 详细的数据分析报告 (文章链接:https://www.kaggle.com/headsortails/song-popularity-eda-live-coding-fun)

学习如何使用 optuna 包来做模型调优


翻阅别人分享的笔记本时,我发现有几个笔记本有一个有趣的术语——Optuna。它引起了我的好奇心,于是我决定找一个笔记本看个究竟。结果就是这个包!我肯定会在自己的下一个 ML 问题解决方案中使用它。


如果你和我一样没有听说过它,可以访问该链接(https://optuna.org/)来了解更多内容。大体来说,它是一个开源的超参数优化框架,用于自动化超参数搜索。

后记


毫无疑问,Kaggle是一个很好的平台,适合初学者或中级数据科学家练习他们的代码技能。


对于高级用户来说,我发现参加那些高水平的比赛(如 M5 预测比赛)会给参赛者带来富有挑战性同时又颇具价值的经验。


原文链接:


https://medium.com/@benlc77/how-my-first-kaggle-competition-changed-my-data-science-learning-experience-58f39f293cf5

2022 年 2 月 17 日 10:431646
用户头像

发布了 387 篇内容, 共 114.0 次阅读, 收获喜欢 528 次。

关注

评论

发布
暂无评论
发现更多内容

避免争执

孙苏勇

职场 随笔杂谈

写给产品经理的信(5):谈谈项目管理(青铜-王者)

punkboy

产品 极客时间,项目管理 项目管理 产品经理 项目

金灿灿的季节 - Apache DolphinScheduler收获5位新Committer

代立冬

Java 学习笔记(三)数据类型

杜朋

Rust 遇上 C/C++(二):函数传参

Coding Fatty

c c++ rust 编程语言

不懂送女朋友什么牌子的口红?没关系!Python 数据分析告诉你。

JackTian

Python 程序员 数据分析 python 爬虫 口红

Eureka 实例注册状态保持 STARTING 的问题排查

张晓辉

spring Spring Cloud netflix

纯CSS“返回顶部”特效

寇云

CSS css3

自定义列表样式

寇云

CSS css3

前端工程化之创建项目

春生

大前端 全栈工程师

XSKY发布XMotion纳管热迁移技术,OpenStack集群迁移效率提升超10倍

XSKY融合存储

ARTS|Week 1 第一次使用LeetCode

Puran

LeetCode ARTS活动

安装R语言编译器:

唯爱

MySQL死锁系列-常见加锁场景分析

程序员历小冰

MySQL

只用CSS实现响应式Full-Width img 2种方法

寇云

CSS css3

如何通过样本数据推断其分布

张利东

Python

Vol.8 云栖小镇游记

pyfn2030

阿里云 随笔 数字化转型

在培训机构花了好几万学Java,当了程序员还常被鄙视,这是招谁惹谁了?

四猿外

Java 学习 程序员 个人成长

Vol.9 Web前端发展历程及前端工程化

pyfn2030

大前端

深入浅出Mysql索引的那些事儿

猿人谷

MySQL 性能优化 索引

【写作群星榜】5.22~5.28写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

《中国互联网简史》系列笔记之P2P

dongh11

读书笔记

机器学习项目是如何开发和部署的?

陆道峰

人工智能 学习

超简单入门MyBatis,看了就会了~

程序员的时光

mybatis

珍藏已久的 OS 学习网站拿出来分享给大家

cxuan

操作系统

控制 Pod 内容器的启动顺序

张晓辉

Kubernetes

认识数据产品经理(四 与互联网产品经理的区别)

马踏飞机747

大数据 互联网 产品经理 职业规划

时序数据库

pydata

磁盘挂载

唯爱

Vol.7 聊聊我热爱的陕西省图书馆

pyfn2030

记录 生活,随想

解决版权难题,“豪横”字体自己做

zhoo299

设计 CG

我参加了一次Kaggle竞赛,从此改变了我的数据科学学习之路_AI_Beng Chew_InfoQ精选文章