Kaggle CTO 力荐:从 Kaggle 历史数据看机器学习竞赛趋势

简介: Kaggle 是全球最大数据建模和数据分析竞赛平台,也是检验个人水平的最佳舞台。现如今,随着社会对机器学习人才的需求提高,在 Kaggle 上刷到过前 5%、10% 也成了应聘的一个硬指标。考虑到 Kaggle 的权威性和受欢迎度,这么多年来,这个平台的数据应该能体现整个数据科学领域的发展轨迹。

多年来,数据科学领域的许多趋势已经发生了改变。Kaggle,作为全球最大、最受欢迎的数据科学社区,记录着这些变化的演进状态。本文将使用 Kaggle Meta Data 逐一分析,看看这些年来,我们的数据科学究竟发生了什么变化?

线性回归与逻辑回归

线性回归与逻辑回归是机器学习中比较基础又很常用的内容,其中前者可以进行连续值预测,后者能被用于解决分类问题。所以我们先从它们开始,根据 Kaggle 论坛的帖子数对比这两种算法的热度趋势。

598e2320157df36b25a7aa4614d7d2f5b8debce3

蓝:线性回归;橙:逻辑回归

如上图所示,橙线大多数时间都在蓝线之上,用户这些年来似乎一直都更喜欢聊 logistic 回归。而宏观来看,两种算法的变化趋势几乎吻合,峰值重合度较高,虽然起伏明显,但这 8 年来,它们总体是呈上升趋势的。

那么 logistic 回归受欢迎的原因是什么?一个迹象表明,Kaggle 上的分类问题远多于回归问题,其中一个代表是这些年来最受欢迎的泰坦尼克号生存预测竞赛。这是 Kaggle 上历史最 “悠久” 的竞赛之一,用户的讨论自然也很激烈。而最受欢迎的回归问题则是房价预测,但人们通常会在完成泰坦尼克号之后再考虑这个问题。

在 2017 年 10 月和 2018 年 3 月,Kaggle 论坛上关于 logistic 回归的讨论量大幅增加。对此,一个可能的解释是平台上出现的新竞赛——恶意评论分类。当时一些团队分享了不少和分类模型相关的高质量经验,其中就包括 logistic 回归。

XgBoost的霸主地位

049efb6dfbcb50e49b6f6ee8cd1b415331ede9ef

蓝:决策树;橙:随机森林;绿:XgBoost;红:LightGBM;紫:CatBoost

在 2014 年以前,线性模型、决策树和随机森林的讨论量虽然不多,但它们占据绝对话语权。2014 年,时为华盛顿大学博士的陈天奇开源 XgBoost 算法,受到大众追捧,之后它也迅速成了 Kaggle 竞赛中的常客。时至今日,XgBoost 在竞赛中的使用率还是很高,性能也很好,不少夺冠方案中都有它的身影。

但是,根据曲线我们可以注意到,自从 2016 年 LightGBM 被提出后,XgBoost 的讨论量出现了一定程度的下降,而 LightGBM 却一路水涨船高。可以预见,在学界开源更好的模型前,这个算法将在未来几年占据主导地位。现在 LightGBM 也已经出现在不少竞赛中,比如 Porto Seguro 的安全驾驶预测,它的优点是比 XgBoost 实现速度更快、更简单。

除了这些算法,图中 “最年轻” 的 CatBoost 也有走红的趋势。

神经网络与深度学习趋势

dbb6d105c9cdeb0435141be684e64b144be353d8

蓝:神经网络;橙:深度学习

几十年来,神经网络在学界和工业界一直不温不火,但如上图所示,随着大型数据集的出现和计算机算力的大幅提升,近几年这种趋势已经发生了变化。

从 2014 年起,我们相继迎来了 theano、tensorflow、keras,与此同时,一个名为深度学习的时代也渐渐出现在世人视野里。在 Kaggle 上,用户发表的有关深度学习的帖子数不断上升,并最终超过神经网络。此外,诸如亚马逊、谷歌等的云服务提供商也正拥抱新技术,以更加积极的姿态展示在云上训练深层神经网络的能力。

深度学习模型是 Kaggle 竞赛中的新星,目前它已经在图像分类、文本分类竞赛中崭露头角,比如 Data Science Bowl、Quora 重复问题分类等。而伴随 RNN、CNN 的不断改进,深度学习的流行趋势似乎已经势不可挡。此外,一些尝试已经证实,迁移学习和预训练模型在竞赛中能够表现出色。

这种技术让人们看到了可能性。为了让用户从实践中学到更多知识,Kaggle 可以推出更多和图像分类建模相关的比赛,但以当前的情况看,现在限制用户大规模使用深度学习的是它的算力要求。但这种问题是可以被解决的。Kaggle 已经添加 GPU 支持,未来,相信尝试深度学习的用户会越来越多。

Kaggle上流行的机器学习工具

1dee93c5e37388d68d26ad9298a940e22d24cb72

蓝:Scikit;橙:Tensorflow;绿:Keras;红:Pytorch

在 2015 年以前,如果一个数据科学家想构建机器学习模型,Scikit Learn 是他唯一可以选择的库;2015 年后,这种局面发生了改变,作为 ML 生态的一部分,谷歌开源软件库 Tensorflow,并让它迅速在全球范围内普及。

但Tensorflow 也存在缺点,就是它比较难学,因此虽然用户非常多,但在 Kaggle 这个竞赛平台上,大多数用户还是倾向于选择更灵活、更简单的 Keras。毕竟究其本质,Keras 可以被看作是 Tensorflow 封装后的一个 API。

XgBoost vs Keras

