数据挖掘工程师应该是 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 的基础的。推荐以下学习的途径:
和 这两个参数是干嘛的,如果可以研究还可以研究一下它的物理含义,因为物理意义在现实生活中非常有用。当你在分析数据的时候,看到某些数据呈现的时候会本能的反应出哪种distribution可能会很好的暂时性的描述这些数据的规律。换句话说:如何将数据结构化,归纳化,学好 stats 和 probability 尤其重要。
除了这些我觉得作为一个 Data Scientist,除非你就做一个最最基础的大数据架构师(虽然很多人觉得这和 Data Scientist 是完全两个不一样的工作,但是当年我在 start up的时候要同时做这两个工作)还必须要懂得如何和市场结合起来,解决实际的问题。Data Scientist 更多的并不是 science 而是engineering,需要着手解决实际的问题。让更多的事情通过数据来变得更有效率以及更加直观。多思考,多想象,对数据有敬畏之心,就可以很好的成为一位 Data Scientist
Big Data是近来的一个技术热点,但从名字就能判断出来它并不是什么新词。毕竟,大匙一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据之父的Bill Inmon早在20世纪90年代就经常将Big Data挂在嘴边了。要处理如此庞大的数据,它的基本流程如上图。
回复 ( 10 )
强烈推荐两门公开课,难度很低,讲得非常好。学完了应该可以直接上手干活。
1. BerkeleyX: CS190.1x Scalable Machine Learning CS190.1x Course Info
这门课是伯克利开的,教机器学习基础、Python Spark实现。我很懂机器学习,但不懂spark和python,花了1周多时间看完视频、做完作业。如果没机器学习基础的话几周应该够了。学完了可以用spark处理大数据,做分类、推荐系统。
更新:新的课已经开始了,这次的不需要在本地装虚拟机,直接用databricks的服务器就好,方便很多。而且这次是半年内上一系列的Spark课程,有兴趣可以全学了。
链接:CS105x Course Info
2. 斯坦福公开课:
Convolutional Neural Networks for Visual
Recognition CS231n Convolutional Neural Networks for Visual Recognition
优酷视频: 优酷网-中国第一视频网,提供视频播放,视频发布,视频搜索
这是我见过的讲神经网络最清楚最简单的课程,lecturer口才极好,英语说的清晰,配套的讲义说得更清楚明白。如果连作业一起做了,应该有能力用deep learning的工具做一些图像和视觉的工作。
初学者想要深入学习的话,可以顺着两门课的内容、扩展材料继续挖下去。
多说一句,不要报任何班。机器学习牛人要么忙着科研,要么是赚钱太容易,所以几乎没人开培训班来赚钱。有名的培训班,比如J***这样的都是不入流的,以其昏昏使人昭昭。
数据挖掘工程师应该是 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 的基础的。推荐以下学习的途径:
有了上面的基础,可以学习比较难的。我觉得更近一步可以学一些 applied math,因为基础打好了之后,应用比较重要。
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。但是核心的思想我觉得是一样的。学的越深需要学得肯定就越多,就直接推荐一些书和材料吧:
还有很多。。。。我这边有很多资料,如果有需要可以私信我,当时买了很多电子书。抱着学习的态度我们一起交流。
计算机
写程序对 Data Scientist 来说同样重要。如果说数学是战术,那么编程就是武器。ETL,data processing,data analyze 都需要很好的编程功底。如果说你用matlab和sas就能做好 data scientist 我是不相信的。
最基础的话先学一些 C++ 吧。或者Java,至少很多学校的 cs 101 要学一下。我这边提供一些免费的在线课程吧:
我的话一般平时都用 python,用R的时候也不是很多,因为更喜欢python。学好python,不仅可以做很多算法的事情,而且big data system 都会开放 python 的 api(虽然java比较多)。python 并不是很难,看源码是一个比较好的方式。各种math toolkit的源码:numpy,scipy的源码看一看,我觉得对于成为一个好的data scietist 很有帮助。一开始如何学呢,我学的是google的python course,非常非常好:
其他
除了这些我觉得作为一个 Data Scientist,除非你就做一个最最基础的大数据架构师(虽然很多人觉得这和 Data Scientist 是完全两个不一样的工作,但是当年我在 start up的时候要同时做这两个工作)还必须要懂得如何和市场结合起来,解决实际的问题。Data Scientist 更多的并不是 science 而是engineering,需要着手解决实际的问题。让更多的事情通过数据来变得更有效率以及更加直观。多思考,多想象,对数据有敬畏之心,就可以很好的成为一位 Data Scientist
这个有点难呀 要入门 入了门的人怎么看都简单 在门外很痛苦
kaggle,这一个关键词对你来说就够用了
先掌握基本技能,比如方法,工具的使用,会建模分析。再找一个企业进去工作,只有真正在工作中提升才是最大的。
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生态系统图
谢谢阅读!
0. 英语好是必须的。
1. 现在DM不如前两年那么火了,有点回归理性,转行要慎重。
2. 建议通过一个项目来入手,串起应知应会的知识点。不妨搭个基于nutch-Hadoop的数据挖掘系统,爬一些行业相关的网站,再用Python实现几个常用的聚类分类算法,就算入门了。
从现在开始准备考研。
找一些中文的基础教程的话可以看一下数析学院(),都是国人翻译好的免费资源。
推荐我的一门课程,全栈数据工程师养成攻略 – 网易云课堂 ,感兴趣的话可以关注
后续还会结合更多实例,例如我做过的一些项目和参加过的一些比赛,出一些其他视频教程