找回密码
 立即注册
搜索

入门大数据(数据发掘方面)必看此文




1. 前言

答主是2017应届毕业生,已签美团的数据发掘岗,答主是2017应届毕业生,已签美团的数据发掘岗,从一末尾的完全不自信,到被折磨的要死但还是坚强的活上去,到最后的各种安然,长大了许多。

作者本硕均是机械专业,在校学习成绩中等偏上,本来想从事嵌入式方向的工作,无法学了两个月被导师叫停,说没有项目学完就忘,遂作罢。研二上在没有目的的状况下系统的学习了C++和数据结构,入门了Python。研二下末尾学习机器学习相关知识,从四月下旬末尾出差给导师做无聊的项目,白天出去搬砖,早晨回来学习,寒假没回家继续学习(寒假其实就两周),直到八月底末尾找工作。

整个自学的过程一年左右,次要内容有计算机专业的基础知识,基础的机器学习知识,由于工夫的缘由,没有学hadoop和spark,这点的确是短板,各位假如有工夫,最好能看看。

2. 基础知识自学

面试的时分普通先问基础知识:编程言语,数据结构和算法,操作系统和网络编程(数据库相对而言问的比较少),前两部分非常重要!假如前两部分非常熟习,后两部分稍微会一点都能过面试,但是前两部分只会一点或者不会,九成九会跪在一面。答主就是前两部分比较熟习,后两部分背了背常见的面试题,一切的面试都走到了终面。

2.1 编程言语

编程言语常问的是C/C++和Java,答主学的是C++。我首先把C言语圣经《C程序设计言语》详细的看了一遍,然后系统的看了《C++ Primer》(这本书曾经出到第五版了),假如其他同窗工夫充裕的话,可以再把《Effective C++》看一下。

此处阐明一下,看书不是简单地“看”,而是不看书能手敲出书上的例子,能独自做课后题。在这个过程中,常常会发现本人写的代码和书上代码,参考答案的代码有一些不一样,重点分析不一样的部分,会有很大的播种。我常常用笔抄一些关键代码,然后在纸上画出一个章节的简单思想导图,默记一会,把纸扔掉,最后把没有记住的知识点总结在为知笔记中,每过一段工夫复习一下。

假如学的是C++,学完当前,要能回答下面的成绩:内存怎样管理,const有什么用,援用和指针的区别,虚函数和纯虚函数,虚函数表,承继,重载和多态,模板函数,模板类,容器等相关知识。

2.2 数据结构和算法

网上大多人引荐的是《算法导论》或者《数据结构与算法分析(C言语描画)》,《算法导论》的确是一本很牛逼的书,但是真的太难啃了,不合适“疾速学习”,这里我引荐《算法(第4版)》,这本书运用Java讲解常见的算法,但是完全木有关系,Java零基础的我看起来没有任何压力,由于该书几乎没有用到Java的任何特殊语法。

仅仅看《算法(第4版)》是不够的,还需求《剑指offer》和《程序员代码面试指南》,《剑指offer》一定要多看几遍,外面的标题真的被考烂了,被问到原题的概率很大。程序员代码面试指南》属于提升书籍,外面按照专题把标题归类了,激烈建议把动态规划专题看一遍。

假如只会算法而不能把代码写出来,也不行,锻炼这个才能只能靠OJ了。这里引荐去牛客网刷题,可以先刷《剑指offer》或者学习《直通BAT面试算法精讲课》,然后再刷leetcode专题,刷leetcode的时分可以按照网上引荐的顺序刷,非常舒适(第一次做的时分,可以先跳过hard,最后再做)。

数据结构和算法常考的是堆,栈,排序,链表,二叉树和动态规划等,相关的成绩多练练,面试的时分才能写得比较快。有句话这么说,考试并不是让考生在考场上把不会的题做出来,而是检查考生会什么,不会什么,仅此而已。面试的时分,假如反应快一点,能给面试官留下很好的印象。

2.3 操作系统和网络编程

这里答主没怎样学,工夫不够,看了几章《深化了解计算机系统》就看不下去,罪过。。。

后来就去搜索常见的面试题:进程和线程的区别有哪些?进程/线程间如何通讯?如何防止线程死锁?TCP三次握手四次挥手是个什么步骤?我把这些成绩的答案背上去,等面试官问我的时分我再背出来,然后坦率本人没有学过操作系统和网络编程,这些都是我在网上找答案背的,再深一点我也不会了。普通状况下,面试官的表情会比较诧异,不过也就不再讨论这个话题了。

这部分怎样学我不清楚,各位还是咨询计算机专业的同窗或者看看别的答案吧。

2.4 个人学习历程