7e3375c10b20788b2301781b3a6bc56e012e38c8

蓝:XgBoost;橙:Keras

既然 Keras 是深度学习框架,我们可以把它看做深层神经网络的间接代表。

XgBoost 与深度学习孰优孰劣?这是去年 Quora 上吵翻天的一个问题。而从 Kaggle 的数据看,前者一直处于领先地位,而后者也在奋力追赶。相比复杂、层多的神经网络,XgBoost 的优点是更快,对硬件要求更低,因此也更受普通用户欢迎。

但这个结果并不代表优劣,拿陈天奇博士自己的话说,就是:

不同的机器学习模型适用于不同类型的任务。深层神经网络通过对时空位置建模,能够很好地捕获图像、语音、文本等高维数据。而基于树模型的 XGBoost 则能很好地处理表格数据,同时还拥有一些深层神经网络所没有的特性(如:模型的可解释性、输入数据的不变性、更易于调参等)。

可视化工具大比拼

d7d3650eb8b7a31135b30237877201b4c950fc10

蓝:Matplotlib;橙:Seaborn;绿:Plotly

从 2017 年起,Plotly 就像开了挂一样一路走红,现在已经成为 Kaggle 用户最常用的可视化工具。排名第二的是 Seaborn,它实际上是在 Matplotlib 的基础上进行了更高级的 API 封装,生成的图更好看,而作为补充,Matplotlib 的图更有特色。

数据科学过程步骤大比拼

d5ccc82943556a2d473bc45c662d6b250adebe70

蓝:Exploration;橙:特征工程;绿:调参;红:集成

在上图中,最受 Kaggle 用户关注的是模型的集成。参加竞赛时,虽然最后提交的是一个模型,但参赛者会先训练若干个弱模型,最后再用集成方法进行整合堆叠。这种做法在回归和分类任务中非常常见。

至于同样倍受瞩目 Exploration,近期,无数数据科学家已经一遍遍强调了探索性数据分析(EDA)的重要性,而他们的呼吁起到了效果。如果我们没法确保数据的可靠性,最后的模型很可能会出问题。

但对于这个结果,有些人可能会感到意外。因为如果想在竞赛中取得好名次,调参和模型微调肯定必不可少,但这两个时间、精力消耗的 “大户” 的排名却不高。所以我们应该牢记,虽然集成是建模过程的最后一步,但我们应该在特征工程和模型调整上投入相当长的时间。

最为人津津乐道的子平台

742b2adb2d2e7a69721e8262063a09e5a1e9c185

蓝:数据集;橙:Kernel;绿:竞赛;红:Learn

既然 Kaggle 是个数据科学竞赛平台,用户们讨论的内容自然是参加什么竞赛,用了什么数据集,并分享看到的实用代码。而根据上图的曲线,自从 2016 年推出后,代码 Kernel 的受欢迎度一路飙升,毕竟用户们可以在上面看到其他参赛者自愿公开的模型代码,这对于学习和交流来说是不可多得的优质资源。

此外,Kaggle 还推出了课程子平台 Kaggle Learn,虽然目前在讨论度上不及数据集、Kernel 和竞赛,但这些课程主要面向初学者。未来,随着课程内容的丰富和新手人数的增加,这个板块的流行指日可待。


原文发布时间为:2018-08-14

本文作者:Shivam Bansal 

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。

原文链接:Kaggle CTO 力荐:从 Kaggle 历史数据看机器学习竞赛趋势

相关文章
|
11天前
|
机器学习/深度学习 数据采集 JSON
Pandas数据应用:机器学习预处理
本文介绍如何使用Pandas进行机器学习数据预处理,涵盖数据加载、缺失值处理、类型转换、标准化与归一化及分类变量编码等内容。常见问题包括文件路径错误、编码不正确、数据类型不符、缺失值处理不当等。通过代码案例详细解释每一步骤,并提供解决方案,确保数据质量,提升模型性能。
133 88
|
16天前
|
机器学习/深度学习 数据采集 算法
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
机器学习在生物信息学中的创新应用:解锁生物数据的奥秘
137 36
|
23天前
|
机器学习/深度学习 人工智能
Diff-Instruct:指导任意生成模型训练的通用框架,无需额外训练数据即可提升生成质量
Diff-Instruct 是一种从预训练扩散模型中迁移知识的通用框架,通过最小化积分Kullback-Leibler散度,指导其他生成模型的训练,提升生成性能。
50 11
Diff-Instruct:指导任意生成模型训练的通用框架,无需额外训练数据即可提升生成质量
|
17天前
|
人工智能 Kubernetes Cloud Native
跨越鸿沟:PAI-DSW 支持动态数据挂载新体验
本文讲述了如何在 PAI-DSW 中集成和利用 Fluid 框架,以及通过动态挂载技术实现 OSS 等存储介质上数据集的快速接入和管理。通过案例演示,进一步展示了动态挂载功能的实际应用效果和优势。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
模型训练数据-MinerU一款Pdf转Markdown软件
MinerU是由上海人工智能实验室OpenDataLab团队开发的开源智能数据提取工具,专长于复杂PDF文档的高效解析与提取。它能够将含有图片、公式、表格等多模态内容的PDF文档转化为Markdown格式,同时支持从网页和电子书中提取内容,显著提升了AI语料准备的效率。MinerU具备高精度的PDF模型解析工具链,能自动识别乱码,保留文档结构,并将公式转换为LaTeX格式,广泛适用于学术、财务、法律等领域。
238 4
|
2月前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
45 2
|
3月前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
103 3
|
3月前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
48 2
|
4月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
4月前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
434 8