数据科学转行大忌,一做Kaggle误 终生

l
lishuyu
楼主 (北美华人网)
     kaggle是一个机器学习的比赛平台。有不少的公司会把自己的数据放在上面,让世界各地的参赛者帮他们建模型。他们同时也提供一定的资金,奖励那些模型精度最高的几个队伍。
      现在,每次比赛都会有好几千的队伍参加。虽然绝大多数的人都拿不到奖金,但是通过这些比赛,大家可以获得用机器学习模型解决实际问题的第一手经验。而且,大家在总想努力提高自己的排名,就会不断尝试各种方法,从而迫使自己不断地学习总结,在比赛中充分地锤炼自己的知识和技术。此外,许多参赛者会把自己的部分解决方案放在讨论区。通过学习这些公开的解决方案,大家可以有效地吸收别人的经验,很好地加强自己相关知识的深度和广度。
      从找工作的角度来讲,如果能在比赛中拿到比较好的名次,也可以提高自己拿到面试的几率。如果,你是一个kagglemaster,很多公司都会愿意给你提供面试机会。
      但是,我不推荐转行的同学去做kaggle
      第一,并不是所有数据科学岗位都需要机器学习知识。比如像data analyst 和analytic data scientist 之类的岗位,需要的是对数据的分析和理解,所以在技术面试的时候考的都是 sql,statistics,和business case study。哪怕在工作中应用机器学习知识,也是侧重于用模型去提取数据中的insight,强调模型的可解释性,反而对模型精度没有那么高的要求。
      第二,在 modeling 比较重的岗位中(比如 NLPdata scientist),建模本身也只是日常工作的一小部分。每当接手一个项目,大家首先需要定义问题,把一个产品需求转化成一个可以解决的机器学习问题。同时,根据产品的应用特点,设计能够反映模型价值的衡量指标。然后,收集、筛选、清理数据会需要花很多的时间。如果这些事情都做完了,建模是很快的。而且,比较成熟的data science team 一般都已经搭建了trainingpipeline,可能几行命令就行了。我和一个在kaggle上举办过比赛的大牛聊过。他说,从技术贡献上讲,组织kaggle比赛对他们帮助不大。有定义好的问题和指标,还有整理成表的数据,一个项目就已经完成了百分之九十了。
      第三,kaggle上的高分模型在工业界中往往是没法用的。除了kernel赛,一般kaggle比赛中的高分模型都是非常复杂的,会有上百个模型stack在一起。哪怕是可以把这些模型写成稳定的production code,工作量也是巨大的。而且,比赛中拿高分的很多tricks,实际上都是在ovefithyperparameters 或者利用data leakage。比如,classification问题用logloss 反推testset 的base rate,NLP 问题用test set 数据建立vocabulary,利用隐藏在indices 中数据收集的pattern 去建立所谓magic feature。这些都是真实工作中要极力避免的情况,在比赛中却是千万人中杀出一条血路的独门绝技。所以,有些没有工业界经验的同学做kaggle 容易走火入魔,影响了自己对机器学习技术应用的认知。
      第四,kaggle比赛需要大量的时间和精力投入。每次比赛都会持续两三个月。很多同学刚开始的时候,哪怕没日没夜地做,也就很难排到前20%。这样成绩并不能impress 面试官。而且,如果你做的不是有奖金的比赛,只是Titanic那些教学性质的比赛,甚至可能会让面试官觉得你太业余。
      总而言之,kaggle是一个很好的学习和练习机器学习知识的平台。但是我不推荐转行的同学去做kaggle比赛。通过做kaggle来掌握找工作所需要的技术和知识会事倍功半,甚至有可能被带入歧途。既然我们的目标是找工作,那么就应该根据工作岗位的需求,有针对性地,系统地,充分地准备。

