數(shù)據(jù)科學(xué)是一門正在興起的學(xué)科,國(guó)內(nèi)外各個(gè)大學(xué)開始開設(shè)數(shù)據(jù)科學(xué)課程或類似課程,并且編寫配套教材。我們的教材在內(nèi)容上按照四大模塊進(jìn)行組織,分別是數(shù)據(jù)科學(xué)基礎(chǔ)、數(shù)據(jù)以及數(shù)據(jù)上的計(jì)算(分析)、數(shù)據(jù)處理基礎(chǔ)設(shè)施/平臺(tái)和工具、以及大數(shù)據(jù)的案例和實(shí)踐。我們認(rèn)為這樣的組織,使得內(nèi)容體系相對(duì)完整。
覃雄派(1971?),男,博士,中國(guó)人民大學(xué)信息學(xué)院講師、碩士生導(dǎo)師,目前主要從事高性能數(shù)據(jù)庫、大數(shù)據(jù)分析、信息檢索等方面的研究工作,主持1項(xiàng)國(guó)家自然科學(xué)基金面上項(xiàng)目,參與多項(xiàng)國(guó)家863計(jì)劃、973計(jì)劃及國(guó)家自然科學(xué)基金項(xiàng)目,在國(guó)內(nèi)外期刊和會(huì)議上發(fā)表論文20余篇。
陳躍國(guó)(1978?),男,博士,中國(guó)人民大學(xué)信息學(xué)院副教授、博士生導(dǎo)師,中國(guó)計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員,數(shù)據(jù)庫專家委員會(huì)委員,大數(shù)據(jù)專家委員會(huì)通信委員,F(xiàn)rontiers of Computer Science青年編委,主要研究方向?yàn)榇髷?shù)據(jù)分析系統(tǒng)和語義搜索。主持國(guó)家自然科學(xué)基金項(xiàng)目2項(xiàng),廣東省科技應(yīng)用重大專項(xiàng)1項(xiàng),參與多項(xiàng)國(guó)家核高基(核心電子器件、高端通用芯片及基礎(chǔ)軟件產(chǎn)品)、973計(jì)劃、863計(jì)劃項(xiàng)目,近年來在SIGMOD、SIGIR、ICDE、AAAI、IEEE TKDE、WWW等國(guó)際重要期刊和會(huì)議上發(fā)表論文30余篇
杜小勇(1963?),男,博士,中國(guó)人民大學(xué)信息學(xué)院教授,博士生導(dǎo)師,教育部數(shù)據(jù)工程與知識(shí)工程重點(diǎn)實(shí)驗(yàn)室主任,中國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)士,《大數(shù)據(jù)》期刊編委會(huì)副主任。主要研究方向?yàn)橹悄苄畔z索、高性能數(shù)據(jù)庫、知識(shí)工程。主持和參與多項(xiàng)國(guó)家核高基(核心電子器件、高端通用芯片及基礎(chǔ)軟件產(chǎn)品)、973計(jì)劃、863計(jì)劃、國(guó)家自然科學(xué)基金項(xiàng)目,近年來在SIGMOD、VLDB、AAAI、IEEE TKDE等國(guó)際重要期刊和會(huì)議上發(fā)表論文百余篇。
理論篇//
1數(shù)據(jù)科學(xué)概論
1.1數(shù)據(jù)科學(xué)的定義
1.2數(shù)據(jù)科學(xué)的定位
1.2.1數(shù)據(jù)科學(xué)與數(shù)據(jù)庫、大數(shù)據(jù)分析的關(guān)系
1.2.2數(shù)據(jù)科學(xué)與基于數(shù)據(jù)的決策的關(guān)系
1.3數(shù)據(jù)科學(xué)家
1.3.1數(shù)據(jù)科學(xué)家的技能
1.4數(shù)據(jù)科學(xué)的基本原則(Principle)
1.4.1原則1:數(shù)據(jù)分析可以劃分成一系列明確的階段
1.4.2原則2:描述性分析與預(yù)測(cè)性分析
1.4.3原則3:實(shí)體的相似度
1.4.4原則4:模型的泛化能力
1.4.5原則5:分析結(jié)果的評(píng)估與特定應(yīng)用場(chǎng)景有關(guān)
1.4.6原則6:相關(guān)性不同于因果關(guān)系
1.4.7原則7:通過并行處理提高數(shù)據(jù)處理(分析)速度
1.5數(shù)據(jù)處理流程:時(shí)間維度的縱向視角
1.6數(shù)據(jù)處理系統(tǒng)的架構(gòu):系統(tǒng)維度的計(jì)算視角
1.6.1數(shù)據(jù)處理系統(tǒng)的層次架構(gòu)
1.6.2數(shù)據(jù)處理系統(tǒng)的Lambda架構(gòu)
1.7數(shù)據(jù)的多樣性:數(shù)據(jù)類型維度的橫向視角
1.8數(shù)據(jù)價(jià)值的挖掘:價(jià)值維度的價(jià)值提升視角
1.9思考題
2OLTP與數(shù)據(jù)服務(wù)
2.1面向OLTP應(yīng)用的RDBMS數(shù)據(jù)庫技術(shù)
2.1.1關(guān)系數(shù)據(jù)庫技術(shù)與SQL查詢語言
2.1.2利用索引加快數(shù)據(jù)訪問
2.1.3數(shù)據(jù)庫的事務(wù)處理、恢復(fù)技術(shù)與安全保證
2.1.4并行數(shù)據(jù)庫與分布式數(shù)據(jù)庫
2.2面向數(shù)據(jù)服務(wù)的NoSQL數(shù)據(jù)庫技術(shù)
2.2.1NoSQL數(shù)據(jù)庫技術(shù)
2.2.2CAP理論
2.2.3Key-Value數(shù)據(jù)庫
2.2.4Column Family數(shù)據(jù)庫
2.2.5Document數(shù)據(jù)庫
2.2.6Graph數(shù)據(jù)庫
2.3NewSQL數(shù)據(jù)庫技術(shù)
2.3.1VoltDB數(shù)據(jù)庫
2.3.2Google Spanner數(shù)據(jù)庫
2.4思考題
3OLAP與結(jié)構(gòu)化數(shù)據(jù)分析
3.1聯(lián)機(jī)分析處理(OLAP)與結(jié)構(gòu)化數(shù)據(jù)分析
3.1.1從操作型的業(yè)務(wù)數(shù)據(jù)庫向數(shù)據(jù)倉庫抽取、轉(zhuǎn)換和裝載數(shù)據(jù)
3.1.2數(shù)據(jù)倉庫與星型模型
3.1.3聯(lián)機(jī)分析處理OLAP
3.1.4三種類型的OLAP系統(tǒng)
3.2高性能OLAP系統(tǒng)的關(guān)鍵技術(shù)
3.2.1列存儲(chǔ)技術(shù)
3.2.2位圖索引技術(shù)
3.2.3內(nèi)存數(shù)據(jù)庫技術(shù)
3.2.4MPP并行數(shù)據(jù)庫
3.3結(jié)構(gòu)化數(shù)據(jù)分析工具介紹
3.3.1MPP(Shared-Nothing)數(shù)據(jù)庫、基于列存儲(chǔ)的關(guān)系數(shù)據(jù)庫
3.3.2SQL on Hadoop系統(tǒng)
3.3.3性能比較
3.4思考題
4數(shù)據(jù)清洗與數(shù)據(jù)集成
4.1數(shù)據(jù)抽取、轉(zhuǎn)換與裝載
4.2數(shù)據(jù)清洗
4.2.1數(shù)據(jù)清洗的意義
4.2.2數(shù)據(jù)異常的不同類型
4.2.3數(shù)據(jù)質(zhì)量
4.2.4數(shù)據(jù)清洗的任務(wù)和過程
4.2.5數(shù)據(jù)清洗的具體方法
4.3數(shù)據(jù)集成
4.3.1數(shù)據(jù)集成
4.3.2數(shù)據(jù)集成需要解決的問題異構(gòu)性(Heterogeneity)
4.3.3數(shù)據(jù)集成的模式
4.3.4實(shí)體解析(Entity Resolution)
4.4思考題
5數(shù)據(jù)的深度分析(數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí))
5.1機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘簡(jiǎn)介
5.2主流機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘方法
5.2.1決策樹
5.2.2聚類算法K-Means
5.2.3分類算法支持向量機(jī)SVM
5.2.4關(guān)聯(lián)規(guī)則分析(Association Rule Analysis)Apriori算法
5.2.5EM(ExpectationMaximization)算法
5.2.6協(xié)同過濾推薦算法(Collaborative Filtering Recommendation)
5.2.7kNN(k近鄰)算法
5.2.8樸素Bayes(Naive Bayes)算法
5.2.9AdaBoost算法
5.2.10線性回歸、Logistic回歸
5.2.11神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)(Neural Network and Deep Learning)
5.2.12特征選擇
5.3主流數(shù)據(jù)深度分析工具
5.3.1Mahout系統(tǒng)
5.3.2Spark MLlib系統(tǒng)
5.3.3Weka系統(tǒng)
5.3.4R系統(tǒng)與語言
5.3.5SPSS與Matlab
5.3.6深度學(xué)習(xí)工具TensorFlow, Caffe
5.4思考題
6流數(shù)據(jù)處理
6.1流數(shù)據(jù)處理應(yīng)用
6.2流式處理(Stream Processing)和批處理(Batch Processing)的區(qū)別
6.3流數(shù)據(jù)模型
6.4流數(shù)據(jù)上的查詢實(shí)例
6.5流數(shù)據(jù)處理系統(tǒng)的查詢處理
6.5.1內(nèi)存需求(Memory Requirement)
6.5.2近似查詢結(jié)果(Approximate Query Answering)
6.5.3滑動(dòng)窗口(Sliding Window)
6.5.4查詢數(shù)據(jù)流的歷史數(shù)據(jù)(Referencing Past Data)
6.5.5多查詢優(yōu)化與查詢計(jì)劃的適應(yīng)性
6.5.6堵塞操作符(Blocking Operator)
6.5.7數(shù)據(jù)流里的時(shí)間戳(Timestamps in Stream)
6.5.8批處理(Batch Processing)、采樣(Sampling)、梗概(Synopsis)
6.6查詢處理的基礎(chǔ)算法
6.6.1隨機(jī)采樣(Random Sample)
6.6.2梗概技術(shù)(Sketch Technique)
6.6.3直方圖(Histogram)
6.6.4小波(Wavelet)分析
6.6.5布隆過濾器(Bloom Filter)
6.6.6計(jì)數(shù)最小梗概(Count-Min Sketch)
6.7流數(shù)據(jù)處理系統(tǒng)
6.7.1Storm簡(jiǎn)介
6.7.2其它流數(shù)據(jù)處理系統(tǒng)
6.8思考題
7文本分析
7.1文本分析的意義
7.2文本分析的任務(wù)和方法
7.2.1句子切分、分詞、詞性標(biāo)注、語法分析
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命名實(shí)體識(shí)別、概念抽取和關(guān)系抽取、事實(shí)抽取
7.2.8情感分析(Sentiment Analysis)
7.2.9其它文本分析任務(wù)與方法
7.3文本分析可視化
7.3.1標(biāo)記云(Tag Cloud,也叫Word Cloud)
7.3.2詞共現(xiàn)分析與可視化(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社交網(wǎng)絡(luò)分析
8.1簡(jiǎn)介
8.2社交網(wǎng)絡(luò)分析的應(yīng)用
8.3社交網(wǎng)絡(luò)分析方法
8.3.1網(wǎng)絡(luò)的一些基本屬性
8.3.2復(fù)雜網(wǎng)絡(luò)的一些拓?fù)涮匦?/p>
8.3.3節(jié)點(diǎn)的中心性(Centrality)
8.3.4可達(dá)性、路徑、最短路徑、最小生成樹
8.3.5凝聚子群與社區(qū)檢測(cè)
8.3.6鏈路預(yù)測(cè)、信息擴(kuò)散與影響力分析
8.3.7核心-邊緣分析
8.3.8位置和角色、子圖查詢、網(wǎng)絡(luò)模體
8.4軟件
8.4.1Gephi
8.4.2UCINET
8.4.3Pajek
8.4.4NodeXL
8.5思考題
9語義網(wǎng)與知識(shí)圖譜
9.1語義網(wǎng)(Semantic Web)的基本概念
9.2語義網(wǎng)體系結(jié)構(gòu)
9.3語義網(wǎng)的關(guān)鍵技術(shù)
9.3.1XML(Extensible Markup Language, 擴(kuò)展標(biāo)記語言)
9.3.2RDF(Resource Description Framework, 資源描述框架)
9.3.3OWL與本體Ontology
9.4知識(shí)庫與知識(shí)圖譜
9.4.1知識(shí)庫與Linked Open Data
9.4.2知識(shí)圖譜
9.4.3知識(shí)圖譜的創(chuàng)建
9.4.4知識(shí)圖譜的挖掘
9.5思考題
10數(shù)據(jù)可視化、可視分析、與探索式數(shù)據(jù)分析
10.1什么是可視化
10.2可視化的強(qiáng)大威力
10.3可視化的一般過程
10.4科學(xué)可視化與信息可視化
10.5數(shù)據(jù)可視化的原則
10.6可視化實(shí)例
10.6.1散點(diǎn)圖與直方圖
10.6.2線圖
10.6.3柱狀圖與餅圖
10.6.4解剖圖、切片、等值面
10.6.5表現(xiàn)層次關(guān)系:樹、圓錐樹、Tree Map、信息立方體
10.6.6地圖(Map)和地球(Earth)
10.6.7社交網(wǎng)絡(luò)(Social network)
10.6.8堆疊的河流(Stacked River)
10.6.9多維數(shù)據(jù)的展示
10.6.10特色可視化應(yīng)用
10.7可視化的挑戰(zhàn)和趨勢(shì)
10.8可視分析技術(shù)
10.9探索式數(shù)據(jù)分析
10.10探索式數(shù)據(jù)分析的作用
10.11探索式數(shù)據(jù)分析的基本方法
10.11.1了解變量的分布情況、計(jì)算統(tǒng)計(jì)值
10.11.2了解變量之間的關(guān)系
10.11.3了解因子變量的相對(duì)重要性
10.11.4在探索式數(shù)據(jù)分析中對(duì)高維數(shù)據(jù)進(jìn)行降維
10.11.5探索式數(shù)據(jù)分析案例
10.12可視化工具介紹
10.12.1D3.js
10.12.2Processing.js
10.12.3Protovis
10.12.4Prefuse
10.12.5Matplotlib
10.13思考題
應(yīng)用篇 //
11云計(jì)算平臺(tái)
11.1云計(jì)算的概念與特點(diǎn)
11.1.1云計(jì)算的概念
11.1.2云計(jì)算的特點(diǎn)
11.1.3云計(jì)算與并行計(jì)算、分布式計(jì)算、集群計(jì)算、網(wǎng)格計(jì)算的區(qū)別與聯(lián)系
11.2云計(jì)算與大數(shù)據(jù)處理的關(guān)系
11.3云計(jì)算類型與典型系統(tǒng)
11.4虛擬化技術(shù)與數(shù)據(jù)中心
11.4.1服務(wù)器虛擬化
11.4.2存儲(chǔ)虛擬化
11.4.3網(wǎng)絡(luò)虛擬化
11.4.4數(shù)據(jù)中心
11.5主流產(chǎn)品與特點(diǎn)
11.5.1VMWare
11.5.2Hyper-V
11.5.3KVM
11.5.4XEN
11.6Openstack開源虛擬化平臺(tái)
11.7主流廠商的云計(jì)算產(chǎn)品和服務(wù)
11.7.1Amazon
11.7.2微軟
11.7.3Google
11.7.4阿里云
11.8思考題
12Hadoop及其生態(tài)系統(tǒng)
12.1Hadoop簡(jiǎn)介
12.2Hadoop分布式文件系統(tǒng)
12.2.1寫文件
12.2.2讀文件
12.2.3Secondary NameNode介紹
12.3MapReduce工作原理
12.3.1MapReduce執(zhí)行引擎
12.3.2MapReduce計(jì)算模型
12.3.3Hadoop 1.0的應(yīng)用
12.4Hadoop生態(tài)系統(tǒng)
12.4.1Hive原理
12.5Hadoop2.0版(YARN)
12.5.1Hadoop 1.0的優(yōu)勢(shì)和局限
12.5.2業(yè)務(wù)需求推動(dòng)持續(xù)創(chuàng)新
12.5.3YARN原理
12.5.4YARN的優(yōu)勢(shì)
12.6Hadoop 2.0上的交互式查詢引擎Hive on Tez
12.6.1Tez原理
12.6.2把數(shù)據(jù)處理邏輯建模成一個(gè)DAG連接起來的任務(wù)
12.6.3Tez(DAG Job)相對(duì)于MapReduce(Job)的優(yōu)勢(shì)
12.7Hadoop平臺(tái)上的列存儲(chǔ)技術(shù)
12.7.1列存儲(chǔ)的優(yōu)勢(shì)
12.7.2RCFile
12.7.3ORC存儲(chǔ)格式
12.7.4Parquet文件格式
12.8思考題
13Spark及其生態(tài)系統(tǒng)
13.1簡(jiǎn)介
13.1.1Spark軟件架構(gòu)
13.1.2Spark的主要優(yōu)勢(shì)
13.2Hadoop的局限和Spark的誕生
13.3Spark特性總結(jié)
13.4Spark生態(tài)系統(tǒng)
13.5RDD及其處理
13.5.1DAG、寬依賴與窄依賴
13.5.2DAG的調(diào)度執(zhí)行
13.5.3共享變量(Shared Variable)
13.6Spark SQL
13.6.1SparkSQL應(yīng)用程序
13.7Spark應(yīng)用案例
13.7.1Spark的其它應(yīng)用案例
13.8總結(jié)
13.9思考題
14Python與數(shù)據(jù)科學(xué)
14.1Python概述
14.2Python開發(fā)環(huán)境配置(Setup)
14.3通過一系列實(shí)例學(xué)習(xí)Python(Learn Python Step by Step with Examples)
14.3.1變量/常量/注釋
14.3.2數(shù)據(jù)類型
14.3.3運(yùn)算符及其優(yōu)先級(jí)、表達(dá)式
14.3.4順序、分支、循環(huán)程序結(jié)構(gòu)
14.3.5函數(shù)、庫函數(shù)的使用
14.3.6類和對(duì)象、對(duì)象的構(gòu)造、對(duì)象摧毀、封裝和繼承、重寫
14.3.7異常處理
14.3.8正則表達(dá)式
14.3.9文件I/O(輸入輸出)
14.4第三方庫和實(shí)例(3th Party Libraries and Examples)
14.4.1Pandas介紹與實(shí)例
14.4.2scikit-learn介紹與實(shí)例
14.4.3深度學(xué)習(xí)庫Keras(基于Tensorflow、Theano)
14.4.4Matplotlib 介紹與實(shí)例
14.4.5NetworkX介紹與實(shí)例
14.4.6NLTK介紹與實(shí)例
14.5思考題
15評(píng)測(cè)基準(zhǔn)
15.1評(píng)測(cè)基準(zhǔn)概述
15.1.1評(píng)測(cè)基準(zhǔn)的目的和作用
15.1.2評(píng)測(cè)基準(zhǔn)的構(gòu)成
15.1.3評(píng)測(cè)基準(zhǔn)的分類
15.1.4評(píng)測(cè)基準(zhǔn)的選擇
15.2功能性評(píng)測(cè)基準(zhǔn)Daytona 100TB Gray Sort
15.3面向OLTP應(yīng)用的評(píng)測(cè)基準(zhǔn)
15.3.1TPC-C標(biāo)準(zhǔn)
15.3.2TPC-C的數(shù)據(jù)模型
15.3.3TPC-C的負(fù)載
15.3.4TPC-C的性能指標(biāo)
15.4面向OLAP應(yīng)用的評(píng)測(cè)基準(zhǔn)
15.4.1TPC-H標(biāo)準(zhǔn)
15.4.2TPC-H的數(shù)據(jù)模型
15.4.3TPC-H的負(fù)載
15.4.43個(gè)測(cè)試
15.4.5TPC-H的性能指標(biāo)
15.4.6數(shù)據(jù)生成器和查詢負(fù)載生成器
15.4.7TPC-DS簡(jiǎn)介
15.5面向大數(shù)據(jù)應(yīng)用的評(píng)測(cè)基準(zhǔn)
15.5.1面向數(shù)據(jù)服務(wù)的評(píng)測(cè)基準(zhǔn) - YCSB
15.5.2面向大數(shù)據(jù)分析處理的評(píng)測(cè)基準(zhǔn) - Big Bench和BigDataBench
15.5.3其它評(píng)測(cè)基準(zhǔn)
15.6思考題
16數(shù)據(jù)科學(xué)案例
16.1Google流感趨勢(shì)預(yù)測(cè)(Google Flu Trends)
16.2Target利用數(shù)據(jù)分析預(yù)測(cè)到一個(gè)高中女生的懷孕
16.3互聯(lián)網(wǎng)輿情監(jiān)控與管理
16.4投資與信用
16.4.1大數(shù)據(jù)指數(shù)基金
16.4.2基于大數(shù)據(jù)的信用評(píng)價(jià)
16.5IBM Watson計(jì)算機(jī)與醫(yī)療
16.6奧巴馬競(jìng)選團(tuán)隊(duì)利用大數(shù)據(jù)分析技術(shù),幫助奧巴馬競(jìng)選連任成功
16.7數(shù)據(jù)科學(xué)與科學(xué)研究
16.8奧斯卡大獎(jiǎng)?lì)A(yù)測(cè)、總統(tǒng)選舉預(yù)測(cè)、世界杯預(yù)測(cè)
16.9用戶畫像與精準(zhǔn)廣告
16.10自動(dòng)短文評(píng)分(Automatic Essay Scoring)
16.11數(shù)據(jù)產(chǎn)品(Data Product)
16.12其它數(shù)據(jù)科學(xué)案例
16.13思考題
17數(shù)據(jù)科學(xué)實(shí)踐
17.1概述
17.1.1算法交易和量化交易
17.1.2量化交易系統(tǒng)的四大模塊
17.1.3交易策略的研發(fā)、測(cè)試、上線過程
17.1.4量化交易系統(tǒng)的評(píng)價(jià)指標(biāo)
17.2工具和平臺(tái)介紹
17.2.1Zipline函數(shù)庫介紹
17.2.2Quantopian介紹
17.3基于規(guī)則的交易策略
17.3.1移動(dòng)平均交叉交易策略
17.3.2均值回歸交易策略
17.4基于機(jī)器學(xué)習(xí)的交易策略
17.4.1基于Random Forest分類器的交易策略(分類)
17.4.2基于SVM回歸模型的交易策略(回歸)
17.5關(guān)于若干專題的討論
17.5.1股票價(jià)格預(yù)測(cè)的基礎(chǔ)數(shù)據(jù)
17.5.2特征選擇(Feature Selection)
17.5.3模型的組合(Model Combination)
17.5.4離線的模型訓(xùn)練(Offline Model Training)
17.5.5使用大數(shù)據(jù)處理引擎處理大數(shù)據(jù)(using of Big Data Engine)
17.5.6在交易模型中集成情感分析結(jié)果(Integrating Sentiment Analysis into Trading Model)
17.6思考題
18附錄
18.1參考文獻(xiàn)
18.2專有名詞