data challenge 我听说过的,有 analytics,modeling,ab testing 三个大类的(如有遗漏,欢迎补充)。Analytics的职位我没有投过,没有经验讲。AB testing 这个实际应用水比较深,还是挺看经验的,也不在讨论范围。此文着重 modeling
前期准备
- 可以通过看别人的经验贴,某本电子书,翻以前ML project相关作业的report,和朋友请教经验等等方式了解这个东西大体应该怎么搞
- 常用的code可以提前准备了好,例如 LaTeX 写报告的模板,写报告常用语句,EDA 相关code,常用模型的 code cheatsheet手边待用
- 想好modeling的大体思路,先检查data,画各种图,选定evaluation metric,train一到两个model,检查结果,写结论
时间安排
- 大部分 data challenge 会给 24 或 48 小时,可以和recruiter商量好时间接收。我当时是第一天早上十点接受,保证收到立马开始进入工作状态,时间不够用的时候还能熬夜赶工。
- 为了几家公司进度差不多一致,我九天之内做了三个(累觉不爱):一个周末两天,周中请假两天,接下来的周末两天。
- train model的时候需要考虑train的时间。我碰到有个数据量比较大,R跑起来特别慢,中途换 python。
几点注意
- 解释你的选择:为什么数据这么清理,为什么feature这么搞,为什么用 model A,而不是 model B,为什么用这个 metric,为什么做这个假设
- 不是特别常见的 model 可以简单解释下原理,毕竟批卷子的人也不可能什么都懂。当时直接调别人一个现成的包,用了不太常见的一个model,reference按规矩写好
- 个人偏好加一个future work,说一下如果时间充足,你还打算做什么,以示考虑充分
- Summary/Conclusion 这个前面帖子lz已经强调过了,是一定要写的。通过你的模型,发现了什么。最好能给出 actionable insights (是的,这词很俗。换位思考,公司出 data challenge 是想考察你解决问题的能力,而不是调包的能力。
我个人的经验,hiring manager看你deliver的所有东西最多三分钟
通过的标准也一般比较简单,他有一个script可以直接量化你的结果,这个结果必须够线
如果多个结果过线了,这时候他绝没时间看你code的逻辑,会花1分钟时间看你的readme,剩下一分钟进你的codebase看你写 code的格式
这时候特别加分的是
-
README 拿markdown,latex等格式列出了方法,结果和reproduce你结果的执行程序,具体参照那些github上边星很多的project
-
你的代码格式非常professional很加分,具体也参照那些github上边星很多的project
(1) 你有src, test, bin, lib, README等等这些一般开源代码库的通有的文件命名
(2) 你的code的方程和class有注释(pycharm自带的就很漂亮),把不同逻辑分成不同的class,pep8 style的naming等等