查看: 37159| 回复: 28
跳转到指定楼层
上一主题 下一主题
收起左侧

[统计--转专业和交叉方向] 数据科学转行大忌,一做Kaggle误 终生

   
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
kaggle是一个机器学习的比赛平台。有不少的公司会把自己的数据放在上面,让世界各地的参赛者帮他们建模型。他们同时也提供一定的资金,奖励那些模型精度最高的几个队伍。

      现在,每次比赛都会有好几千的队伍参加。虽然绝大多数的人都拿不到奖金,但是通过这些比赛,大家可以获得用机器学习模型解决实际问题的第一手经验。而且,大家在总想努力提高自己的排名,就会不断尝试各种方法,从而迫使自己不断地学习总结,在比赛中充分地锤炼自己的知识和技术。此外,许多参赛者会把自己的部分解决方案放在讨论区。通过学习这些公开的解决方案,大家可以有效地吸收别人的经验,很好地加强自己相关知识的深度和广度。

      从找工作的角度来讲,如果能在比赛中拿到比较好的名次,也可以提高自己拿到面试的几率。如果,你是一个kagglemaster,很多公司都会愿意给你提供面试机会。-baidu 1point3acres

      但是,我不推荐转行的同学去做kaggle。. 1point3acres

      第一,并不是所有数据科学岗位都需要机器学习知识。比如像data analyst 和analytic data scientist 之类的岗位,需要的是对数据的分析和理解,所以在技术面试的时候考的都是 sql,statistics,和business case study。哪怕在工作中应用机器学习知识,也是侧重于用模型去提取数据中的insight,强调模型的可解释性,反而对模型精度没有那么高的要求。. 1point3acres
. From 1point 3acres bbs
      第二,在 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 容易走火入魔,影响了自己对机器学习技术应用的认知。.1point3acres

      第四,kaggle比赛需要大量的时间和精力投入。每次比赛都会持续两三个月。很多同学刚开始的时候,哪怕没日没夜地做,也就很难排到前20%。这样成绩并不能impress 面试官。而且,如果你做的不是有奖金的比赛,只是Titanic那些教学性质的比赛,甚至可能会让面试官觉得你太业余。
. ----
      总而言之,kaggle是一个很好的学习和练习机器学习知识的平台。但是我不推荐转行的同学去做kaggle比赛。通过做kaggle来掌握找工作所需要的技术和知识会事倍功半,甚至有可能被带入歧途。既然我们的目标是找工作,那么就应该根据工作岗位的需求,有针对性地,系统地,充分地准备。
. Waral dи,
. Waral dи,

评分

参与人数 36大米 +86 收起 理由
shanbaiz + 1 挺中肯的 对NG很有帮助
balalalala + 1 赞一个
GreenHill + 1 赞一个!
爱丽丝和鲍勃 + 10
pikado + 30 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分


上一篇:一个关于DS platform的想法
下一篇:马萨诸塞大学 Umass Amherst 的生统项目怎么样呢?
推荐
dunan00001 2021-2-7 11:34:40 | 只看该作者
全局:
本帖最后由 dunan00001 于 2021-2-7 11:57 编辑 .--
. .и
从一个参加过kaggle比赛并且目前做MLE的人的经验和观察,我倒是觉得Kaggle恰恰对于转行学DS的人帮助很大. .и

我就按照LZ列的四点 也列下我的观点
.
第一,大部分数据科学岗现在都对机器学习还是有一定要求的(当然也有纯数据分析岗)。从我在学校上课做project的感觉来看 课堂上往往比较重视一些理论的学习,却很少有机会get hand dirty。课程project也往往采用比较标准的dataset 各种标准solution网上到处都是。Kaggle提供了一个真正上手机器学习的机会,当你比较精通机器学习了以后你可以去看看很多kaggle比赛排名后20%-30%的人的solution很多就是有明显错误的,不去上手做一下很难理解有啥坑(当然即使我经常做也经常会出现一些基本错误翻车)

第二,在实际生产中确实做模型只是其中的一小步。但是对于转行的选手,最重要的就是在上课或者准备面试的过程中是没有机会去接手真实的生产环境的,那么退而求其次,接触下部分环境 体验下做模型的部分也总比纯上课简历上要好看的多(特别是取得好成绩)。对于本身就是做机器学习的phd 当然做kaggle要求有点低了,但是不得不举出一个在别人说kaggle不行的时候我特别喜欢的例子。2012年Kaggle搞过一个Merck Molecular Activity的比赛,当时NN的方法在工业界学术界kaggle上都没人愿意用,于是Hinton大神带着学生亲自下场参加了次比赛并砍下第一 https://www.kaggle.com/c/MerckActivity/overview/winners 这里是Hinton的kaggle profile https://www.kaggle.com/jeff20/followers 总的来说即便是ML的phd Kaggle也有一些比赛是很不错的 能拿第一绝对说明实力.
.--
第三,kaggle上的高分模型适不适合实际问。这个确实有一些这样的问题,但是伴随着Kaggle逐渐增加深度学习和不断改善比赛环境,总的来说Kaggle还是希望比赛能尽量接近实用。比如之前和NFL的NFL Big Data Bowl比赛 最近说已经投入实用中https://twitter.com/ph_singer/status/1353472366022680576?s=20 。另外近几年来深度学习的比赛,新的模型和结构应用的很快,基本是arxiv有了就会有选手上手试一试,所以说对于平常没机会接触实际生产和学术的转行选手来说还是很宝贵的经验。当然Kaggle比赛也存在很多坑的比赛,如果发现前排一直没有啥高手现身,那可能建议还是绕着走比较好. 1point3acres