D
DigitalChick
回复 1楼lishuyu的帖子
Kaggle 排名怎么算的?全国99名算厉害吗?
l
lifeofpai
回复 1楼lishuyu的帖子
非常好的分析。是楼主的原创吗?
l
lifeofpai
回复 1楼lishuyu的帖子
请问楼主,什么样的project 会对找工作更有用呢? 体现自己定义问题,自己搜集 清理数据 并建立pipeline?
m
metalsolid
是原创吗
g
goneaway
回复 1楼lishuyu的帖子
作为业内人士我顶一下楼主,很多很好的分析,真正Data Science的技巧部分最多占全部技能的百分之二十五,更多的是对行业的理解和对各种算法优缺点的了解
b
bipoppy
楼主说得很好👍
l
lianzi
赞一个
h
hoohoo001
赞lz分享
l
lishuyu
回复 2楼DigitalChick的帖子
不是我的原创(表情),是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞,有兴趣关注的可以私信我。
l
lishuyu
回复 3楼lifeofpai的帖子
不是我的原创,是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞,有兴趣关注的可以私信我。
l
lishuyu
回复 4楼lifeofpai的帖子
你好,关于你问的问题,有兴趣的话可以私信我。
l
lishuyu
回复 5楼metalsolid的帖子
不是我的原创,是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞,有兴趣关注的可以私信我。
l
lishuyu
回复 6楼goneaway的帖子
嗯嗯,有兴趣的话可以私信我,我们可以交流交流。
l
lishuyu
回复 7楼bipoppy的帖子
谢谢,有兴趣的话可以私信我,我是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞。
l
lishuyu
回复 8楼lianzi的帖子
我是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞,有兴趣关注的可以私信我。
l
lishuyu
回复 9楼hoohoo001的帖子
谢谢,我是在一个DS讨论群里推的公众号上看到的原创帖,觉得很赞,有兴趣关注的可以私信我。
x
xiaofengxian
不用执着于kaggle刷榜,但用kaggle的case和数据来提升自己project的经验还是很有帮助的。同样的数据别人能取得比你更好的结果这不是一句简单的overfit和data leakage能解释的。
s
supermouse
我也是做DS的,同意楼主说的每一个字,kaggle和工作场景完全脱节。
l
lishuyu
回复 19楼supermouse的帖子
好的,谢谢, 有兴趣的话可以私信我哦,我们也有一个DS交流群。
w
wapu
     kaggle是一个机器学习的比赛平台。有不少的公司会把自己的数据放在上面,让世界各地的参赛者帮他们建模型。他们同时也提供一定的资金,奖励那些模型精度最高的几个队伍。
      现在,每次比赛都会有好几千的队伍参加。虽然绝大多数的人都拿不到奖金,但是通过这些比赛,大家可以获得用机器学习模型解决实际问题的第一手经验。而且,大家在总想努力提高自己的排名,就会不断尝试各种方法,从而迫使自己不断地学习总结,在比赛中充分地锤炼自己的知识和技术。此外,许多参赛者会把自己的部分解决方案放在讨论区。通过学习这些公开的解决方案,大家可以有效地吸收别人的经验,很好地加强自己相关知识的深度和广度。
      从找工作的角度来讲,如果能在比赛中拿到比较好的名次,也可以提高自己拿到面试的几率。如果,你是一个kagglemaster,很多公司都会愿意给你提供面试机会。
      但是,我不推荐转行的同学去做kaggle
      第一,并不是所有数据科学岗位都需要机器学习知识。比如像data analyst 和analytic data scientist 之类的岗位,需要的是对数据的分析和理解,所以在技术面试的时候考的都是 sql,statistics,和business case study。哪怕在工作中应用机器学习知识,也是侧重于用模型去提取数据中的insight,强调模型的可解释性,反而对模型精度没有那么高的要求。
      第二,在 modeling 比较重的岗位中(比如 NLPdata scientist),建模本身也只是日常工作的一小部分。每当接手一个项目,大家首先需要定义问题,把一个产品需求转化成一个可以解决的机器学习问题。同时,根据产品的应用特点,设计能够反映模型价值的衡量指标。然后,收集、筛选、清理数据会需要花很多的时间。如果这些事情都做完了,建模是很快的。而且,比较成熟的data science team 一般都已经搭建了trainingpipeline,可能几行命令就行了。我和一个在kaggle上举办过比赛的大牛聊过。他说,从技术贡献上讲,组织kaggle比赛对他们帮助不大。有定义好的问题和指标,还有整理成表的数据,一个项目就已经完成了百分之九十了。
      第三,kaggle上的高分模型在工业界中往往是没法用的。除了kernel赛,一般kaggle比赛中的高分模型都是非常复杂的,会有上百个模型stack在一起。哪怕是可以把这些模型写成稳定的production code,工作量也是巨大的。而且,比赛中拿高分的很多tricks,实际上都是在ovefithyperparameters 或者利用data leakage。比如,classification问题用logloss 反推testset 的base rate,NLP 问题用test set 数据建立vocabulary,利用隐藏在indices 中数据收集的pattern 去建立所谓magic feature。这些都是真实工作中要极力避免的情况,在比赛中却是千万人中杀出一条血路的独门绝技。所以,有些没有工业界经验的同学做kaggle 容易走火入魔,影响了自己对机器学习技术应用的认知。
      第四,kaggle比赛需要大量的时间和精力投入。每次比赛都会持续两三个月。很多同学刚开始的时候,哪怕没日没夜地做,也就很难排到前20%。这样成绩并不能impress 面试官。而且,如果你做的不是有奖金的比赛,只是Titanic那些教学性质的比赛,甚至可能会让面试官觉得你太业余。
      总而言之,kaggle是一个很好的学习和练习机器学习知识的平台。但是我不推荐转行的同学去做kaggle比赛。通过做kaggle来掌握找工作所需要的技术和知识会事倍功半,甚至有可能被带入歧途。既然我们的目标是找工作,那么就应该根据工作岗位的需求,有针对性地,系统地,充分地准备。