花了半年工夫(研二上)点了编程言语,数据结构和算法的技能点,顺道点了一些别的小技能点。这段工夫次要看了《C++ Primer》,《算法(第4版)》,《Learn Python The Hard Way》,《鸟哥的Linux私房菜》,按照廖雪峰的教程把git学了一下,末尾用markdown写博客。

3. 机器学习自学

往年的机器学习很火,稍微大一点的公司都招这个方面的人才,我的感觉大多人都是自学的,貌似本科开这个专业的学校很少?

个人了解的机器学习次要有三个方向(按照岗位要求分):数据发掘,自然言语处理和深度学习。数据发掘次要是搜索排序,反作弊,个性化引荐,信誉评价等;自然言语处理次要是分词,词性分析等;深度学习次要是语音和图像辨认。

我找的是数据发掘方向,所以就说说这个方向的个人学习阅历吧。

次要预备两个方面,一方面是掌握常见机器学习算法原理,另一方面是运用这些算法并处理成绩。

3.1 常见机器学习算法

和大部分人一样,我是看吴恩达教师的《机器学习》视频入门的,看了两遍,说假话第一遍本人以为懂了,看第二遍的时分才发现第一遍的懂了是“假懂”,第一遍懂得就是皮毛。吴恩达的视频有两个版本,一个是网易公开课在教室讲课录制的版本,另一个是在本人办公室录制的版本,我看的是在办公室录制的版本,看了网易公开课版本的目录之后,个人感觉网易公开课的要难一点。

看完视频当前,需求本人动手实际加深了解,这里我次要看《机器学习实战》和《统计学习方法》,前者全是实际没有实际,后者全是实际没有实际,所以结合起来学习非常棒。我次要按照《机器学习实战》的目录学,触及到什么机器学习模型,就去《统计学习方法》中看该模型的数学推导及证明,然后把《机器学习实战》上的代码敲一遍,验证一遍。

后来市面上出了一本很好的机器学习教材:周志华教师的《机器学习》。我如今的建议是次要按照《机器学习》的结构走,《机器学习实战》和《统计学习方法》作为辅助,《机器学习实战》有对应模型的代码就敲一遍,没有就算了;《统计学习方法》的证明普通比《机器学习》更深一点,有对应的证明就看,没有就算了。

下面三本书吃透,基础就差不多了,但是面试的时分会发现,除了DT,LR,SVM问得比较多之外,随机森林和GBDT问的也非常多,以及参数如何调整,模型如何评价等等。这些东西只能求助于搜索引擎和论文了,暂时没有别的系统的学习方法。

补充一下,引荐算法问的也比较多,把项亮的《引荐系统实际》好好看就行了。

学完这个部分应该会的成绩,我放在了最后,以免影响排版。

3.2 运用这些算法并处理成绩

在实践的工作中,硕士生其实大多是用算法而不是发明算法,所以还得学会怎样用算法处理实践成绩。这里建议参加Kaggle的比赛,都是比较实践的成绩,而且还有排名,面试的时分也有一定的压服力。

这里次要学一些Python的包就行了,如numpy,pandas,matplotlib和sklearn等,引荐一本五星级好书:《应用Python停止数据分析》。

这一部分关于特征处理的成绩问的比较多,比如怎样选相关特征,如何清洗数据,以及选取什么样的机器学习模型。

3.3 个人学习历程

机器学习部分答主也花了半年的工夫学习(研二下),看了《机器学习实战》和《统计学习方法》,《机器学习》只看了几章,《应用Python停止数据分析》看了一大半,《引荐系统实际》看了一半。机器学习相关的东西得常常复习,尤其是推导部分,SVM的推导我每隔几周复习一次,每次都有新的播种。

本人写了一个豆瓣爬虫,爬了豆瓣11W多网页共4W本书,应用PyQt写了一个界面,运用基于物品的协同过滤算法引荐书籍。

这段工夫还走了点弯路,报了个课程,写了一个图片分享网站,学了一些前端和后台的东西,如HTML,CSS,JavaScript和Flask等等,本来是想学完这个,把书籍引荐的那个项目从单机版做成网页版,服务于别人,结果根本没工夫,做不到那一步,面试也从来没问过这些东西,囧……

4. 其它

做数据发掘不可避免的要接触大数据,目前常用的大数据框架就两个,Hadoop和Spark,假如会一个就很有优势,在美团实习的同窗说这两个都用……所以建议看完C当前,不学C++,学Java,由于Hadoop的原生开发言语是Java,材料多;相应的Spark的原生开发言语是Scala,不过也有Python的API。

详细学Hadoop还是Spark,学Java还是Scala,大家还是在拉勾网下面看本人心仪岗位的要求。反正答主目前是在恶补Java和Hadoop,希望在入职前补上短板。

