⑴ 如何入门大数据
大数据
数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据。
但从狭义上来看,我认为数据科学就是解决三个问题:
1. data pre-processing;(数据预处理)
2. data interpretation;(数据解读)
3.data modeling and analysis.(数据建模与分析)
这也就是我们做数据工作的三个大步骤:
1、原始数据要经过一连串收集、提取、清洗、整理等等的预处理过程,才能形成高质量的数据;
2、我们想看看数据“长什么样”,有什么特点和规律;
3、按照自己的需要,比如要对数据贴标签分类,或者预测,或者想要从大量复杂的数据中提取有价值的且不易发现的信息,都要对数据建模,得到output。
这三个步骤未必严谨,每个大步骤下面可能依问题的不同也会有不同的小步骤,但按我这几年的经验来看,按照这个大思路走,数据一般不会做跑偏。
这样看来,数据科学其实就是门复合型的技术,既然是技术就从编程语言谈起吧,为了简练,只说说R和Python。但既然是荐数据科学方面的书,我这里就不提R/Python编程基础之类的书了,直接上跟数据科学相关的。
R programming
如果只是想初步了解一下R语言已经R在数据分析方面的应用,那不妨就看看这两本:
R in action:我的R语言大数据101。其实对于一个没有任何编程基础的人来说,一开始就学这本书,学习曲线可能会比较陡峭。但如果配合上一些辅助材料,如官方发布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的问题集(Newest ‘r’ Questions),遇到复杂的问题可在上面搜索,总会找到解决方案的。这样一来,用这本书拿来入门学习也问题不大。而且这本书作者写得也比较轻松,紧贴实战。
Data analysis and graphics using R:使用R语言做数据分析的入门书。这本书的特点也是紧贴实战,没有过多地讲解统计学理论,所以喜欢通过情境应用来学习的人应该会喜欢这本入门书。而且这本书可读性比较强,也就是说哪怕你手头没电脑写不了代码,有事没事拿出这本书翻一翻,也能读得进去。
但如果你先用R来从事实实在在的数据工作,那么上面两本恐怕不够,还需要这些:
Modern applied statistics with S:这本书里统计学的理论就讲得比较多了,好处就是你可以用一本书既复习了统计学,又学了R语言。(S/Splus和R的关系就类似于Unix和Linux,所以用S教程学习R,一点问题都没有)
Data manipulation with R:这本书实务性很强,它教给你怎么从不同格式的原始数据文件里读取、清洗、转换、整合成高质量的数据。当然和任何一本注重实战的书一样,本书也有丰富的真实数据或模拟数据供你练习。对于真正从事数据处理工作的人来说,这本书的内容非常重要,因为对于任何研究,一项熟练的数据预处理技能可以帮你节省大量的时间和精力。否则,你的研究总是要等待你的数据。
R Graphics Cookbook:想用R做可视化,就用这本书吧。150多个recipes,足以帮你应付绝大多数类型的数据。以我现在极业余的可视化操作水平来看,R是最容易做出最漂亮的图表的工具了。
An introction to statistical learning with application in R:这本书算是著名的the element of statistical learning的姊妹篇,后者更注重统计(机器)学习的模型和算法,而前者所涉及的模型和算法原没有后者全面或深入,但却是用R来学习和应用机器学习的很好的入口。
A handbook of statistical analysis using R:这本书内容同样非常扎实,很多统计学的学生就是用这本书来学习用R来进行统计建模的。
Python
Think Python,Think Stats,Think Bayes:这是Allen B. Downey写的著名的Think X series三大卷。其实是三本精致的小册子,如果想快速地掌握Python在统计方面的操作,好好阅读这三本书,认真做习题,答案链接在书里有。这三本书学通了,就可以上手用Python进行基本的统计建模了。
Python For Data Analysis: 作者是pandas的主要开发者,也正是Pandas使Python能够像R一样拥有dataframe的功能,能够处理结构比较复杂的数据。这本书其实analysis讲得不多,说成数据处理应该更合适。掌握了这本书,处理各种糟心的数据就问题不大了。
Introction to Python for Econometrics, Statistics and Data Analysis:这本书第一章就告诉你要安装Numpy, Scipy, Matplotlib, Pandas, IPython等等。然后接下来的十好几章就是逐一介绍这几个库该怎么用。很全面,但读起来比较枯燥,可以用来当工具书。
Practical Data Analysis: 这本书挺奇葩,貌似很畅销,但作者把内容安排得东一榔头西一棒子,什么都讲一点,但一个都没讲透。这本书可以作为我们学习数据分析的一个索引,看到哪块内容有意思,就顺着它这个藤去摸更多的瓜。
Python Data Visualization Cookbook: 用Python做可视化的教材肯定不少,我看过的也就这一本,觉得还不错。其实这类书差别都不会很大,咬住一本啃下来就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory Data Analysis:John Tukey写于1977年的经典老教材,是这一领域的开山之作。如今EDA已经是统计学里的重要一支,但当时还是有很多人对他的工作不屑一顾。可他爱数据,坚信数据可以以一种出人意料的方式呈现出来。正是他的努力,让数据可视化成为一门无比迷人的技术。但这本书不推荐阅读了,内容略过时。要想完整地了解EDA,推荐下一本:
Exploratory Data Analysis with MATLAB:这本书虽然标题带了个MATLAB,但实际上内容几乎没怎么讲MATLAB,只是每讲一个方法的时候就列出对应的MATALB函数。这本书的重要之处在于,这是我读过的讲EDA最系统的一本书,除了对visualization有不输于John Tucky的讲解外,对于高维的数据集,通过怎样的方法才能让我们从中找到潜在的pattern,这本书也做了详尽的讲解。全书所以案例都有对应的MATALB代码,而且还提供了GUI(图形用户界面)。所以这本书学起来还是相当轻松愉悦的。
Visualize This:中译本叫“鲜活的数据”,作者是个“超级数据迷”,建立了一个叫http://flowingdata.com的网页展示他的数据可视化作品,这本书告诉你该选择什么样的可视化工具,然后告诉你怎样visualize关系型数据、时间序列、空间数据等,最后你就可以用数据讲故事了。如果你只想感受一下数据可视化是个什么,可以直接点开下面这个链接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)
Machine Learning & Data Mining
这一块就不多说了,不是因为它不重要,而是因为它太太太重要。所以这一部分就推两本书,都是”世界名著“,都比较难读,需要一点点地啃。这两本书拿下,基本就算是登堂入室了。其实作为机器学习的延伸和深化,概率图模型(PGM)和深度学习(deep learning)同样值得研究,特别是后者现在简直火得不得了。但PGM偏难,啃K.Daphne那本大作实在太烧脑,也没必要,而且在数据领域的应用也不算很广。deep learning目前工业界的步子迈得比学术界的大,各个domain的应用如火如荼,但要有公认的好教材问世则还需时日,所以PGM和deep learning这两块就不荐书了。
The Element of Statistical Learning:要学机器学习,如果让我只推荐一本书,我就推荐这本巨著。Hastie、Tibshirani、Friedman这三位大牛写书写得太用心了,大厦建得够高够大,结构也非常严谨,而且很有前瞻性,纳入了很多前沿的内容,而不仅仅是一部综述性的教材。(图表也做得非常漂亮,应该是用R语言的ggplot2做的。)这本书注重讲解模型和算法本身,所以需要具备比较扎实的数理基础,啃起这本书来才不会太吃力。事实上掌握模型和算法的原理非常重要。机器学习(统计学习)的库现在已经非常丰富,即使你没有完全搞懂某个模型或算法的原理和过程,只要会用那几个库,机器学习也能做得下去。但你会发现你把数据代进去,效果永远都不好。但是,当你透彻地理解了模型和算法本身,你再调用那几个库的时候,心情是完全不一样的,效果也不一样。
Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 数据挖掘的教材汗牛充栋,之所以推荐这本韩家炜爷爷的,是因为虽然他这本书的出发点是应用,但原理上的内容也一点没有落下,内容非常完整。而且紧跟时代,更新的很快,我看过的是第二版,就已经加进去了social network analysis这种当时的前沿内容。现在已经有第三版了,我还没看过,但应该也加入了不少新内容。其实这本书并不难读,只是篇幅较长,啃起来比较耗时。
其实这两本书里单拎出来一块内容可能又是几本书的节奏,比如bayesian方法,再拿出两三本书来讲也不为过,我个人用到的比较多,而且也确实有不少好书。但并非是所有data scientist都要用到,所以这一块就不再细说。
还有一些印象比较深刻的书:
Big Data Glossary: 主要讲解大数据处理技术及工具,内容涵盖了NoSQL,MapRece,Storage,Servers,NLP库与工具包,机器学习工具包,数据可视化工具包,数据清洗,序列化指南等等。总之,是一本辞典式的大数据入门指导。
Mining of Massive Datasets:这本书是斯坦福大学Web Mining的讲义,里面很多内容与韩家炜的Data Mining那本书重合,但这本书里详细地讲了MapRece的设计原理,PageRank(Google创业时期的核心排序算法,现在也在不断优化更新)讲解得也比较详细。
Developing Analytic Talent: 作者是个从事了十几年数据工作的geek,技术博客写得很有个人风格,写的内容都比较偏门,通常只有具备相关数据处理经验的人能体会出来,丝毫不照顾初学者的感受。比如他会谈到当数据流更新太快时该怎么办,或者MapRece在什么时候不好用的问题,才不管你懂不懂相关基础原理。所以这本书不太适合初学者阅读。这本书其实是作者的博客文章的集结,用how to become a data scientist的逻辑把他近几年的博客文章串联了起来。
Past, Present and Future of Statistical Science:这本书是由COPSS(统计学社主席委员会,由国际各大统计学会的带头人组成)在50周年出版的一本纪念册,里面有50位统计学家每人分别贡献出的一两篇文章,有的回忆了自己当年如何走上统计学这条路,有的探讨了一些统计学的根本问题,有的谈了谈自己在从事的前沿研究,有的则给年轻一代写下了寄语。非常有爱的一本书。
其它资料
Harvard Data Science:这是H大的Data science在线课,我没有修过,但口碑很好。这门课需要费用8千刀左右,比起华盛顿大学的4千刀的Data science在线课虽贵一倍,但比斯坦福的14千刀要便宜将近一半(而且斯坦福的更偏计算机)。如果想自学,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是来自各个domain的用Python做数据的人每年举行一次的聚会,期间会有各路牛人举行一些规模不大的seminar或workshop,有好心人已经把video上传到github,有兴趣的去认领吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必备):如果是做数据分析和模型开发,以我的观察来看,使用这三种工具的最多。R生来就是一个统计学家开发的软件,所做的事也自然围绕统计学展开。MATLAB虽然算不上是个专业的数据分析工具,但因为很多人不是专业做数据的,做数据还是为了自己的domain expertise(特别是科学计算、信号处理等),而MATLAB又是个强大无比的Domain expertise工具,所以很多人也就顺带让MATLAB也承担了数据处理的工作,虽然它有时候显得效率不高。Python虽然不是做数据分析的专业软件,但作为一个面向对象的高级动态语言,其开源的生态使Python拥有无比丰富的库,Numpy, Scipy 实现了矩阵运算/科学计算,相当于实现了MATLAB的功能,Pandas又使Python能够像R一样处理dataframe,scikit-learn又实现了机器学习。
SQL(必备):虽然现在人们都说传统的关系型数据库如Oracle、MySQL越来越无法适应大数据的发展,但对于很多人来说,他们每天都有处理数据的需要,但可能一辈子都没机会接触TB级的数据。不管怎么说,不论是用关系型还是非关系型数据库,SQL语言是必须要掌握的技能,用什么数据库视具体情况而定。
MongoDB(可选):目前最受欢迎的非关系型数据库NoSQL之一,不少人认为MongoDB完全可以取代mySQL。确实MongoDB方便易用,扩展性强,Web2.0时代的必需品。
Hadoop/Spark/Storm(可选): MapRece是当前最著名也是运用最广泛的分布式计算框架,由Google建立。Hadoop/Spark/storm都是基于MapRece的框架建立起来的分布式计算系统,要说他们之间的区别就是,Hadoop用硬盘存储数据,Spark用内存存储数据,Storm只接受实时数据流而不存储数据。一言以蔽之,如果数据是离线的,如果数据比较复杂且对处理速度要求一般,就Hadoop,如果要速度,就Spark,如果数据是在线的实时的流数据,就Storm。
OpenRefine(可选):Google开发的一个易于操作的数据清洗工具,可以实现一些基本的清洗功能。
Tableau(可选):一个可交互的数据可视化工具,操作简单,开箱即用。而且图表都设计得非常漂亮。专业版1999美刀,终身使用。媒体和公关方面用得比较多。
Gephi(可选):跟Tableau类似,都是那种可交互的可视化工具,不需要编程基础,生成的图表在美学和设计上也是花了心血的。更擅长复杂网络的可视化。
⑵ 大数据都有什么就业方向
大数据专业就业方向
大数据主要的三大就业方向:大数据系统研发类人才、大数据应用开发类人才和大数据分析类人才。在此三大方向中,各自的基础岗位一般为大数据系统研发工程师、大数据应用开发工程师和数据分析师。
大数据专业介绍
计算机科学与技术(数据科学与大数据技术方向)主要培养大数据科学与工程领域的复合型高级技术人才。毕业生具有信息科学、管理科学和数据科学基础知识与基本技能,掌握大数据科学与技术所需要的计算机、网络、数据编码、数据处理等相关学科的基本理论和基本知识,熟练掌握大数据采集、存储、处理与分析、传输与应用等技术,具备大数据工程项目的系统集成能力、应用软件设计和开发能力,具有一定的大数据科学研究能力及数据科学家岗位的基本能力与素质。毕业后能从事各行业大数据分析、处理、服务、开发和利用工作,大数据系统集成与管理维护等各方面工作,亦可从事大数据研究、咨询、教育培训工作。
大数据(big data)是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据有五大特点,即大量(Volume)、高速(Velocity)、多样(Variety)、低价值密度(Value)、真实性(Veracity)。它并没有统计学的抽样方法,只是观察和追踪发生的事情。
大数据的用法倾向于预测分析、用户行为分析或某些其他高级数据分析方法的使用。
对于“大数据”(Big data)研究机构Gartner给出了这样的定义。“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。[1]
麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。[2]
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。[3]
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。[4]
⑶ 大数据未来的前景怎么样
发展历程:十年来大数据产业高速增长,我国信息智能化程度得到显著提升
我国大数据产业布局相对较早,2011年,工信部就把信息处理技术作为四项关键技术创新工程之一,为大数据产业发展奠定了一定的政策基础。自2014年起,“大数据”首次被写进我国政府工作报告,大数据产业上升至国家战略层面,此后,国家大数据综合试验区逐渐建立起来,相关政策与标准体系不断被完善,到2020年,我国大数据解决方案已经发展成熟,信息社会智能化程度得到显著提升。
—— 更多行业相关数据请参考前瞻产业研究院《中国大数据产业发展前景与投资战略规划分析报告》
⑷ 大数据如何入门
首先我们要了解java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
大数据
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapRece和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapRece是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapRece程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapRece、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapRece处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
⑸ 大数据的内容和基本含义
“大数据”是近年来IT行业的热词,大数据在各个行业的应用逐渐变得广泛起来,如2014年的两会,我们听得最多的也是大数据分析,那么,什么是大数据呢,什么是大数据概念呢,大数据概念怎么理解呢,一起来看看吧。
1、大数据的定义。大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
2、大数据的采集。科学技术及互联网的发展,推动着大数据时代的来临,各行各业每天都在产生数量巨大的数据碎片,数据计量单位已从从Byte、KB、MB、GB、TB发展到PB、EB、ZB、YB甚至BB、NB、DB来衡量。大数据时代数据的采集也不再是技术问题,只是面对如此众多的数据,我们怎样才能找到其内在规律。
3、大数据的特点。数据量大、数据种类多、 要求实时性强、数据所蕴藏的价值大。在各行各业均存在大数据,但是众多的信息和咨询是纷繁复杂的,我们需要搜索、处理、分析、归纳、总结其深层次的规律。
4、大数据的挖掘和处理。大数据必然无法用人脑来推算、估测,或者用单台的计算机进行处理,必须采用分布式计算架构,依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术,因此,大数据的挖掘和处理必须用到云技术。
5、大数据的应用。大数据可应用于各行各业,将人们收集到的庞大数据进行分析整理,实现资讯的有效利用。举个本专业的例子,比如在奶牛基因层面寻找与产奶量相关的主效基因,我们可以首先对奶牛全基因组进行扫描,尽管我们获得了所有表型信息和基因信息,但是由于数据量庞大,这就需要采用大数据技术,进行分析比对,挖掘主效基因。例子还有很多。
6、大数据的意义和前景。总的来说,大数据是对大量、动态、能持续的数据,通过运用新系统、新工具、新模型的挖掘,从而获得具有洞察力和新价值的东西。以前,面对庞大的数据,我们可能会一叶障目、可见一斑,因此不能了解到事物的真正本质,从而在科学工作中得到错误的推断,而大数据时代的来临,一切真相将会展现在我么面前。