零基础自学如何成为合格的数据挖掘工程师?

理由
举报 取消

1.数据挖掘工程师; 2.从哪里搜集学习资源,比如网站,书单,视频,完成从零基础到入门,再到初、中、高级的课程; 3.学习理论肯定要用于实践,从哪里能找到练习用的项目或者课题;。ps.学习数据挖掘是因为自己对数据感兴趣,我自己的情况,毕业于二本的数学专业,毕业后从事的是保险行业。

2018年1月3日 10 条回复 995 次浏览

发起人:周诺 管理新人

不免费写文案的文案。微信:NowayZhou.

回复 ( 10 )

  1. SS Wang
    理由
    举报 取消

    强烈推荐两门公开课,难度很低,讲得非常好。学完了应该可以直接上手干活。

    1. BerkeleyX: CS190.1x Scalable Machine Learning CS190.1x Course Info

    这门课是伯克利开的,教机器学习基础、Python Spark实现。我很懂机器学习,但不懂spark和python,花了1周多时间看完视频、做完作业。如果没机器学习基础的话几周应该够了。学完了可以用spark处理大数据,做分类、推荐系统。

    • 在墙内搭建虚拟机环境有困难,装不好可以参照帖子 不用翻墙和等几小时,搞定VM安装
    • 要是怎么装都不成功,原因很可能是没有开Intel Virtualization,需要进BIOS设置一下。我们好几个人都遇到这问题了。
    • 这个里面的视频很卡,但是可以下载。希望有好心人下载传网盘或者优酷~

    更新:新的课已经开始了,这次的不需要在本地装虚拟机,直接用databricks的服务器就好,方便很多。而且这次是半年内上一系列的Spark课程,有兴趣可以全学了。

    链接:CS105x Course Info

    2. 斯坦福公开课:

    Convolutional Neural Networks for Visual
    Recognition CS231n Convolutional Neural Networks for Visual Recognition

    优酷视频: 优酷网-中国第一视频网,提供视频播放,视频发布,视频搜索

    这是我见过的讲神经网络最清楚最简单的课程,lecturer口才极好,英语说的清晰,配套的讲义说得更清楚明白。如果连作业一起做了,应该有能力用deep learning的工具做一些图像和视觉的工作。

    • 课程讲义里有使用Python、IPython做数值计算的快速入门CS231n Convolutional Neural Networks for Visual Recognition
    • 作业需要用Python 2,不能用Python 3,除非你乐意像我一样花时间把print全加括号,把cPickle全改成Pickle,还要设置Pickle的编码:Pickle incompatability of numpy arrays between Python 2 and 3

    初学者想要深入学习的话,可以顺着两门课的内容、扩展材料继续挖下去。

    多说一句,不要报任何班。机器学习牛人要么忙着科研,要么是赚钱太容易,所以几乎没人开培训班来赚钱。有名的培训班,比如J***这样的都是不入流的,以其昏昏使人昭昭。

  2. 金胤臻
    理由
    举报 取消

    数据挖掘工程师应该是 Data Mining Engineer,我觉得算是 Data Scientist 的一种(可能Data mining engineer更偏重于计算机架构和数据处理,但是我觉得互通),这个职位在美国是近期比较热门的一个职位。因为越来越多的公司都意识到数据重要性。早期的公司,可能因为有了Data Scientist,更容易进行冷启动,成熟的公司,可能因为有了Data Scientist可以在各个方面:市场,运营提高效率。特别是Uber 和 Airbnb 火了之后,招聘市场对Data Scientist 越来越热捧。如果是一个 cs 的 undergraduate 或者是 math major 的 undergraduate,想成为一个好的 Data Scientist 并不需要太多时间就可以成为一个非常好的 Data Scientist。那么在这里,我们讨论,如果要零基础(至少高中要毕业吧)如何成为一个比较合格的 Data Scientist 从业者,我想至少要在以下几个方面进行更好的磨练。

    数学

    Data Scientist 的数学基础要好,特别是 statistics,probability,和重点中的重点 Linear Algebra。当这几门学好了之后,Data Scientist 最核心的 Machine Learning 和 Data Mining 其实就是往深的延展和变化。

    首先要说的是 Linear Algebra。

    这个绝对是重点中的重点。必须要学好。在实际学习过程中你会发现,Machine Learning 和 Data Mining 用到的很多 Algorithm 是需要 matrix 推导的。因为很多算法的核心就是找最优解,而推演算出最优解的过程是需要非常夯实的 Linear Algebra 的基础的。推荐以下学习的途径:

    1. s这两个参数是干嘛的,如果可以研究还可以研究一下它的物理含义,因为物理意义在现实生活中非常有用。当你在分析数据的时候,看到某些数据呈现的时候会本能的反应出哪种distribution可能会很好的暂时性的描述这些数据的规律。换句话说:如何将数据结构化,归纳化,学好 stats 和 probability 尤其重要。
      • 中级:

      有了上面的基础,可以学习比较难的。我觉得更近一步可以学一些 applied math,因为基础打好了之后,应用比较重要。

      1. Elements of Statistical Learning: data mining, inference, and prediction.
        2nd Edition. 这本stats的书比较难,但是很好

      我在这个阶段经常做的事情是深究,就是当你遇到某个问题的时候就把这个问题详细的研究一遍。比如我记得原来学 Baye’s theorem 的时候,把几个公式就记一下。后来要用到 bayesian regression 了,我再系统地学了一遍,发现 Baye’s theorem 理解的好,对于后面学习 bayesian regression是多么的重要。很长一段时间我不能理解 prior 的意义在哪里。回顾所有的基础,你会发现,你的理解会更上一层。

      • 高级:

      更高一层的学习就应该深度学习 Machine Learning 和 Data Mining 的东西了。我一开始学的不是 Machine Learning,是Operation Research,通俗地讲就是优化(optimization) 。Machine Learning 很多的时候是 predicting。但是核心的思想我觉得是一样的。学的越深需要学得肯定就越多,就直接推荐一些书和材料吧:

      1. Manning | Machine Learning in Action Machine Learning In Action 这本书比较基础,还有实际的coding演习,我觉得很不错,让人有一个基础的概念。
      2. awesome-machine-learning/books.md at master · josephmisiti/awesome-machine-learning · GitHub github 上整理的machine learning 的书籍
      3. Machine Learning 绝对经典中的经典,我非常喜欢通俗易懂
      4. Introduction to Data Mining Introduction to data mining 我觉得是 data mining 的bible 我买了印影版,当字典在用。
      5. OptimalLearning Optimal Learning 有点难读,导师的书就推荐一下。
      6. Markov chain 的讲义

      还有很多。。。。我这边有很多资料,如果有需要可以私信我,当时买了很多电子书。抱着学习的态度我们一起交流。

      计算机

      写程序对 Data Scientist 来说同样重要。如果说数学是战术,那么编程就是武器。ETL,data processing,data analyze 都需要很好的编程功底。如果说你用matlab和sas就能做好 data scientist 我是不相信的。

      • 基础:

      最基础的话先学一些 C++ 吧。或者Java,至少很多学校的 cs 101 要学一下。我这边提供一些免费的在线课程吧:

      1. CS101 Introduction to Computing Principles Stanford CS
      2. introcs.cs.princeton.edu/ Princeton CS
      • 进阶:

      我的话一般平时都用 python,用R的时候也不是很多,因为更喜欢python。学好python,不仅可以做很多算法的事情,而且big data system 都会开放 python 的 api(虽然java比较多)。python 并不是很难,看源码是一个比较好的方式。各种math toolkit的源码:numpy,scipy的源码看一看,我觉得对于成为一个好的data scietist 很有帮助。一开始如何学呢,我学的是google的python course,非常非常好:

      1. 一天之后应该就可以入门了。
      2. R和python基本上都各有利弊,分析数据的时候可能用R比较多,介绍一下R的一个比较好的工具,R studio
      3. python in action
      • 高阶:
      1. Hadoop 的一套东西都需要知道吧。什么是 Big Table,什么是 Map reduce,什么是 NoSql。其实说白了就是要掌握big data 的工具,不用hadoop也要了解其他的工具。
      2. 现在用spark 和 storm的越来越多了,我很喜欢 spark,但是坑有点多,这边特别希望能和有过实战的人交流。最近我也想把spark部署到自己公司的机器上,然后优化一下开源出来和大家一起分享。

      其他

      除了这些我觉得作为一个 Data Scientist,除非你就做一个最最基础的大数据架构师(虽然很多人觉得这和 Data Scientist 是完全两个不一样的工作,但是当年我在 start up的时候要同时做这两个工作)还必须要懂得如何和市场结合起来,解决实际的问题。Data Scientist 更多的并不是 science 而是engineering,需要着手解决实际的问题。让更多的事情通过数据来变得更有效率以及更加直观。多思考,多想象,对数据有敬畏之心,就可以很好的成为一位 Data Scientist

  3. 桂能
    理由
    举报 取消

    这个有点难呀 要入门 入了门的人怎么看都简单 在门外很痛苦

  4. 张馨宇
    理由
    举报 取消

    kaggle,这一个关键词对你来说就够用了

  5. Data Analyst
    理由
    举报 取消

    先掌握基本技能,比如方法,工具的使用,会建模分析。再找一个企业进去工作,只有真正在工作中提升才是最大的。

  6. 大圣圈
    理由
    举报 取消

    Big Data是近来的一个技术热点,但从名字就能判断出来它并不是什么新词。毕竟,大匙一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据之父的Bill Inmon早在20世纪90年代就经常将Big Data挂在嘴边了。要处理如此庞大的数据,它的基本流程如上图。

    数据抽取与集成

    ● 大数据的一个重要特点就是多样性,这就意味着数据来源极其广泛,数据类型极为繁杂。这种复杂的数据环境给大数据的处理带来极大的挑战。

    ● 要想处理大数据,首先必须对所需数据源的数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合之后采用统一定义的结构来存储这些数据。

    ● 在数据集成和提取时需要对数据进行清洗,保证数据质量及可信性。

    ● 现有的数据抽取与集成方式可以大致分为以下四种类型:数据整合、数据联邦、数据传播和混合方法等。

    数据分析

    ● 传统的分析技术如数据挖掘、机器学习、统计分析等在大数据时代需要做出调整,因为这些技术在大数据时代面临着一些新的挑战:

    1、数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多

    2、大数据时代的算法需要进行调整(邦弗朗尼原理)

    3、数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多

    数据解释

    ● 数据分析是大数据处理的核心,但是用户往往更关心结果的展示。如果分析的结果正确但是没有采用适当的解释方法,则所得到的结果很可能让用户难以理解,极端情况下甚至会误导用户。

    ● 大数据时代的数据分析结果往往也是海量的,同时结果之间的关联关系极其复杂,采用传统的解释方法基本不可行

    ● 可以考虑从下面两个方面提升数据解释能力:

    — 引入可视化技术

    — 让用户能够在一定程度上了解和参与具体的分析过程

    然而,Big Data作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无限传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互……要处理的数据量实在是太长、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。在这种情况下,技术人员纷纷研发和采用了一批新技术。

    01

    存储

    存储分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等

    02

    计算

    Map Reduce、流计算、图计算……

    03

    应用

    HIVE,pig,mahout,Sqoop以及ETL工具,统计与报告工具等

    下面以Google为例,我们来看看它的技术演进

    Google 于2006 年首先提出了云计算的概念,并研发了一系列云计算技术和工具。难能可贵的是Google 并未将这些技术完全封闭,而是以论文的形式逐步公开。

    正是这些公开的论文,使得以GFS、MapReduce、Bigtable为代表的一系列大数据处理技术被广泛了解并得到应用,同时还催生出以Hadoop为代表的一系列云计算开源工具。这些工具有些是完整的处理平台,有些则是专门针对特定的大数据处理应用。

    现金一些主流的处理平台和工具

    就实践方面来说,Hadoop 已经发展成为目前最为流行的大数据处理平台

    Hadoop是一个分布式系统基础架构,由Apache基金会开发。

    Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,借助于Hadoop,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。

    Hadoop采用了分布式存储方式,提高了读写速度,并扩大了存储容量。采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时,Hadoop还采用存储冗余数据的方式保证了数据的安全性。

    Hadoop作用

    Hadoop中HDFS的高容错特性,以及它是基于Java 语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。Hadoop中HDFS的数据管理能力,MapReduce处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩,并在众多行业和科研领域中被广泛采用。

    Hadoop功能

    Hadoop优点

    ●可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。

    ●经济:框架可以运行在任何普通的PC上。

    ●可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数)

    ●高效:分布式文件系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。

    Hadoop生态系统图

    谢谢阅读!

  7. tookerski
    理由
    举报 取消

    0. 英语好是必须的。

    1. 现在DM不如前两年那么火了,有点回归理性,转行要慎重。

    2. 建议通过一个项目来入手,串起应知应会的知识点。不妨搭个基于nutch-Hadoop的数据挖掘系统,爬一些行业相关的网站,再用Python实现几个常用的聚类分类算法,就算入门了。

  8. hlhdidi
    理由
    举报 取消

    从现在开始准备考研。

  9. 骆阿羽
    理由
    举报 取消

    找一些中文的基础教程的话可以看一下数析学院(),都是国人翻译好的免费资源。

  10. 张宏伦
    理由
    举报 取消

    推荐我的一门课程,全栈数据工程师养成攻略 – 网易云课堂 ,感兴趣的话可以关注

    后续还会结合更多实例,例如我做过的一些项目和参加过的一些比赛,出一些其他视频教程

我来回答

Captcha 点击图片更换验证码