第四,kaggle比赛需要大量的时间和精力投入。这点是毫无疑问的,刷题,mock interview这些没有不需要精力的。所以我个人也觉得最好转行以后对一些基础python编程和算法有了解再参加比赛。而且建议一上来就参加feature的比赛,现在很多比赛都会有些分享的solution,如果能看懂solution就已经能学到很多东西了,而基于这些baseline去拿更好的成绩也并非不可能,现在很多金牌选手也是拿一个公开的notebook去魔改来提高比赛技巧

另外针对这段话再说一下
kaggle比赛就是一群人花了无数时间为了把准确率提高0.01甚至0.001,在真实工作中一点意义都没有
. check 1point3acres for more.
首先这句话本身就绝对了,很多公司work就是AUC涨0.1% 0.2%的扣 而且听说有些团队都是0.03% 0.04%的提高就很好了。另外比赛中0.01的差距 可能能让你学到好多东西,比如之前某次CV比赛其实我们最后solution排名比较好后来发现就是我们再超参数和训练的schedule上调的比较好,听上去好像大家都能意识到,但是在比赛中你才能体会到schedule和lr这些细节到底有多重要。

最后再总结下:
练kaggle 我觉得主要有俩大目标吧
1 通过比赛 熟悉机器学习的知识,增加对机器学习问题的理解
2 取得好成绩刷简历(当然假设coding等也都过关了,要不然简历过了coding不过也没用)
至于是不是适合所有人 那肯定不是 但我觉得对于转行选手来说这两点往往都会有所欠缺 所以是一个不错的选择

评分

参与人数 12大米 +28 收起 理由
杀G不成反被杀 + 1 赞一个
lllbl + 3 给你点个赞!
爱丽丝和鲍勃 + 10
paul0127 + 1 给你点个赞!
Fake/Random + 1 赞一个

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 三除米甫 于 2021-2-6 23:37 编辑
dunan00001 发表于 2021-2-6 21:34
从一个参加过kaggle比赛并且目前做MLE的人的经验和观察,我倒是觉得Kaggle恰恰对于转行学DS的人帮助很大

...

同意层主,作为一个靠kaggle solo gold拿到Google MLE的转专业选手,我在这里补充几点
. 1point 3 acres
第一,我同意楼主说的不是所有数据科学岗位都需要机器学习知识。但是kaggle中会有参赛者post出自己的Exploratory Data Analysis,即便是做和ML不相关的data analyst也从中可以学到其他人在分析数据时是怎么处理数据和做数据可视化的。

第二,先同意楼主说的建模本身也只是日常工作的一小部分,但也是很重要的一部分,其中也参杂了很多技巧,例如模型的参数到底怎么调才又快又好。学生上课通常缺少这方面的指引,只有实践才能出真知。另外,我也承认楼主说的定义问题等等才是工作中的重点,但是作为一个学生,这方面的知识更加难以难涉及到,通常只能在工作中积累。也就是说虽然做kaggle不能教你这些内容,但其实在第一份工作之前也没有很多其他渠道去接触这些内容。

第三,从我做的几个kaggle来看,top ranking team绝对不仅仅是model stacking,一定是有robust features才能获得好的成绩。在我没有kaggle经历之前,我以为建模的数据处理就是fill missing data,remove outliers,variable standardization,完全想不到那些天马行空的feature原来可以给模型结果带来那么大的帮助。我相信在学到这些feature engineering的思路之后,一定对工作中的模型performance有所帮助。至于data leakage,如果你在一个kaggle比赛中遇见过了,你大概也会因此意识到什么样的data processing容易产生leakage,应该在工作建模中想办法避免。

第四,我可以在这里分享一下我的经验。我第一次kaggle比赛时单人参赛,最后用尽全力拿了个10%的铜牌,在看完top team分享出来的solutions后学到了非常多。第二次参赛和小伙伴组队,靠着之前学来的技巧拿了个3%的银牌,并且也让我收获了几个面试和offer。第三次再次单枪匹马作战,靠着之前总结的经验终于获得了一个个人金牌,也是因为这次比赛的内容和google里面一些小组的工作内容相似,让我拿到了google MLE的面试,当然拿到最后的offer也还是需要刷题+其他ML理论知识的积累。这些比赛大概每次都耗费了我2-3个月的课余/业余精力,也为了跑模型花了几千刀攒了几台电脑,所以付出和回报是否匹配可能每个人都有不同的答案。
我把我自己的经验在这里分享给大家,到底做kaggle值得不值得还是得具体情况具体分析。