5. 校招

每年3、4月份各大厂会招很多实习生,尽量出去实习,面试的时分有实习阅历很有优势,哪怕公司比较小,只需你实践上在仔细的做项目就可以了,有人带怎样都比自学好。答主本来计划出去实习,但是导师根本不放,心好累。

面试次要有两点要说,一是一定要先去面一下不想去的公司,熟习一下面试流程和套路,二是一定要多看面经。答主花了两天看了近200篇机器学习岗的面经,把成绩和答案都整理了一下,播种很大,后面面试碰到了好多原题。

对于答主来说,最难的不是面试,而是笔试,笔试范围广,难度大,往年要是不能全AC,进面试很难。怎样办?想办法内推吧,避免参加笔试,内推从7月份就末尾了,多找学长问问,没有学长,就去论坛上发帖求内推,要不然9月份笔一次挂一次,会严重怀疑人生。

6. 引荐书单

质量保证:

C/C++:《C程序设计言语》,《C++ Primer》

数据结构和算法:《算法(第4版)》,《剑指offer》,《程序员代码面试指南》 机器学习:《机器学习》(周志华),《机器学习实战》,《统计学习方法》,《引荐系统实际》Python:《Python核心编程(第二版)》,《应用Python停止数据分析》

其中《Python核心编程(第二版)》有点厚,像字典,不合适遍历,网上都引荐《Python基础教程》,应该也不错。

没看过的,但是评价也不错的:《Effective C++》,《STL源码分析》;《编程之美》,《编程珠玑》;《数据发掘导论》,《集体智慧编程》,《形式辨认和机器学习》,《凸优化》;《深化了解计算机系统》,《操作系统》,《计算机程序的构造和解释》,《代码大全》,《Head First 设计形式》,《代码整洁之道》,《程序员的自我涵养》。

这些书足够看3-5年了,233~

7. 小结

一定要耐得住寂寞,守得住孤单,没有人和你讨论成绩,就去网上求助

一定要动手实际并且随时做笔记,要不然忘得很快

OJ尽早末尾刷,最晚7月末尾,9月前至少做完200~300道题

能实习就实习,不能实习一定要参加Kaggle比赛

常见的机器学习模型都能推导,会调参,能说优缺陷,能和别的模型比较

彩蛋——常见机器学习成绩

什么是bias和variancek

折交叉验证中k取值多少有什么关系

分类模型和回归模型的区别是什么

为什么会产生过拟合

如何处理过拟合

写出信息增益,信息增益比和基尼系数的公式

写出LR的目的函数和损失函数

LR和SVM的异同

推导SVM

SVM在哪个地方引入核函数

常用的核函数有哪些,说说它们的特点及调参方式

随机森林的学习过程

随机森林的优缺陷

GBDT和随机森林的区别

如何判别决策树过拟合

线性分类器与非线性分类器的区别及优劣

特征比数据量还大时,选择什么样的分类器

L1和L2正则的区别,如何选择L1和L2正则

多分类怎样处理

如何停止特征选择

吐槽一个引荐算法,并提出修正意见

假如你想要进阶大数据开发,且目前已掌握Hadoop基本概念、scala言语基础语法和Spark基础知识,这份学习材料将特别合适您!本材料收费支付名额仅有100名哦(超额之后需求付费观看)!





「大数据零基础入门」





「大数据架构系统组件」





「大数据全套系统工具安装包」
Java必备工具





大数据必备工具





「大数据行业必备知资讯」





「大数据精品实战案例」





「大数据失业指点方案」




最后说一下的,也就是以上教程的获取方式!

支付方法:

还是那个万年不变的老规矩

1.回复文章,没字数限制,一个字都行!

2.成为小编成为的粉丝!

3.私信小编:“大数据开发教程”即可!
谢谢大家,祝大家学习愉快!(拿到教程后一定要好好学习,多练习哦!)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评13

资深潜水蛋 2020-12-5 08:34:40 显示全部楼层
写得太好了
回复

使用道具 举报

好文章
回复

使用道具 举报

天佑华庭 2020-12-5 08:48:43 显示全部楼层
写得很好
回复

使用道具 举报

经理职业人 2020-12-5 08:49:46 显示全部楼层
很好
回复

使用道具 举报

刘慧玲 2020-12-5 08:52:20 显示全部楼层
凶猛
回复

使用道具 举报

聆听风雅 2020-12-5 09:03:49 显示全部楼层
想要
回复

使用道具 举报

annana66120 2020-12-5 09:15:05 显示全部楼层
分享了
回复

使用道具 举报

分享了
回复

使用道具 举报

偶尔偶尔吧 2020-12-5 09:26:16 显示全部楼层
分享了
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies