數(shù)據(jù)科學并行計算(數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)叢書)
定 價:49 元
叢書名:數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)叢書
- 作者:白琰冰
- 出版時間:2021/5/1
- ISBN:9787300290591
- 出 版 社:中國人民大學出版社
- 中圖法分類:TP274
- 頁碼:288
- 紙張:
- 版次:1
- 開本:16
本書通俗地講解數(shù)據(jù)科學與并行計算的基本概念、方法和原理,系統(tǒng)地介紹基于典型大數(shù)據(jù)場景的并行計算解決思路,同時涵蓋常用的數(shù)據(jù)并行計算工具的操作實踐,使讀者知其然更知其所以然。
本書的特色在于:注重對大數(shù)據(jù)科學方法核心應用的講解,突出以并行計算思維解決大數(shù)據(jù)場景問題的案例教學;诘湫痛髷(shù)據(jù)場景案例數(shù)據(jù)集,循序漸進地引導讀者利用Parallel、Sparklyr、Dask和PySpark等主流并行計算工具實現(xiàn)數(shù)據(jù)的清洗、轉(zhuǎn)換、描述和建模分析。幫助讀者系統(tǒng)全面地構(gòu)建數(shù)據(jù)科學的基本知識體系,領(lǐng)會數(shù)據(jù)并行計算方法的精髓,掌握不同編程語言和并行計算工具針對不同規(guī)模數(shù)據(jù)集的優(yōu)缺點,能夠利用并行計算工具解決實際的數(shù)據(jù)分析問題。
白琰冰,中國人民大學統(tǒng)計學院數(shù)據(jù)科學與大數(shù)據(jù)統(tǒng)計系講師,碩士生導師,中國人民大學杰出青年學者,北京大數(shù)據(jù)協(xié)會理事會理事。主要開設課程包括大數(shù)據(jù)分布式計算、并行計算與軟件設計、統(tǒng)計學。
第一部分 數(shù)據(jù)科學并行計算基礎(chǔ)
第1 章 并行計算基礎(chǔ)知識
1.1 什么是并行計算
1.2 并行計算的起源
1.2.1 為什么要進行并行計算
1.2.2 如何解決大規(guī)模數(shù)據(jù)對計算能力的需求問題
1.3 有關(guān)并行計算的基本概念
1.3.1 并發(fā)計算、分布式計算的概念
1.3.2 核、集群、中央處理器的概念
1.3.3 集群計算、對等計算、網(wǎng)格計算、云計算和普適計算的概念
1.3.4 并行計算中的常用術(shù)語
1.4 并行計算的性能評價方法
1.5 并行計算的數(shù)據(jù)分解方法及計算模型
1.5.1 分解問題為獨立塊
1.5.2 并行計算模型
習題
第2 章 大數(shù)據(jù)基礎(chǔ)知識
2.1 大數(shù)據(jù)簡介
2.1.1 什么是大數(shù)據(jù)
2.1.2 大數(shù)據(jù)的3 個V
2.1.3 大數(shù)據(jù)相關(guān)概念和術(shù)語
2.1.4 大數(shù)據(jù)處理系統(tǒng)
2.1.5 Spark 框架的特性
2.1.6 Spark 生態(tài)
2.1.7 Spark 部署方式
2.2 Hadoop 和Spark 基礎(chǔ)知識
2.2.1 什么是Hadoop
2.2.2 Spark 產(chǎn)生的背景
2.2.3 Spark 的優(yōu)點
2.2.4 Spark 的三大概念
2.2.5 為什么要選擇Spark
2.3 在阿里云服務器安裝和配置Hadoop 和Spark
2.3.1 Hadoop 的安裝和配置
2.3.2 Spark 的安裝和配置
2.4 Linux 基礎(chǔ)知識
2.4.1 Linux Shell 介紹
2.4.2 Linux 常用目錄介紹
2.4.3 Linux 常用命令
2.4.4 vim 基本操作
習題
第二部分 R 語言并行計算
第3 章 R 語言并行計算核心方法
3.1 并行計算的R 包
3.2 parallel 包并行計算
3.2.1 parallel 包的基礎(chǔ)知識
3.2.2 parallel 包的核心功能
3.2.3 初始化節(jié)點
3.2.4 數(shù)據(jù)分塊
3.3 foreach 包和future 包并行計算
3.3.1 foreach 包
3.3.2 foreach 包和parallel 包的后端
3.3.3 future 包和future.apply 包
3.3.4 調(diào)度和負載平衡
3.4 隨機數(shù)和結(jié)果可重復性
3.4.1 結(jié)果是可重復的嗎
3.4.2 并行計算中的RNG
3.4.3 foreach 包和future.apply 包中的結(jié)果可重復性
3.4.4 小結(jié)
習題
第4 章 使用R 中的sparklyr 包操作
4.1 sparklyr 基礎(chǔ)知識
4.1.1 什么是sparklyr
4.1.2 sparklyr 的安裝與工作流程
4.2 Spark 中的數(shù)據(jù)
4.2.1 向Spark 傳輸數(shù)據(jù)
4.2.2 tibble 與Data Frame
4.2.3 展示Spark 中的數(shù)據(jù)集
4.2.4 compute() 與collect()
4.3 sparklyr 的dplyr 接口
4.3.1 dplyr 接口簡介
4.3.2 選擇目標列
4.3.3 篩選行
4.3.4 對行排序
4.3.5 轉(zhuǎn)換或添加列
4.3.6 計算匯總函數(shù)
4.3.7 其他常用功能
4.4 sparklyr 的特征轉(zhuǎn)換接口
4.4.1 dplyr 接口的局限
4.4.2 MLib 接口
4.4.3 Spark DataFrame 接口
4.5 案例:使用MLib 接口進行機器學習
4.5.1 MLib 中的機器學習函數(shù)
4.5.2 機器學習案例
習題
第5 章 R 中的可擴展數(shù)據(jù)處理
5.1 R 中的可擴展數(shù)據(jù)處理簡介
5.1.1 什么是可伸縮的數(shù)據(jù)處理
5.1.2 使用bigmemory 項目處理“核外”對象
5.1.3 big.matrix 的復制
5.2 使用大內(nèi)存處理和分析數(shù)據(jù)
5.2.1 bigmemory 軟件包套件
5.2.2 拆分、計算和合并
5.2.3 使用Tidyverse 可視化結(jié)果
5.2.4 bigmemory 的局限性
5.3 使用iotools 處理大型文件
5.3.1 數(shù)據(jù)的分塊處理
5.3.2 初識iotools: 導入數(shù)據(jù)
5.3.3 chunk.apply 的巧妙運用
5.4 案例:抵押貸款數(shù)據(jù)的基礎(chǔ)分析
5.4.1 不同人種的抵押貸款的數(shù)量
5.4.2 數(shù)據(jù)缺失與其他變量的關(guān)系
5.4.3 不同人種貸款數(shù)量的變化趨勢
5.4.4 鄉(xiāng)村與城鎮(zhèn)的貸款變化趨勢
5.4.5 收入與聯(lián)邦擔保貸款
5.4.6 小結(jié)
習題
第三部分 Python 語言并行計算
第6 章 使用Python 進行Dask并行編程
6.1 Dask 基礎(chǔ)知識
6.1.1 Dask 簡介
6.1.2 Dask 的主要優(yōu)點
6.1.3 安裝Dask
6.2 Dask 對不同數(shù)據(jù)結(jié)構(gòu)的操作
6.2.1 Dask 對Array 的操作
6.2.2 Dask 對DataFrame 的操作
6.2.3 Dask 對Bag 的操作
6.3 在大數(shù)據(jù)集上訓練
6.3.1 安裝Python 包
6.3.2 導入包
6.3.3 創(chuàng)建隨機數(shù)據(jù)集
6.3.4 生成數(shù)據(jù)集
6.3.5 K-means 計算
6.3.6 使用Dask 可視化示例
6.4 并行及分布式機器學習
6.4.1 生成隨機數(shù)據(jù)
6.4.2 支持向量機
6.5 分布式部署示例
6.5.1 Dask 分布式簡介
6.5.2 啟動主節(jié)點
6.5.3 啟動工作節(jié)點
6.5.4 運行Dask 分布式示例
習題
第7 章 PySpark 基礎(chǔ)操作
7.1 PySpark 簡介
7.1.1 PySpark 相關(guān)概念
7.1.2 PySpark 初步操作
7.1.3 Python 中的匿名函數(shù)
7.2 PySpark RDD 相關(guān)編程
7.2.1 什么是RDD
7.2.2 創(chuàng)建RDD 的方法
7.2.3 RDD 的轉(zhuǎn)換操作
7.2.4 RDD 的執(zhí)行操作
7.2.5 創(chuàng)建RDD 對的方法
7.2.6 RDD 對的執(zhí)行操作
7.3 PySpark 的DataFrame
7.3.1 PySpark 數(shù)據(jù)流簡介
7.3.2 SparkSession——DataFrame API 的入口點
7.3.3 在PySpark 中創(chuàng)建數(shù)據(jù)流
7.3.4 DataFrame 的轉(zhuǎn)換操作
7.3.5 DataFrame 的執(zhí)行操作
7.3.6 有條件的DataFrame轉(zhuǎn)換操作
7.3.7 在DataFrame 中實現(xiàn)用戶自定義函數(shù)
7.3.8 與ArrayType 列進行交互
7.4 提升DataFrame 操作的性能
7.4.1 提高數(shù)據(jù)導入的性能
7.4.2 集群尺寸建議
7.4.3 查看Spark 執(zhí)行計劃
7.4.4 限制shuffling
7.5 在PySpark 中使用SQL 查詢
7.5.1 DataFrame API vs. SQL查詢
7.5.2 執(zhí)行SQL 語句
7.5.3 DataFrame 連接操作
7.6 案例:房屋售價探索性分析
7.6.1 讀入并檢查數(shù)據(jù)
7.6.2 房屋售價的描述統(tǒng)計量
7.6.3 使用可視化方式查看數(shù)據(jù)
習題
第8 章 PySpark 特征工程
8.1 數(shù)據(jù)科學思維簡介
8.2 數(shù)據(jù)清洗
8.2.1 什么是數(shù)據(jù)清洗
8.2.2 使用Spark 進行數(shù)據(jù)清洗的優(yōu)勢
8.2.3 使用Spark Schema 驗證數(shù)據(jù)集
8.2.4 使用數(shù)據(jù)管道進行轉(zhuǎn)換操作
8.2.5 驗證數(shù)據(jù)的質(zhì)量
8.2.6 使用數(shù)據(jù)框進行分析
8.3 單特征預處理
8.3.1 數(shù)據(jù)標準化
8.3.2 缺失值處理
8.3.3 提取日期特征
8.3.4 二值化和桶化
8.3.5 OneHot 編碼
8.4 多特征預處理
8.4.1 特征生成
8.4.2 特征提取
8.4.3 文本數(shù)據(jù)特征提取
8.5 案例:航班數(shù)據(jù)預處理
8.5.1 讀取數(shù)據(jù)
8.5.2 刪除飛機編號字段
8.5.3 刪除delay 字段的缺失值
8.5.4 創(chuàng)建衍生字段
8.5.5 將輸入字段合并為一個向量
8.5.6 對航空公司字段進行OneHot編碼
習題
第9 章 PySpark 機器學習
9.1 機器學習與Spark
9.2 使用Spark ML 中的分類模型
9.2.1 數(shù)據(jù)集劃分
9.2.2 決策樹
9.2.3 邏輯回歸
9.2.4 分類模型評價
9.2.5 使用集成模型進行分類
9.3 使用Spark ML 中的回歸模型
9.3.1 線性回歸模型
9.3.2 隨機森林回歸
9.3.3 回歸模型評價
9.3.4 通過離散化改進模型性能
9.3.5 使用正則化方法防止過擬合
9.4 使用Spark MLlib 進行機器學習
9.4.1 PySpark MLlib 概述
9.4.2 協(xié)同過濾
9.4.3 分類
9.4.4 聚類
9.5 模型選擇
9.5.1 管道
9.5.2 交叉驗證
9.5.3 網(wǎng)格尋優(yōu)
習題