如何学习大数据处理?

姓名:于川皓 学号:16140210089

转载自:https://www.zhihu.com/question/20176089/answer/23302503

【嵌牛导读】:想做数据处理尤其是大数据量处理的相关工作必须兼具计算机科学基础和统计基础

现在有一个高大上的职业叫数据科学家,有人说数据科学家就是一个比程序员更懂统计的统计学家,一个比统计学家更会编程的程序员。觉得说得很形象。

【嵌牛鼻子】:大数据

【嵌牛提问】:微波杀菌的特点?

【嵌牛正文】:


想做数据处理尤其是大数据量处理的相关工作必须兼具计算机科学基础和统计基础

现在有一个高大上的职业叫数据科学家,有人说数据科学家就是一个比程序员更懂统计的统计学家,一个比统计学家更会编程的程序员。觉得说得很形象。

<img src="https://pic3.zhimg.com/50/b36ae1d535cbb0fd4ec53b8bf78513ba_hd.jpg" data-rawwidth="852" data-rawheight="582" class="origin_image zh-lightbox-thumb" width="852" data-original="https://pic3.zhimg.com/b36ae1d535cbb0fd4ec53b8bf78513ba_r.jpg">

考虑到你还是在读本科生,有很多知识和课程还需要作为基础来学习和巩固。

基础中的基础:

线性代数,概率论

核心知识:

数理统计

预测模型

机器学习

计算机:

数学软件:强大矩阵运算和优化功能的matlab,专而精的mathematica。

语言:python(很流行的科学语言,潜力也很大,ipython这样交互式环境十分有利),fortran(强大的计算语言,充分优化的现成代码),R(相比于matlab,java,c,R是个高富帅)

可视化

<img src="https://pic2.zhimg.com/50/14e81b9356cba0e6c0c18ad481f241bd_hd.jpg" data-rawwidth="508" data-rawheight="334" class="origin_image zh-lightbox-thumb" width="508" data-original="https://pic2.zhimg.com/14e81b9356cba0e6c0c18ad481f241bd_r.jpg">这是数据分析各类语言使用度的图表,R占的比例还是相当高啊。想利用现在动辄TB级的数据大显身手,光靠excel可不够啊。你真的需要写很多代码…

这是数据分析各类语言使用度的图表,R占的比例还是相当高啊。想利用现在动辄TB级的数据大显身手,光靠excel可不够啊。你真的需要写很多代码…

统计:时间序列分析

应用回归(很简单,亦很实用)

多元统计分析

强烈推荐:Distance Education § Harvard University Extension School和哈佛的学生一起学习Data Science。

课后问题的材料:http://cs109.org/

网络课程同样有丰富的资源:

机器学习类:

斯坦福大学:机器学习 coursera

Learning From Data

数据分析类:

约翰霍普金斯: Data Analysis Methods

杜克: Data Analysis and Statistical Inference

约翰霍普金斯: Computing for Data Analysis

MIT: The Analytics Edge

编程类:

莱斯大学: Introduction to Interactive Programming in Python

MIT: Introduction to Computer Science & Programming in Python

相关问题:

Data Science: What are some good free resources to learn data science?

Where can I learn pandas or numpy for data analysis?

What are some good resources for learning about statistical analysis?

Data Science: How do I become a data scientist?

What are some good "toy problems" in data science?

What are some good resources for learning about machine learning?

水平有限,欢迎补充。另外我制作了一个个人网站Daniel's Site on Strikingly和专栏DαΓαSciεηce - 知乎专栏希望激发更多人对data science 的兴趣。

编辑于 2014-06-16

874​23 条评论

​分享

​收藏​感谢收起

范侠

数据挖掘工程师,DW,数据运营

收录于编辑推荐·226 人赞同了该回答

海量数据分成两块,一是系统建设技术,二,海量数据应用。先说系统建设,现在主流的技术是HADOOP,主要基于mapreduce的分布式框架。目前可以先学习这个。但是我的观点,在分布式系统出来之前,主要是集中式架构,如DB2,oracle。为什么现在用分布式架构,那是因为现在集中式架构受限于IO性能,出来速度慢,如果又一种硬件技术,可以很快地处理海量数据,性能上能满足需求,那么集中式架构优于分布式架构,因为集中式架构稳定,运维压力小。现在的集中式架构要么性能达不到要求,要么就是过于昂贵。我期待一种技术出现,可以非常快地传输和处理数据,那么集中式架构将再次进入人们眼球。再说海量数据应用。海量数据应用主要是数据挖掘和机器算法。具体有不同的应用场景,如个性化搜索和推荐,社交网络发现,精准营销,精准广告,实时最优路径,人工智能等等。看你想做系统支撑技术还是与业务结合的应用技术。

如果现在学系统建设技术,可以读下如下书籍:

<img src="https://pic3.zhimg.com/50/eb38178cf7fcf92db4c3655d6c06d462_hd.jpg" data-rawwidth="541" data-rawheight="202" class="origin_image zh-lightbox-thumb" width="541" data-original="https://pic3.zhimg.com/eb38178cf7fcf92db4c3655d6c06d462_r.jpg">

如果学数据挖掘和机器算法,推荐先看数据挖掘导论,统计分析原理,Mahout,R,MATLAB

发布于 2012-04-13

226​18 条评论

​分享

​收藏​感谢

Xiaoyu Ma

用户标识

大数据话题的优秀回答者

169 人赞同了该回答

1. 自己装个小集群跑hadoop/hive,可以到cloudera网站上下现成的打包虚拟机。看看hadoop in action. 这本书比权威指南容易懂很多。

2. 装个cassandra什么的玩玩,在上面架个小项目,比如留言板什么的。。

3. 读一些著名的paper,nosql的或者mapreduce。

4. 看看apache hadoop家族的其他几个项目,比如zookeeper,pig,了解一下生态圈

到这里为止你大概有个概念,知道bigdata怎么回事了

找个开源项目,看看ticket list,看看能不能自己修。。

能的话看看能不能混进项目组

个人觉得,大数据要靠实践多一点。在真的上百上千节点的cluster上跑hadoop和自己虚拟机架的完全不同。cluster上跑各种奇葩的事情单机都是碰不到的。。就好比dba靠读书考证很难牛屄一样。所以最终还是要找个公司实战。。不过如果上面几个都做到的花,基本上应聘大数据公司问题不大了。

----------------------------------

做大数据平台工作现在满一周年多几天,再看上面的答案觉得说得不是很到位。

在国内的环境下,似乎还是Hadoop用得更多,其他更fancy的东西比如presto/spark什么的,湾区也算是新鲜事物,并不是很多公司都在用(也有原因是真的适用的公司也不算太多了)。更实际节省的做法是,学Hadoop,至少要了解系统架构和数据的流向,比如怎么partition,怎么shuffle,combiner怎么work之类的大概念,对入门人士面试官大多也就是面这些,不会问太深,再深入的问题,是留给有行业经验的人的。对刚入门想入行的人,知道上面这些,再写写类似Word Count(大数据版的helloworld),之类的有个实际概念,就可以找公司面着玩看了。

其他东西可以都了解个皮毛,跟上社群的演进。大数据更多是工程的东西,不是那么学术,多看看比深挖一个对初学者更有好处。每个工具被发明,都是解决一个特定问题的,大数据没有一个产品是万能的,都是解决某个特定问题来的,看到新鲜事物就想想为什么需要这样的工具,背后有什么需求。

比如有了Hive为什么facebook还要搞Presto;为什么Hadoop 2.0要做Yarn。看的时候多想想这个,视野就会更开阔。

建议如果想深入学习,没有什么比找个真的做相关行业的公司来的靠谱了。工程的东西,尤其是这样新鲜出炉的工程领域,光看书看资料是没有任何用处的,你很难了解每个技术背后的关键,也很难了解实践中会遇到的问题。我之前打杂过的实验室,到处找客户免费用他们的产品,每个出去的学生都会义务跟雇主推荐实验室的产品,为什么,因为没有真的在PB级别的数据上跑,你就不知道哪里设计有问题。你深入看一个项目,就会发现,其实用得技术没什么新鲜深奥的,比如你看Hive或者Presto,会发现用到的技术,在Query引擎领域只能算是入门级的知识,传统数据库厂商都用了几十年了。真正好玩的是,每个Feature设计是如何切入大数据这个背景的。

所以说,没有比找一家公司真的干一段时间更能让你了解大数据的了。当然请别被忽悠去拿大数据做噱头的公司了。现在有些公司招聘,就算不用hadoop也会往上写,反正去了老板会说,现在数据不够,以后肯定会需要Hadoop的。

以上都是关于平台方向的,数据方向的我完全不懂。

编辑于 2014-05-15

169​16 条评论

​分享

​收藏​感谢收起

Aewil Zheng

搞一下算法,深一点的那种

20 人赞同了该回答

