原标题:学习攻略 | 数据挖掘工程师学习路线图

最近秋招也已经慢慢接近尾声了,从去年 8 月底开始,先后参加了 datacastle ,阿里天池,牛客网各自举办的数据挖掘比赛(都是 top10 ),今年 4 月份又先后去百度,腾讯实习,到现在秋招快结束,也将近一年的时间,最终拿到手的比较有分量的 offer 主要是腾讯,百度,华为三家企业的 offer ,都是 sp,下面就将过去一年的一些经验做一下小总结,不一定是最合适的方法,但是当毫无头绪的时候,可以参考参考。(2016年) (一) 简介

1. 首先介绍企业对该岗位的一些能力需求,直接贴 bat 在该方向的相应岗位 jd :

( 1 )百度:机器学习 / 数据挖掘工程师

( 2 )阿里:算法工程师

( 3 )腾讯:基础研究

2. 个人感觉数据挖掘是一个比较大的概念,可以理解为:

数据挖掘 = 业务知识 +算法+工程能力

算法 =自然语言处理技术( NLP ) + 计算机视觉技术( CV ) + 机器学习 / 深度学习( ML/DL )

工程能力=C/Java/Python编程+分布式计算和数据处理

( 1 )其中业务知识具体指的是个性化推荐,计算广告,搜索,互联网金融等; NLP , CV 分别是处理文本,图像视频数据的领域技术,可以理解为是将非结构化数据提取转换成结构化数据;最后的ml/dl 技术则是属于模型学习理论;

( 2 )在选择岗位时,各个公司都没有一套标准的称呼,但是所做的事情无非 2 个大方向,一种是主要钻研某个领域的技术,比如自然语言处理工程师,计算机视觉工程师,机器学习工程师等;一种是将各种领域技术应用到业务场景中去解决业务需求,比如数据挖掘工程师,推荐系统工程师等;具体的称呼不重要,重要的是平时的工作内容;

PS :在互联网行业,数据挖掘相关技术应用比较成功的主要是推荐以及计算广告领域,而其中涉及到的数据主要也是文本,所以 NLP 技术相对来讲比较重要,至于 CV 技术主要还是在人工智能领域(无人车,人脸识别等)应用较多,本人了解有限,相关的描述会较少;

3. 根据之前的分析,也可以看到该岗位所需要的 3 种基本能力分别是业务经验,算法能力与工程能力; (二) 入门 1. 工程能力

( 1 )编程基础:需要掌握一大一小两门语言,大的指 C++ 或者 Java ,小的指 Python 或者 shell 脚本;需要掌握基本的数据库语言;

建议: MySQL + python + C++ ;语言只是一种工具,看看语法就好;

推荐书籍:《 C++ primer plus 》

( 2 )开发平台: Linux ;

建议:掌握常见的命令,掌握 Linux 下的源码编译原理;

推荐书籍:《 Linux 私房菜》

( 3 )数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);

建议:多敲代码,多上 OJ 平台刷题;

推荐书籍:《大话数据结构》《剑指 offer 》

( 4 )海量数据处理平台: Hadoop ( mr 计算模型, java 开发)或者 Spark ( rdd 计算模型, scala开发),重点推荐后者;

建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;

推荐书籍:《大数据 spark 企业级实战》 2. 算法能力

( 1 )数学基础:概率论,数理统计,线性代数,随机过程,最优化理论

建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;

( 2 )机器学习 / 深度学习:掌握 常见的机器学习模型(线性回归,逻辑回归, SVM ,感知机;决策树,随机森林, GBDT , XGBoost ;贝叶斯, KNN , K-means , EM 等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型( CNN ,RNN 等);

建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;

推荐书籍:《统计学习方法》《机器学习》《机器学习实战》《 UFLDL 》

( 3 )自然语言处理:掌握常见的方法( tf-idf , word2vec , LDA ); 3. 业务经验

( 1 )了解推荐以及计算广告相关知识;

推荐书籍:《推荐系统实践》《计算广告》

( 2 )通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有 Kaggle ,阿里天池, datacastle 等;

PS: 以上都是一些入门级别的介绍,在长期的学习中,应该多看顶会 paper ,多读开源代码,多学习优秀解决方案;

PS: 以上推荐的书籍对应的电子版可以联系本人 4. 书单推荐 (三) 求职 1. 简历

( 1 )格式:个人信息(姓名,联系方式,教育背景,求职意向,照片可有可无) + 竞赛经历 + 实习经历 + 项目经历 + 掌握技能 + 获奖情况;

PS: 最好写成一页;

( 2 )加分:博客, github ,竞赛 top10 ,顶会 paper ;

PS: 如果感兴趣的话可以联系我要简历模板

PS: 牛逼的简历可以让你有更多的面试机会,更关键的是让面试官在面试时潜意识给你打高分,当然前提是简历要真实,所以平时得为了牛逼的简历多做准备工作; 2. 海投

( 1 )国内设有该岗位且还不错的公司:

百度,腾讯,阿里,网易(互联网,游戏,有道),华为,今日头条,滴滴研究院,一点咨讯, 360 ,美团等;

( 2 )如果选择留在广东深圳发展,就业的机会比较少,比较好的主要就是百度深研,腾讯总部,华为深圳,京东好像在深圳也有个做数据挖掘的团队;(楼主倾向去深圳发展)

( 3 )个人建议在 3 月份的时候可以通过实习生的身份进入相关企业,争取实习生留用;一般企业给应届生的 hc 分配比例大概是实习生留用:校招提前批:校招正式 =4 : 3 : 3 ,实习生留用相对比较容易;

( 4 )一般投递简历时,尽量联系公司内部的师兄师姐或者熟人,帮忙将简历直接给到团队 leader 手中,这样做的好处是可以同时面试同个公司的多个团队,前提是简历在公司校招系统未被锁定的前提下,具体情况多咨询公司内部熟人,在求职过程中,信息来源非常重要,一定要注意这点,不然会踩很多坑;

( 5 )加入各种求职交流群,多认识些人,共享资源;

( 6 )投简历时候尽量内推,很多公司内推可以免笔试;

PS :笔试纯属看 rp ,总之就是多刷题,上牛客网多练练并针对性复习就好; 3. 面试

( 1 )一般该岗位的面试起码都有 3 轮, 2 轮技术面, 1 面 hr 面, hr 面主要看情商,这里不多说; 2轮技术面的区别就是越到后面面试官的级别越高,所以面试的风格也可能越偏向于技术视野等一些吹水的话题上;

( 2 )一般技术面有以下一些环节:自我介绍,项目介绍,算法提问(推公式),数据结构提问(写代码);

1 )自我介绍:一般尽量简短,主要讲清楚自己的研究方向,所取得成就以及优势所在即可;

2 )项目介绍:简历上的项目一定要熟悉,介绍时候分三部曲:项目背景,项目方案,项目成果;对项目中涉及到的一些技术点一定要很熟悉;

3 )算法提问:一般是问常见机器学习模型原理或者一些机器学习常见问题的解决方案(比如正负样本不平衡之类的),所以常见的机器学习模型一定要很清楚原理,必须会推公式,能知道工程实现的一些trick 的话,那你就离 sp 不远了;

4 )数据结构提问:常见的数据结构一定要掌握,基础的代码一定要会手写(快排,冒泡,堆排,归并排序,二分查找,二叉树的遍历,二叉树增删查改);剑指 offer 的题目要会;有精力的话可以刷下leetcode ;

( 3 )面试的时候多准备一些素材,在面试过程中主动引导面试官提问,比如面试官让你讲解 gbdt 原理时,这会你可以跟他说一般说起 gbdt ,我们都会跟 rf 以及 xgboost 一块讲,然后你就可以主动地向面试官输出你的知识;面试并不是死板地你问我答,而是一种沟通交流,所以尽可能地把面试转化成聊天式的对话,多输出自己一些有价值的观点而不是仅仅为了回答面试官的问题;

( 4 )在面试过程中,除了基础的东西要掌握,可以适当地向面试官展示你的一些其他的亮点,比如跟面试官谈论某些最近 paper 的进展以及一些技术方面的想法等,突出自己的与众不同;

( 5 )不同公司的面试风格都略有不同:

1 )百度:技术派,现场面,最大的风格就是写代码, 2 面技术加一面经理面,技术面必写代码;

2 )阿里:内推可以电话面,主要是聊项目跟问一些基础的数据结构方面的知识,看看剑指 offer 一般可以应付;

3 )腾讯:内推可以电话面,主要聊项目跟推公式;

4 )华为:主要聊项目,智力题以及聊价值观之类的东西;

5 )滴滴研究院:百度系,面试风格跟百度差不多;

( 6 )常见面试题(由于有的面试时间较久,主要靠记忆写下来)

1 )几种模型( svm , lr , gbdt , em )的原理以及公式推导;

2 ) rf , gbdt 的区别; gbdt , xgboost 的区别(烂大街的问题最好从底层原理去分析回答);

3 )决策树处理连续值的方法;

4 )特征选择的方法;

5 )过拟合的解决方法;

6 ) kmeans 的原理,优缺点以及改进;

7 )常见分类模型( svm ,决策树,贝叶斯等)的优缺点,适用场景以及如何选型;

8 ) svm 为啥要引入拉格朗日的优化方法;

9 )假设面试官什么都不懂,详细解释 CNN 的原理;

10 )海量的 item 算文本相似度的优化方法;

11 )梯度下降的优缺点;

12 ) em 与 kmeans 的关系;

13 ) L1 与 L2 的区别以及如何解决 L1 求导困难;

14 )如何用尽可能少的样本训练模型同时又保证模型的性能;

15 )解释 word2vec 的原理以及哈夫曼树的改进;

16 )对推荐算法的未来看法;

17 )在模型的训练迭代中,怎么评估效果;

18 )有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip ;如果只用 linux 指令又该怎么解决;

19 )一个绳子烧完需要 1 个小时,假设所有绳子的材质都不一样,也不均匀,怎么取出 1 小时加 15 分钟;

20 )假设有个 M*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法;

21 )实现 hmm 的状态转移代码;

22 )最短路径代码;

23 )拼车软件是如何定价的以及如何优化;

24 ) 100 张牌,每次只能抽一张,抽过的牌会丢掉,怎么选出最大的牌;

25 )怎么预测降雨量;

26 ) kmeans 代码;

27 ) mr 方案解决矩阵相乘的代码;

28 ) sql 语句的一些优化技巧;

29 )关于集群调度的一些经验 trick 掌握多少;

30 )设计一个系统可以实时统计任意 ip 在过去一个小时的访问量;

31 )设计 LRU 系统

PS: 以上的面试题仅供参考,主要是提供一个方向,大概了解这个岗位的面试考核方向,具体还得多刷刷面经。

End.

来自微信公众号 大数据人才家园

PPV课大数据-专注大数据培训,国内领先的大数据学习社区返回搜狐,查看更多

责任编辑:

学python数据挖掘自学路线图_学习攻略 | 数据挖掘工程师学习路线图相关推荐

  1. 零基础学python尹会生_完美‖全网最适合小白学习的400集Python视频教程+16本电子书...

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!最近陆陆续续有很多小伙伴问我,学Python到底应该做什么,从事哪种岗位.下面是我们工作圈里面一些同学的苦恼: 上面类似的问题 ...

  2. 中国式家长怎么学计算机,中国式家长前期怎么学习 中国式家长前期学习攻略...

    中国式家长是一款全新模拟养成手游,讲述的是中国传统式的教育,每个父母都希望自己子女能够成才,非常有趣的一款游戏哦,欢迎各位玩家前来下载体验哦!! 类型:休闲益智 大小:44.10 M 语言:简体中文 ...

  3. 物联网课程学习目标_学习攻略|软件工程统计方法amp;amp;物联网

    软件工程统计方法 && 物联网 任课老师:余松森,葛红 课程特点及困难 本课程的主要内容涉及统计机器学习方法, 以及如何采用Python进行应用实现. 同学们在学习中主要遇到以下问题: ...

  4. java 高效计算99乘法表_【九九乘法表】九九乘法表学习攻略 九九乘法表快速记忆小诀窍...

    [九九乘法表]九九乘法表学习攻略九九乘法表快速记忆小诀窍 很多孩子的九九乘法表还是背的不熟练,下面是精心为大家整理的九九乘法表学习攻略,欢迎阅读.更多九九乘法表学习攻略相关内容请关注实用资料栏目! & ...

  5. Carson带你学Android:这是一份全面详细的属性动画学习攻略!

    前言 属性动画的使用 是 Android 开发中常用的知识 本文将献上一份全面 & 详细的属性动画学习指南,将详细介绍属性动画的所有内容,包括:意义.作用.应用场景.功原理 & 具体使 ...

  6. Carson带你学Android:这是一份全面详细的WebView学习攻略

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView组件实现 今天, ...

  7. 变换例题_小学语文学习攻略9:句式变换知识点概述+例题讲练

    很多家长都会遇到这样的情况:孩子的语文考试卷发下来,作文上老师的评语或者做的记号上总会有几个是句意不通.在平常的交流中也是,支吾了半天也不能完整.通顺的表达自己的意思.这都是孩子在造句方面有障碍!孩子 ...

  8. 数学菜鸟的AI学习攻略 | 数学符号轻松入门

    你是否跟我一样,自幼恨透数学. 现在,我终于发现了我对数学绝缘的最主要原因:我的老师从来不去回答最重要的问题:我为什么要学数学?学数学有什么用? 他们只是在黑板上写下一大堆方程,并让我记下来. 现在, ...

  9. 数学菜鸟的AI学习攻略——数学符号轻松入门

    [ 导读 ] 自学AI的过程中,我们非常需要理解这些数学符号.它可以让你用一种非常简洁的方式来表达一个复杂的想法. 你是否跟我一样,自幼恨透数学. 现在,我终于发现了我对数学绝缘的最主要原因:我的老师 ...

最新文章

  1. Java自学手记——servlet3.0新特性
  2. 怎样用jQuery拿到select中被选中的option的值
  3. HDU 1754 I Hate It 线段树
  4. mysql5.7和8.0的区别_解答阿迪达斯Adidas ultra boost4.0与正品区别!如何选择?
  5. 更好的默认NullPointerException消息是否会传入Java?
  6. Java:逐步读取/流式传输CSV文件
  7. 《linux内核设计与实现》读书笔记第一、二章
  8. 大事件后台管理系统开发实战(中)
  9. 水箱建模最小二乘法_Comsol Multiphysics for Mac(建模仿真软件)
  10. 在虚拟机环境(CentOS7系统)下将kubernetes中部署服务成功,但在虚拟机外部无法访问到服务...
  11. linux下的web安全机制,linux http服务器web网页的不同安全机制
  12. ARM开发经典学习网站推荐 (转)
  13. Visio画UML用例图
  14. (一)前端html+css学习笔记
  15. arduino/Mixly TEMT6000环境光传感器
  16. web程序中获取当前地理位置
  17. mmdetection训练、测试
  18. Flutter实践——AndroidStudio环境初体验
  19. python控制泰克示波器捕捉触发波形
  20. 广州大学纺织服装学院计算机应用,广州大学纺织服装学院代码是多少

热门文章

  1. 如何区分PCB通孔、盲孔、埋孔
  2. 教你将GIF动图转换为JPG图片
  3. css文本换行以及出现省略号简单处理
  4. 转行软件测试有学历要求吗?低于大专是真的没出路吗?
  5. ssdb java_java使用内存数据库ssdb的步骤
  6. 微信公众号JS-SDK开发
  7. 小米路由器3-R3 刷固件
  8. 量化交易巨变文艺复兴大幅削减势踪交易策略
  9. TextView中ClickableSpan与文本自由复制(TextIsSelectable)冲突问题
  10. snprintf()函数使用方法