评分

参与人数 10大米 +12 收起 理由
Jiy048 + 1 赞一个!
lllbl + 3 给你点个赞!
justinleeme + 1 赞一个
dunan00001 + 1 给你点个赞!
diffmani + 1 赞一个

查看全部评分

回复

使用道具 举报

推荐
szhhan 2021-2-7 05:11:21 | 只看该作者
全局:
kaggle比赛就是一群人花了无数时间为了把准确率提高0.01甚至0.001,在真实工作中一点意义都没有 . 1point3acres

怎么发现数据能解决的问题,怎么target合适的问题,怎么设计pipeline,落地和部署的可能性,这些都远远比模型finetune高1%的accuracy重要的多

评分

参与人数 1大米 +1 收起 理由
FaFaCOOT + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
HLin16 2021-2-6 15:44:16 | 只看该作者
全局:
谢谢经验分享!请问转行到ds的新手刷leetcode足够了吗?
回复

使用道具 举报

全局:
说的很对!Kaggle比赛对于精进机器学习知识有帮助,是个不错的在深度上练习提高的平台,但是大部分的业界ds项目的难点和是把实际问题抽象出来建模。

评分

参与人数 1大米 +1 收起 理由
L.T + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
damien 2021-2-6 23:07:04 | 只看该作者
全局:
不能同意更多
回复

使用道具 举报

🔗
veralee123 2021-2-7 00:13:47 | 只看该作者
本楼:
全局:
谢谢建议
回复

使用道具 举报

🔗
gongchen 2021-2-7 00:21:15 | 只看该作者
全局:
感谢楼主的建议
在大环境鼓吹做kaggle的情况下,楼主的想法对新人会很有启发!

楼主能不能讲讲想获得数据科学岗位工作所需要的技术和知识,怎么样事半功倍呢?有什么学习路径么?. 1point 3 acres

我看文章里提到了sql,statistics,和business case study。
. 1point3acres.com 楼主能不能具体讲讲要学哪些内容然后学到怎么样的程度呢?
回复

使用道具 举报

🔗
dyang1988 2021-2-7 01:57:20 | 只看该作者
全局:
前阵子公司老板转发了个doordash的data science post,个人觉得写的还是不错的:
https://doordash.engineering/202 ... ll-business-impact/
A good data scientist is measured by how much measurable business impact it brings to the company, not by how (mathematically) clever the data science solution is. 所以一定程度上来说做Kaggle意义并不大。
在startup工作了三年,踩了不少坑,个人感觉以下几点挺重要:1)对公司的各种business metric要非常了解,多想想公司的哪些方面做得不够好,可以用data solution去improve metric。多找人聊聊对于发现公司存在的问题有帮助;2)a simple solution that works reasonably well is way better than a complicated ML model. 个人很喜欢基于intuition的简单解决方法;3)有时候公司大了,分到有很大business impact的project的机会就小了

我好像说了好多次business impact;定义一个data scientist好坏的标准可能就是measurable business impact.
回复

使用道具 举报

全局:
如果说做kaggle是做到拿名次确实没有必要我也认为一般的同学可能也做不到。但确实如果拿到银/铜牌大概还是有很大好处的,除非是挂ds名字的da。其中很多小的处理方法和技巧(不包括找leakage和疯狂stack)还是有些作用的. Waral dи,

补充内容 (2021-2-7 02:47):
而且至少说明了熟悉了一些nlp task和ml模型的流程。别简历上都是kaggle playground或是期末project老让我感觉我一天就能复现出全部的

评分

参与人数 2大米 +2 收起 理由
爱丽丝和鲍勃 + 1
yu_chenangel + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
地中有山 2021-2-7 02:48:51 | 只看该作者
全局:
感谢LZ分享。
回复

使用道具 举报

🔗
大龙猫 2021-2-7 02:51:50 | 只看该作者
全局:
我只能说是不推荐转行新手参加kaggle比赛,如果具备基础知识以及编程能力的话,我还是推荐Kaggle的。能够完整的参加过一个比赛,是可以了解到如何去解决一个machine learning problem的pipeline(除去定义问题、收集数据),能够从一个更全局的角度来看待自己所做的处于哪个环节。确实,kaggle中可能有很多在工作中没用的tricks or data leakage,但这些也是kaggle这些年在避免的,现在已经好很多了。总之,如果你需要项目经历的话并且没有别的项目机会的话,能够参加一个Kaggle比赛还是会收获很多的。

评分

参与人数 2大米 +2 收起 理由
爱丽丝和鲍勃 + 1
minghaolee + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表