本科生如何找机器学习数据挖掘方向的实习?

论坛 期权论坛 期权     
匿名用户   2018-10-3 21:46   12218   2
提示: 作者被禁止或删除 内容自动屏蔽
分享到 :
0 人收藏

2 个回复

正序浏览
3#
熊波(Roy)  1级新秀 | 2018-10-3 21:46:25 发帖IP地址来自
大三暑假拿到的某厂数据挖掘实习,针对机器学习领域相关实习,我总结了以下四点(按重要性排序)
[h1]1. 机器学习基础[/h1]掌握常见的机器学习模型,常见的模型可根据重要性及难度分为三个梯度,第一梯度是最基础最重要的模型,主要包括:线性回归逻辑回归支持向量机(SVM)、KMeans、决策树、朴素贝叶斯、PCA降维、神经网络。对于本科生找实习而言,能够熟练的掌握第一梯度足矣,但是注意一定要深入理解算法原理,最好能够在纸上推导出算法公式,或者能够写出算法的核心代码;第二梯队是一些工程实践以及竞赛中常用的方法,可作为加强和补充来学习,主要包括:常见的集成学习方法(随机森林GBDT、Adaboost),以及最近很火的深度学习,对于这些算法,只要大概知道其原理以及适合的应用场景即可,不必要深究公式,建议在具体的项目或竞赛中使用这些算法,例如参加Kaggle,天池等竞赛。第三梯度的模型是一些针对具体岗位性质的算法,例如,如果你做的是推荐系统,最好是学习一下基础的协同过滤算法(Item-based、User_based),如果你做的是自然语言处理,最好学一下LDA词向量文本挖掘相关的算法。 当然,如果时间有限,掌握第一梯队的模型足够找实习了。
[h1]2. 算法与数据结构基础。[/h1]这个是所有程序员必须掌握的内容,机器学习也不例外,尤其是想去BAT等大公司,这关必过。面试的时候,肯定少不了算法题,这一块没有捷径可走,多刷刷oj就可以了。以下是我比较推荐的几本书以及oj。

  • 《编程之美》
  • 《剑指offer》
  • 《程序员面试金典》
OJ
[h1]3. 实习经历或者项目经历。[/h1]如果有相关经历或者项目的话,面试的时候你会很占优势。一方面,实习经历可以很好的作为你面试时候的谈资,因为大部分面试官会比较喜欢针对简历问问题(除了Google比较变态完全不看简历只考算法之外)。另一方面,参与真正的项目,才能让你更深入理解算法的原理,还能够提高你的工程时间能力,这无论是对你的面试,还是将来进入公司后的工作,都是有极大帮助的。
[h1]4. 常用语言和工具[/h1]例如Python,R,Spark,Hadoop等,工具会用即可,不必深究,面试的时候面试官也不会为难你。