lishuyu 发表于 2020-06-27 04:46

深以为然。我自己做的第一个kaggle project就是那个housing price prediction,我算对residential real estate很了解的了,做完觉得自己的domain knowledge就是个笑话。抱着学习的态度,我看了好几个高分的notebook,我想说不少从一开始就data leakage了,而且互相抄袭严重。我最后的rsmle大概就是0.14,我能接受0.11,但是0就真的恕我无法想象了。不过我还是觉得Kaggle对我的帮助很大,给了我一个机会通盘考虑我自己学过的东西,倒逼我不断优化自己的code,应用之前学过的知识。对我来说就是贵在参与,至于leaderboard别太当真就行了。
l
lishuyu
回复 21楼wapu的帖子
 👍
c
chiuhaitang
雖然kaggle跟實際工作很不一樣,但如果我是hiring manager, 我還是會優先選kaggle做得好的
P
Payson
回复 21楼wapu的帖子
我也做过房价那个,但是做完之后感觉数据分析这个活也不过如此,可能是这个太简单了,我记得没有用到ml,就是转换数据用一堆regression来fit model
w
wapu
回复 24楼Payson的帖子
那个项目就叫advanced regression technique。比起怎么run regression,我倒觉得这个项目的feature engineering是一门玄学。我自己数据分析没有抓住什么特别好的signal,只是在填补null的时候有些发现,比如alley这个feature大概超过97%都是null,据我所知美国的房子1950s后就很少有alley了,数据也证实了这一点;要么就是null的原因就是房子单纯没有某个feature。
这个数据集本身从domain knowledge讲对房价起作用的feature其实就那么些,数据又很干净,所以可能EDA起来没太大意思吧。
b
baby16
回复 6楼goneaway的帖子
对的。如果Kaggle进入前10%还能看一下。性价比不高。 与其刷Kaggle,不如有一点实习啊业界经验。
爱码仕
同感,Data Science就是一个巨大的火坑,实在不适合转行的人去做,还有Machine Learning。 这种东西,技术上没有太大的难度,都是要对行业的理解。我自己转行的时候,花了一年的时间钻研了一下DS和ML,太深了,可以毕业无数个博士,事实也是有无数个博士在这两个领域。 怎么可能稍微上上辅导班,做两个小project就指望自己能扫到offer,真的去做DS呢。 FLAG这样的大厂,上来都是刷题,小公司,更看重的是经验。 个人体会!