遇事不决,XGBoost,梯度提升比深度学习更容易赢得Kaggle竞赛
梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI
在Kaggle上参加机器学习比赛,用什么算法最容易拿奖金?
你可能会说:当然是深度学习。
还真不是,据统计获胜最多的是像XGBoost这种梯度提升算法。
这就奇了怪了,深度学习在图像、语言等领域大放异彩,怎么在机器学习比赛里还不如老前辈了。
一位Reddit网友把这个问题发在机器学习板块(r/MachineLearning),并给出了一个直觉上的结论:
提升算法在比赛中提供的表格类数据中表现最好,而深度学习适合非常大的非表格数据集(例如张量、图片、音频、文本)。
但这背后的原理能不能用数学原理来解释?
更进一步,能不能仅通过数据集的类型和规模来判断哪种算法更适用于手头的任务。
这能节省很多时间啊,举个极端点的例子,如果尝试用AlphaGo做Logistic回归,你就走远了。
问题吸引了很多人参与讨论,有人回复到:
这是一个十分活跃的研究领域,完全可以就这个主题做一篇博士论文了。
关键在能不能人工提取特征
有网友表示,虽然很难给出详细论证,但可以猜测一下。
基于树的梯度提升算法可以简单的分离数据,就像这样:
如果特征小于某个值就向左,反之就向右,一步一步把数据拆解。
在深度学习中,要用到多个隐藏层才能把输入空间变换成线性可分割:
这个过程就像是把输入空间在高维进行“揉捏”:
数据集越复杂,需要的隐藏层就越多,变换过程很可能失败,反而让数据更加缠在一起:
即使成功了,相对梯度提升树来说也是效率极低的。
深度学习的优势是,面对人类很难手工提取特征的复杂数据可以自动创建隐藏特征。
而且即使你手工创建了特征,深度网络无论如何还是会自己创建隐藏特征。
而Kaggle比赛中使用的表格数据,特征往往已经有了,就是表头,那么直接使用梯度提升就好。
就像Kaggle Avito挑战的冠军所说:“遇事不决,XGBoost”。
吃数据的怪物
另一个高赞回复是:
大多数Kaggle比赛的数据集都不够喂出一个神经网络怪物。
在小数据集上深度学习容易过拟合,正则化的方法又依赖许多条件。在给定数据集的比赛上,还是梯度提升比较迅速、稳定。
而参数越多的深度神经网络需要越多的数据,比赛提供的数据集有限,数据维度也比较低,发挥不出深度学习的实力。
一位在Kaggle上成绩很好的大神补充到:
不同的深度网络适用于某种数据集,如CNN适合处理图像,RNN适合处理特定的序列等。比赛给的数据集很难找到合适的预训练模型可用。
总的来看,深度学习在表格数据上的性能肯定优于梯度提升,但是需要大量时间优化网络架构。
Kaggle上的胜出方案一般是将二者结合,加上梯度提升,有经验的选手在几个小时内就能得到不错的结果。
参考链接:
[1]https://www.reddit.com/r/MachineLearning/comments/nxn65x/d_can_we_begin_to_understand_possible/
[2]https://www.reddit.com/r/MachineLearning/comments/9826bt/d_why_is_deep_learning_so_bad_for_tabular_data/
[3]http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
遇事不决,XGBoost,梯度提升比深度学习更容易赢得Kaggle竞赛相关推荐
- 遇事不决,转行做程序员?先看看转了的人怎么说
遇事不决先"转码"--近几年,这好像成了非程序员考虑转行方向的优先选择. 转码,指放弃原职业或专业,转行成为程序员.通过"转码"这一跳板,有人在互联网行业谋得一 ...
- 遇事不决,量子力学;不懂配色,赛博朋克。推荐一个Python可视化库
遇事不决,量子力学;不懂配色,赛博朋克.推荐一个Python可视化库 12月10日,历经多次跳票后,波兰公司CD Projekt Red制作的<赛博朋克2077>终于正式发售,在Steam ...
- 遇事不决,量子力学!潘建伟的导师荣获2022年诺贝尔物理学奖!
来源:新智元 遇事不决,量子力学. 不负众望,今年的诺贝尔物理学奖颁给了量子力学! 10月4日下午,诺贝尔奖委员会宣布将2022年物理学奖颁给法国物理学家Alain Aspect.美国物理学家John ...
- Kaggle上主要有两大方法:梯度提升机和深度学习
Python深度学习: 在2016年和2017年,Kaggle上主要有两大方法:梯度提升机和深度学习.具体而言,梯度提升机用于处理结构化数据的问题,而深度学习则用于图像分类等感知问题.使用前一种方法的 ...
- 基于集成学习方法Random Forest、Adaboost、GBDT、LightGBM、XGBoost的调参、建模、评估实现kaggle竞赛员工离职案例分析(2)
基于集成学习方法Random Forest.Adaboost.GBDT.LightGBM.XGBoost的调参.建模.评估实现kaggle竞赛员工离职案例分析(2) 引言 3. adaboost模型分 ...
- “遇事不决,量子力学”?微软亚研院开源时空预测开源工具:FOST,应对各行业共性预测需求!...
关注公众号,发现CV技术之美 (本文阅读时间:7分钟) 编者按:2020年新冠疫情肆虐全球,为了控制疫情蔓延,找到应对措施,美国疾病控制中心公布了大量疫情相关数据,向全世界顶级科研机构救助,希望科学家 ...
- 数量级提升!深度学习让机器人抓取更高效
作者 | Jeffrey Ichnowski等 译者 | 凌霄 出品 | AI科技大本营(ID:rgznai100) 摘要 电子商务仓库中的拣选机器人需要快速计算各种配置之间有效且平稳的机器人手臂运动 ...
- 清华大学出品:罚梯度范数提高深度学习模型泛化性
关注公众号,发现CV技术之美 1 引言 神经网络结构简单,训练样本量不足,则会导致训练出来的模型分类精度不高:神经网络结构复杂,训练样本量过大,则又会导致模型过拟合,所以如何训练神经网络提高模型的泛化 ...
- 【转载】IT新曙光——“遇事不决,量子力学” 的问与答
前言: 量子计算究竟是怎么回事,现在发展到什么阶段了,不是专业人士可能真的没机会了解.本文就通过得到课程上面的李铁夫老师对于量子计算的问与答分享给大家,希望对大家的生活与工作有所帮助.李铁夫老师是清华 ...
最新文章
- java restful项目打包_听说你在接私活? 一个助你效率翻倍的项目工具!!
- php多进程mysql更新不了_php MYSQL 数据更新修改不了
- python小游戏——21点
- B-树、B+树、B*树详解
- 如何把局域网内不同数据库的两个表的数据进行传输?
- XproerIM-V1,2,12,65475发布。
- matlab 中的内联函数、匿名函数和函数函数
- Git版本控制:Github的使用之 多人协作及参与项目
- Linux下搭建CACTI的时候总结的一些小知识
- Android8.1 源码添加黑名单拦截电话和短信记录
- 人工智能几行代码实现换脸,python+dlib实现图文教程
- 5、【办公自动化】Python实现PDF转Word
- 更换硬盘并迁移系统的方法
- // #ifdef MP-WEIXIN微信小程序无效,不执行
- <Linux开发> ubuntu开发工具-Ubuntu测试网速及实时网速图
- 有人负责,才有质量:写给在集市中迷失的一代
- vant的安装和引入
- 163邮箱苹果设置不成功_怎么样才能让自己服务器发出的邮件不被 Gmail、Hotmail、163、QQ 等邮箱放入垃圾箱...
- SAP UI5 应用开发教程之七十九 - 采用测试驱动开发理念(Test Driven Development)进行 SAP UI5 应用的功能开发(一)的试读版
- google/filament 场景(Scene)管理