数据科学是一门正在兴起的学科,国内外各个大学开始开设数据科学课程或类似课程,并且编写配套教材。我们的教材在内容上按照四大模块进行组织,分别是数据科学基础、数据以及数据上的计算(分析)、数据处理基础设施/平台和工具、以及大数据的案例和实践。我们认为这样的组织,使得内容体系相对完整。
覃雄派(1971?),男,博士,中国人民大学信息学院讲师、硕士生导师,目前主要从事高性能数据库、大数据分析、信息检索等方面的研究工作,主持1项国家自然科学基金面上项目,参与多项国家863计划、973计划及国家自然科学基金项目,在国内外期刊和会议上发表论文20余篇。
陈跃国(1978?),男,博士,中国人民大学信息学院副教授、博士生导师,中国计算机学会高级会员,数据库专家委员会委员,大数据专家委员会通信委员,Frontiers of Computer Science青年编委,主要研究方向为大数据分析系统和语义搜索。主持国家自然科学基金项目2项,广东省科技应用重大专项1项,参与多项国家核高基(核心电子器件、高端通用芯片及基础软件产品)、973计划、863计划项目,近年来在SIGMOD、SIGIR、ICDE、AAAI、IEEE TKDE、WWW等国际重要期刊和会议上发表论文30余篇
杜小勇(1963?),男,博士,中国人民大学信息学院教授,博士生导师,教育部数据工程与知识工程重点实验室主任,中国计算机学会会士,《大数据》期刊编委会副主任。主要研究方向为智能信息检索、高性能数据库、知识工程。主持和参与多项国家核高基(核心电子器件、高端通用芯片及基础软件产品)、973计划、863计划、国家自然科学基金项目,近年来在SIGMOD、VLDB、AAAI、IEEE TKDE等国际重要期刊和会议上发表论文百余篇。
理论篇//
1数据科学概论
1.1数据科学的定义
1.2数据科学的定位
1.2.1数据科学与数据库、大数据分析的关系
1.2.2数据科学与基于数据的决策的关系
1.3数据科学家
1.3.1数据科学家的技能
1.4数据科学的基本原则(Principle)
1.4.1原则1:数据分析可以划分成一系列明确的阶段
1.4.2原则2:描述性分析与预测性分析
1.4.3原则3:实体的相似度
1.4.4原则4:模型的泛化能力
1.4.5原则5:分析结果的评估与特定应用场景有关
1.4.6原则6:相关性不同于因果关系
1.4.7原则7:通过并行处理提高数据处理(分析)速度
1.5数据处理流程:时间维度的纵向视角
1.6数据处理系统的架构:系统维度的计算视角
1.6.1数据处理系统的层次架构
1.6.2数据处理系统的Lambda架构
1.7数据的多样性:数据类型维度的横向视角
1.8数据价值的挖掘:价值维度的价值提升视角
1.9思考题
2OLTP与数据服务
2.1面向OLTP应用的RDBMS数据库技术
2.1.1关系数据库技术与SQL查询语言
2.1.2利用索引加快数据访问
2.1.3数据库的事务处理、恢复技术与安全保证
2.1.4并行数据库与分布式数据库
2.2面向数据服务的NoSQL数据库技术
2.2.1NoSQL数据库技术
2.2.2CAP理论
2.2.3Key-Value数据库
2.2.4Column Family数据库
2.2.5Document数据库
2.2.6Graph数据库
2.3NewSQL数据库技术
2.3.1VoltDB数据库
2.3.2Google Spanner数据库
2.4思考题
3OLAP与结构化数据分析
3.1联机分析处理(OLAP)与结构化数据分析
3.1.1从操作型的业务数据库向数据仓库抽取、转换和装载数据
3.1.2数据仓库与星型模型
3.1.3联机分析处理OLAP
3.1.4三种类型的OLAP系统
3.2高性能OLAP系统的关键技术
3.2.1列存储技术
3.2.2位图索引技术
3.2.3内存数据库技术
3.2.4MPP并行数据库
3.3结构化数据分析工具介绍
3.3.1MPP(Shared-Nothing)数据库、基于列存储的关系数据库
3.3.2SQL on Hadoop系统
3.3.3性能比较
3.4思考题
4数据清洗与数据集成
4.1数据抽取、转换与装载
4.2数据清洗
4.2.1数据清洗的意义
4.2.2数据异常的不同类型
4.2.3数据质量
4.2.4数据清洗的任务和过程
4.2.5数据清洗的具体方法
4.3数据集成
4.3.1数据集成
4.3.2数据集成需要解决的问题异构性(Heterogeneity)
4.3.3数据集成的模式
4.3.4实体解析(Entity Resolution)
4.4思考题
5数据的深度分析(数据挖掘、机器学习)
5.1机器学习与数据挖掘简介
5.2主流机器学习与数据挖掘方法
5.2.1决策树
5.2.2聚类算法K-Means
5.2.3分类算法支持向量机SVM
5.2.4关联规则分析(Association Rule Analysis)Apriori算法
5.2.5EM(ExpectationMaximization)算法
5.2.6协同过滤推荐算法(Collaborative Filtering Recommendation)
5.2.7kNN(k近邻)算法
5.2.8朴素Bayes(Naive Bayes)算法
5.2.9AdaBoost算法
5.2.10线性回归、Logistic回归
5.2.11神经网络与深度学习(Neural Network and Deep Learning)
5.2.12特征选择
5.3主流数据深度分析工具
5.3.1Mahout系统
5.3.2Spark MLlib系统
5.3.3Weka系统
5.3.4R系统与语言
5.3.5SPSS与Matlab
5.3.6深度学习工具TensorFlow, Caffe
5.4思考题
6流数据处理
6.1流数据处理应用
6.2流式处理(Stream Processing)和批处理(Batch Processing)的区别
6.3流数据模型
6.4流数据上的查询实例
6.5流数据处理系统的查询处理
6.5.1内存需求(Memory Requirement)
6.5.2近似查询结果(Approximate Query Answering)
6.5.3滑动窗口(Sliding Window)
6.5.4查询数据流的历史数据(Referencing Past Data)
6.5.5多查询优化与查询计划的适应性
6.5.6堵塞操作符(Blocking Operator)
6.5.7数据流里的时间戳(Timestamps in Stream)
6.5.8批处理(Batch Processing)、采样(Sampling)、梗概(Synopsis)
6.6查询处理的基础算法
6.6.1随机采样(Random Sample)
6.6.2梗概技术(Sketch Technique)
6.6.3直方图(Histogram)
6.6.4小波(Wavelet)分析
6.6.5布隆过滤器(Bloom Filter)
6.6.6计数最小梗概(Count-Min Sketch)
6.7流数据处理系统
6.7.1Storm简介
6.7.2其它流数据处理系统
6.8思考题
7文本分析
7.1文本分析的意义
7.2文本分析的任务和方法
7.2.1句子切分、分词、词性标注、语法分析
7.2.2文本索引和检索(Indexing and Search)
7.2.3文本分类(Text Classification)
7.2.4文本聚类(Text Clustering)
7.2.5文档摘要(Document Summarization)
7.2.6主题抽取(Topic Theme Extraction)
7.2.7命名实体识别、概念抽取和关系抽取、事实抽取
7.2.8情感分析(Sentiment Analysis)
7.2.9其它文本分析任务与方法
7.3文本分析可视化
7.3.1标记云(Tag Cloud,也叫Word Cloud)
7.3.2词共现分析与可视化(Co-Word Analysis & Visualization)
7.4文本分析软件和工具
7.4.1NLTK
7.4.2OPEN NLP
7.4.3Stanford NLP
7.4.4LingPipe
7.4.5GATE
7.4.6UIMA
7.4.7Netlytic
7.4.8WordNet和SentiWordNet
7.5思考题
8社交网络分析
8.1简介
8.2社交网络分析的应用
8.3社交网络分析方法
8.3.1网络的一些基本属性
8.3.2复杂网络的一些拓扑特性
8.3.3节点的中心性(Centrality)
8.3.4可达性、路径、最短路径、最小生成树
8.3.5凝聚子群与社区检测
8.3.6链路预测、信息扩散与影响力分析
8.3.7核心-边缘分析
8.3.8位置和角色、子图查询、网络模体
8.4软件
8.4.1Gephi
8.4.2UCINET
8.4.3Pajek
8.4.4NodeXL
8.5思考题
9语义网与知识图谱
9.1语义网(Semantic Web)的基本概念
9.2语义网体系结构
9.3语义网的关键技术
9.3.1XML(Extensible Markup Language, 扩展标记语言)
9.3.2RDF(Resource Description Framework, 资源描述框架)
9.3.3OWL与本体Ontology
9.4知识库与知识图谱
9.4.1知识库与Linked Open Data
9.4.2知识图谱
9.4.3知识图谱的创建
9.4.4知识图谱的挖掘
9.5思考题
10数据可视化、可视分析、与探索式数据分析
10.1什么是可视化
10.2可视化的强大威力
10.3可视化的一般过程
10.4科学可视化与信息可视化
10.5数据可视化的原则
10.6可视化实例
10.6.1散点图与直方图
10.6.2线图
10.6.3柱状图与饼图
10.6.4解剖图、切片、等值面
10.6.5表现层次关系:树、圆锥树、Tree Map、信息立方体
10.6.6地图(Map)和地球(Earth)
10.6.7社交网络(Social network)
10.6.8堆叠的河流(Stacked River)
10.6.9多维数据的展示
10.6.10特色可视化应用
10.7可视化的挑战和趋势
10.8可视分析技术
10.9探索式数据分析
10.10探索式数据分析的作用
10.11探索式数据分析的基本方法
10.11.1了解变量的分布情况、计算统计值
10.11.2了解变量之间的关系
10.11.3了解因子变量的相对重要性
10.11.4在探索式数据分析中对高维数据进行降维
10.11.5探索式数据分析案例
10.12可视化工具介绍
10.12.1D3.js
10.12.2Processing.js
10.12.3Protovis
10.12.4Prefuse
10.12.5Matplotlib
10.13思考题
应用篇 //
11云计算平台
11.1云计算的概念与特点
11.1.1云计算的概念
11.1.2云计算的特点
11.1.3云计算与并行计算、分布式计算、集群计算、网格计算的区别与联系
11.2云计算与大数据处理的关系
11.3云计算类型与典型系统
11.4虚拟化技术与数据中心
11.4.1服务器虚拟化
11.4.2存储虚拟化
11.4.3网络虚拟化
11.4.4数据中心
11.5主流产品与特点
11.5.1VMWare
11.5.2Hyper-V
11.5.3KVM
11.5.4XEN
11.6Openstack开源虚拟化平台
11.7主流厂商的云计算产品和服务
11.7.1Amazon
11.7.2微软
11.7.3Google
11.7.4阿里云
11.8思考题
12Hadoop及其生态系统
12.1Hadoop简介
12.2Hadoop分布式文件系统
12.2.1写文件
12.2.2读文件
12.2.3Secondary NameNode介绍
12.3MapReduce工作原理
12.3.1MapReduce执行引擎
12.3.2MapReduce计算模型
12.3.3Hadoop 1.0的应用
12.4Hadoop生态系统
12.4.1Hive原理
12.5Hadoop2.0版(YARN)
12.5.1Hadoop 1.0的优势和局限
12.5.2业务需求推动持续创新
12.5.3YARN原理
12.5.4YARN的优势
12.6Hadoop 2.0上的交互式查询引擎Hive on Tez
12.6.1Tez原理
12.6.2把数据处理逻辑建模成一个DAG连接起来的任务
12.6.3Tez(DAG Job)相对于MapReduce(Job)的优势
12.7Hadoop平台上的列存储技术
12.7.1列存储的优势
12.7.2RCFile
12.7.3ORC存储格式
12.7.4Parquet文件格式
12.8思考题
13Spark及其生态系统
13.1简介
13.1.1Spark软件架构
13.1.2Spark的主要优势
13.2Hadoop的局限和Spark的诞生
13.3Spark特性总结
13.4Spark生态系统
13.5RDD及其处理
13.5.1DAG、宽依赖与窄依赖
13.5.2DAG的调度执行
13.5.3共享变量(Shared Variable)
13.6Spark SQL
13.6.1SparkSQL应用程序
13.7Spark应用案例
13.7.1Spark的其它应用案例
13.8总结
13.9思考题
14Python与数据科学
14.1Python概述
14.2Python开发环境配置(Setup)
14.3通过一系列实例学习Python(Learn Python Step by Step with Examples)
14.3.1变量/常量/注释
14.3.2数据类型
14.3.3运算符及其优先级、表达式
14.3.4顺序、分支、循环程序结构
14.3.5函数、库函数的使用
14.3.6类和对象、对象的构造、对象摧毁、封装和继承、重写
14.3.7异常处理
14.3.8正则表达式
14.3.9文件I/O(输入输出)
14.4第三方库和实例(3th Party Libraries and Examples)
14.4.1Pandas介绍与实例
14.4.2scikit-learn介绍与实例
14.4.3深度学习库Keras(基于Tensorflow、Theano)
14.4.4Matplotlib 介绍与实例
14.4.5NetworkX介绍与实例
14.4.6NLTK介绍与实例
14.5思考题
15评测基准
15.1评测基准概述
15.1.1评测基准的目的和作用
15.1.2评测基准的构成
15.1.3评测基准的分类
15.1.4评测基准的选择
15.2功能性评测基准Daytona 100TB Gray Sort
15.3面向OLTP应用的评测基准
15.3.1TPC-C标准
15.3.2TPC-C的数据模型
15.3.3TPC-C的负载
15.3.4TPC-C的性能指标
15.4面向OLAP应用的评测基准
15.4.1TPC-H标准
15.4.2TPC-H的数据模型
15.4.3TPC-H的负载
15.4.43个测试
15.4.5TPC-H的性能指标
15.4.6数据生成器和查询负载生成器
15.4.7TPC-DS简介
15.5面向大数据应用的评测基准
15.5.1面向数据服务的评测基准 - YCSB
15.5.2面向大数据分析处理的评测基准 - Big Bench和BigDataBench
15.5.3其它评测基准
15.6思考题
16数据科学案例
16.1Google流感趋势预测(Google Flu Trends)
16.2Target利用数据分析预测到一个高中女生的怀孕
16.3互联网舆情监控与管理
16.4投资与信用
16.4.1大数据指数基金
16.4.2基于大数据的信用评价
16.5IBM Watson计算机与医疗
16.6奥巴马竞选团队利用大数据分析技术,帮助奥巴马竞选连任成功
16.7数据科学与科学研究
16.8奥斯卡大奖预测、总统选举预测、世界杯预测
16.9用户画像与精准广告
16.10自动短文评分(Automatic Essay Scoring)
16.11数据产品(Data Product)
16.12其它数据科学案例
16.13思考题
17数据科学实践
17.1概述
17.1.1算法交易和量化交易
17.1.2量化交易系统的四大模块
17.1.3交易策略的研发、测试、上线过程
17.1.4量化交易系统的评价指标
17.2工具和平台介绍
17.2.1Zipline函数库介绍
17.2.2Quantopian介绍
17.3基于规则的交易策略
17.3.1移动平均交叉交易策略
17.3.2均值回归交易策略
17.4基于机器学习的交易策略
17.4.1基于Random Forest分类器的交易策略(分类)
17.4.2基于SVM回归模型的交易策略(回归)
17.5关于若干专题的讨论
17.5.1股票价格预测的基础数据
17.5.2特征选择(Feature Selection)
17.5.3模型的组合(Model Combination)
17.5.4离线的模型训练(Offline Model Training)
17.5.5使用大数据处理引擎处理大数据(using of Big Data Engine)
17.5.6在交易模型中集成情感分析结果(Integrating Sentiment Analysis into Trading Model)
17.6思考题
18附录
18.1参考文献
18.2专有名词