好吧,我来说一下我的看法吧

首先

我由各种编程语言的背景——matlab,R,java,C/C++,python,网络编程等

我又一定的数学基础——高数,线代,概率论,统计学等

我又一定的算法基础——经典算法,神经网络,部分预测算法,群智能算法等

但这些目前来讲都不那么重要,但慢慢要用到

Step 1:大数据理论,方法和技术

大数据理论——啥都不说,人家问你什么是大数据时,你能够讲到别人知道什么是大数据

大数据方法——然后别人问你,那怎么实现呢?嗯,继续讲:说的是方法(就好像归并排序算法:分,并)。到目前外行人理解无障碍

大数据技术——多嘴的人继续问:用的技术。

这阶段只是基础,不涉及任何技术细节,慢慢看慢慢总结,积累对“大数据”这个词的理解。

Step 2:大数据思维

Bang~这是继Step 1量变发展而来的质变:学了那么久“大数据”,把你扔到制造业,你怎么办?

我想,这就是“学泛”的作用吧,并不是学到什么具体东西,而是学到了对待事物的思维。

就像知友讨论的:如何评价《Big Data:大数据时代》这本书?中有提到

这个我也朦朦的不懂 @.@

----------------------------------------------------------------------

以下阶段我还没开始=_=,不好误导大家

Step 3:大数据技术基础

Step 4:大数据技术进阶

Step 5:打实战

Step 6:大融合

我现在也在学习之中~~这只是我自己为自己打算的学习历程,欢迎给出各种建议~~

@Du Crystal

本来想回答你在评论里的提问,但是被提示不超过1000字...只能这里回答了。。。(跟问题本身也有些相关)

@Du Crystal评论提问的回答:

我现在回看了一下我原来答案,太糟糕了,虽然路线还可以,但好像也没答到问题的点子上(因为我的点子是:打基础就得了解概念先,后面才是联系自己现状调想学的东西,但看赞同最多好像是:这个领域什么技术比较热?有哪些资源?)...

承蒙你的肯定,就回答一下你的问题吧~

我觉得重要的还是:

1. 积累对(工业)大数据的理解:定义和案例;

2. 不断改进自己的思维:要哪些能力?如何培养。

下面说说我的理解吧

1. 积累对(工业)大数据的理解:定义和案例

大数据到目前为止也没有统一的定义,但倒是有些观点可借鉴一番:

(1)    Gartner的3V定义:

Volume,数据量大;

Velocity,数据更新速度快;

Variety,数据多样性。

(2)    维基百科/谷歌(我记得好像是...)的定义:

Big Data is a broad term for data sets so large or complex that traditional data processing applications are inadequate.(即 大数据指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理并整理成为帮助企业经营决策目的的资讯。)

这两个定义,一个从“大数据”的属性层面入手,一个从“大数据”的方法层面入手,以理解、定义大数据。网上有各种各样的定义,这是我觉得比较好的两个。

然而,一两句化的定义是解决不了“对大数据的理解”这个问题的,更多的是需要通过对大数据案例学习对网上别人观点和看法的吸收以及自己的实践等渠道,来慢慢加深对大数据的理解,最终才能明白这些定义的隐含内涵。

那我对这些定义的隐含内涵的理解是什么呢?

(1)    我觉得大数据的3V定义中,核心在于Variety”(多样性)上。其实,我想表达的是:多数据源,或者说,解决问题的多个视角

对问题的理解使得我们可以通过多个视角去考虑问题,而不同的视角代表了不同的数据源,通过综合这些数据源,我们可以得到更准确、更精确的分析结果。而Volume(量)和Velocity(数据更新速度)只是Variety(多样性)附带的“红利”而已:考虑的视角多了,数据量自然也大了,把动态的视角考虑进去,那么自然也就考虑了数据更新了。(例如,在考虑机器故障预测这件事上,我们不仅可以利用它加工出来的零件的尺寸这个数据,也可以考虑机器本身的振动信号、电压电流信号,甚至加工过程中产生的噪声信号等等,那么我们从机器、零件、环境等多个视角考虑问题,考虑多个数据源,从而实现了一个大数据应用。)

数据采集受硬件约束,而硬件越来越便宜。多视角考虑问题则受人的思维约束,同时也是更好解决问题的主要瓶颈。所以,对问题的理解和思考,应该成为我们的优势所在。

(2)    而维基百科关于大数据的定义,告诉我们算法、数据分析的困难和重要性将更上一层。而由于实现部分,不用制造考虑,交给IT部吧。

也就是说,一个定义分别告诉我们:多视角;另一个:能做不可能的事情,虽然很难。

综上,我认为,(制造中)大数据应该是一种基于多视角分析问题,并利用高扩展性、实时性的算法分析问题的一种科学范式。

这样还是很泛,真的制造大数据是很狭隘的(就目前而言)。

而无论是工业4.0,还是工业大数据或智能制造,从本质上看就是IT技术(信息)工业技术(物理)的融合,而制造的人将是这场融合中重要的催化剂:最贴近工业技术,同时又能几时吸收一些前沿IT技术的思想,将两者融合以优化制造流程!(你可以看看GE的那个白皮书)

所以,其实对制造的大数据,我还有一点想法:

切勿切勿切勿一心落到“大数据”中“大”的追求当中!

McKinsey的报告中强调,并不是说一定要超过特定TB 级的数据集才能算是大数据。(Big Data: The Next Frontier For Innovation, Competition, And Productivity)而其实对于大数据上“量”阈值的界定,是取决于不同行业的,因此用一个单纯的阈值来判断是否是大数据是不实际的。

在制造步入数据化时代之际,更重要的是改变思维:以往无数据状况下,只能依靠纯粹机理的因果分析;而今获取数据的渠道多样且容易,应该多考虑如何利用数据以辅助优化、决策,而不单单利用机理分析!

最后,数据分析更贴近实际,而大数据分析可能是屠龙之技,是需要积累的(看看人家互联网都积累那么久,现在都还没多少很成功出名的大数据case)!

2. 不断改进自己的思维:要哪些能力?如何培养。

上面说了,制造的人是Cyber Physics System中 cyber 和 physics融合的leader,那么作为leader得做什么呢?

(1) 启动智能制造模式;

(2) 明确所需能力,并培养及获取。

领导做事并共同进步。

启动智能制造模式

GE在提出工业互联网时涉及了三个点:传感器、全新的互联网连接(平台)和数据分析与技术,这三个点结合实现了智能设备、智能系统和智能决策,从而支撑起工业互联网的框架。

智能设备

为工业设备提供数字化设备是工业互联网革命的第一步。而智能设备为这一步的实现提供了强大的基础:硬件成本的大幅下滑及物联网技术的实现、成熟,使实时、全方位监控设备、获取设备数据成为可能,而微处理器芯片和大数据分析工具及分析技术的持续进步,支撑了海量数据的处理。

这让更广泛的利益相关者能够参与到资产维护、管理和优化之中。它还确保在合适的时间引入本地和远程拥有相关机器专业知识的人。智能信息还可以返回至最初的机器。这不仅包括该机器产生的数据,还包括可以加强机器、设施和大型系统的运营或维护的外部数据。这些数据反馈循环让机器能够从历史中“学习”,从而控制系统更智能的运行。

智能系统

智能系统不单单将智能设备、数据及人结合为一个整体,使智能信息在机器、系统网络、个人或群体之间分享,推动智能协作和更好的决策,还负责网络优化、维护优化、系统恢复、学习等智能功能。

智能决策

工业互联网的全部威力将通过第三个元素实现——智能决策。当从智能设备和系统收集到足够的信息以促进数据驱动的学习时,智能决策就出现了,这反过来让机器子集和系统网络级运营功能从操作员转到安全的数字系统。

明确所需能力,并培养及获取

(1)    精心制定的大数据规划:

大数据及高级数据分析看起来漂亮,但就像战略规划一样,需要无论是对制造等业务流程,还是对数据理解,都具有全局观念和深刻认识的人才、管理者(像Microsoft这样的公司都需要请mu sigma这样的数据处理公司做咨询)。无论何时,在推进工业大数据的过程中,一定要有人总结关于公司的数据概况及其应用案例。

(2)    时刻关注三个关键能力的成长:

A.鉴别、结合及管理多种数据源:对自己部门相关的总体数据有深刻理解,对其他部门数据有一个数据概况的认识,并思考如何结合及管理。

B.    构建高级分析模型的能力。

C.    为了确保数据和模型能够真正生成更好的决策,管理层必须具备推动转变体制的能力:如赋权相关人员,组织扁平化,数据共享会等习惯。

(3)    自动化带来的效益是明显的,信息化建设则是长期的;可能需要新的管理架构、角色或分工在其中进行协调:

信息化建设是长期且需要不断投入的,大方向对了,还需要高执行力的领导层及独立部门人员进行推行。

推荐阅读更多精彩内容