PS:面试前,一定要看看前人的面经
2#
微调  4级常客 | 2018-10-3 21:46:24 发帖IP地址来自
咱谈谈方法论吧。技术层面的问题我已经分析过很多次了,可以参考:
谈方法论的是因为...很多同学并不是输在了技术能力上,而是在一些从没想过的“非技术性问题”上栽了跟头。
除了学生朋友以外,如果你觉得自己技术能力不错但总是无缘机器学习岗位,也不妨读一下这个回答。
[h1]1. 根据往届情况进行精准定位[/h1]在开始寻找实习前,你应该先了解自己的“潜在雇主”有哪些。一个比较简单的分析方法是观察你们往届学长学姐的实习情况,这大概代表了你的期待(expectation)。
学过统计的人都知道,期待不代表你不能去更好的地方。但在样本数大的前提下,有很大概率你会去类似的公司。而准确的公司定位可以帮助你更有针对性的准备,不要把时间花在你看不上和看不上你的公司上。这不仅给人事部门减负,也避免自己浪费时间在无意义的准备和面试上。
面试不是越多越好,就像广告一样,要尽量精准投放。在这个年代,很多面试官自己也不懂什么是机器学习,一个糟糕的面试官有时还会让你怀疑自己。
相信我,即使你不能手推支持向量机(SVM),你依然可以是一个优秀的数据工程师。
[h1]2. 调整心理预期,放宽搜索域[/h1]国内的机器学习领域除了BAT这种大公司,牛逼中小型(创业)公司比如商汤科技以外,还有很多其他不错的公司。很多同学都抱着非牛逼公司不去,但没有考虑到僧多肉少的问题,这不成熟。计算机科学作为常年霸占毕业生人数排行榜的专业,有再多科技公司都很难容纳所有人,更何况现在是人人都想机器学习的时代。
如果大家仔细研究一下,机器学习相关的岗位基本的学历要求都是硕士以上。对于本科阶段的实习生,公司的定位一般都是后备培养力量,很少期待大家去做前沿开发的。因此,每个公司需要的机器学习方向的本科实习生都不多,大家不妨多朝不同领域的公司看一看。举个不恰当的例子,去传统行业,比如物流公司或者建筑公司做数据挖掘不代表穷途末路。只要有“老师傅”带你,越是这种传统行业越是未被开发的宝矿,毕竟互联网科技公司花样都玩烂了。
人生不是线性的,不是高考高分->名校->好工作->升职加薪->走上人生巅峰一定会发生。所以,你即使没有进入谷歌实习也不代表你这辈子就完蛋了。想开一些,眼界再放的远一些,人生没那么急。
[h1]3 找到你的“闪光点”[/h1]我们在面试中发现在校大学生的简历和经历完全都差不多,唯一的区别就是学校和绩点。换句话说,大三下半学期的时候,大家都修过了计算机的核心课程,可能也自学了一些机器学习的知识。更加出色的人可能有过竞赛经历,或者有不错的开源项目。
但这些似乎并不罕见。但因为候选人的高度同质化,导致最后面试变成了“编程八股文面试” + “机器学习算法背诵大赛”。
如果你有与众不同的经历,或许可以让你从残酷的编程竞赛和数学推导中解脱出来,拿到offer。那什么如何可以培养“闪光点呢”?请继续阅读。
[h1]4. 先进实验室,再去实习[/h1]在其他回答中我也提到过,如果有机会跟着教授做研究,优先尝试这条路其次才是去工业界实习。
比较合理的安排应该是大三试着跟着学长学姐或者教授进实验室,这种机会一般都是免费的不要计较。当你离开学校以后,你会发现再找科研机会就很难了,所以不管怎样请给自己一次尝试的机会。在这个过程中,教授和你是双向选择,很快你就知道自己是否适合做学术了。如果花了1-2个学期发现科研不适合自己,马上去找实习为就业做准备,不要可惜已经花掉的时间,这个研究经历会为你寻找实习机会加分。如果能够顺便混到一篇论文更是中彩。
优先实习可以让你进可攻退可守,进可以继续做学术深造,退也可以作为寻找实习的资本。这一波不亏!
[h1]5. 人脉!人脉!人脉![/h1]计算机出身的朋友(包括我自己)容易迷信技术,往往不擅长社交和扩展圈子。像机器学习这种专精岗小圈子,你海投100份简历不如学长学姐或者教授帮你内推一个岗位。
残酷的是,大部分简历都活不过人事那一关,你有再强的技术也走不到面试官面前。所以多认识一些高年级的学长学姐,比较轻松就可以拿到相关的岗位,至少是面试机会。我所知道的很多案例都是高年级学生要回校时会推荐自己的学弟学妹接替他自己的岗位。
那如何可以有效的拓展自己的圈子呢?进实验室是一条路,参加一些公司的校园活动,网上组队做开源项目,刷Kaggle,甚至是在知乎上答题写文章都是合理的途径。我自己也从知乎上在现实生活中认识了一些朋友,帮着推荐了一些岗位。
埋首故纸堆不是错,但你要相信条条大路通罗马。
[h1]6. 了解算法,但不死抠算法[/h1]为什么机器学习面试最后会沦为编程面试和算法推导?还是因为你与别人一样,除了问你这些问题以外实在没什么好问的。
如果你已经有了一些研究经历或者有学长学姐的内推,大部分时候面试的要求会适当放宽。有时候我觉得挺可笑也很无奈,因为同质化,机器学习面试越来越像程序员面试。
如果只有有限的时间,我推荐学习在什么情况下该用什么算法,而不是机器学习算法推导。不然很容易你只背下来了算法的推导过程,而不知道什么时候可以使用。无论是实习还是全职工作,你都没有机会去推导大堆公式。理解算法比推导更重要,但理解不代表你要能手推各种算法...
[h1]7. 再多说两句...[/h1]很多技术很强的同学,往往容易依赖自己的技术,而忽视了其他似乎无关紧要的事情。
给大家几个小贴士:
  • 认真准备简历,找同学、朋友、老师进行修改。酒香也怕巷子深,不要让简历死在人事手里。
  • 面试前好好打理一下自己。不要穿的邋里邋遢,答应我要洗脸洗澡洗头好好刷牙...
  • 面试中实事求是,尽量不要说自己精通XXX,不要夸大技术能力。公司对于实习岗位有预期,不会指望你是算法专家。
  • 面试后主动问面试官要他的联系方式(邮箱),24小时内发感谢邮件并试图扩展一个有效人脉。
读到这里的朋友肯定说,你肯定不懂技术,才想靠这些歪门邪道取巧。其实恰恰相反,看过我回答和文章的朋友应该了解我是走技术路线的。但越往前走,我就越发现“磨练技术”和“培养软实力”并不矛盾,一个好的工程师或者科学家也需要“讲故事”和“混圈子”。说了这么多,只是想在一贯的技术分享以外,提供一些容易被我们这些书呆子忽略的事情
祝大家找工作顺利  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:24326
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP