數(shù)據(jù)科學(xué)導(dǎo)論 Python語言
定 價(jià):79 元
叢書名:數(shù)據(jù)科學(xué)與工程技術(shù)叢書
- 作者:(意) 阿爾貝托·博斯凱蒂, (意) 盧卡·馬薩羅著
- 出版時(shí)間:2020/3/1
- ISBN:9787111646693
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:283
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書首先介紹如何在最新版Python(3.6)中安裝基本的數(shù)據(jù)科學(xué)工具箱;接著,引導(dǎo)你進(jìn)入數(shù)據(jù)改寫和預(yù)處理階段,在其中闡述用于數(shù)據(jù)分析、探索或處理的數(shù)據(jù)加載、變換和修復(fù)等關(guān)鍵的數(shù)據(jù)科學(xué)活動;最后,通過介紹主要的機(jī)器學(xué)習(xí)算法、圖分析技術(shù)、所有可視化工具和部署工具來對數(shù)據(jù)科學(xué)進(jìn)行概述,其中可視化工具更易于向數(shù)據(jù)科學(xué)專家或商業(yè)用戶展示數(shù)據(jù)處理結(jié)果。
“千里之行,始于足下!
—老子(公元前604年—公元前531年)
數(shù)據(jù)科學(xué)屬于一門相對較新的知識領(lǐng)域,它成功融合了線性代數(shù)、統(tǒng)計(jì)建模、可視化、計(jì)算語言學(xué)、圖形分析、機(jī)器學(xué)習(xí)、商業(yè)智能、數(shù)據(jù)存儲和檢索等眾多學(xué)科。
Python編程語言在過去十年已經(jīng)征服了科學(xué)界,現(xiàn)在是數(shù)據(jù)科學(xué)實(shí)踐者不可或缺的工具,也是每一個(gè)有抱負(fù)的數(shù)據(jù)科學(xué)家的工具。Python為數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和算法求解提供了快速、可靠、跨平臺、成熟的開發(fā)環(huán)境。無論之前在數(shù)據(jù)科學(xué)應(yīng)用中阻止你掌握Python的原因是什么,我們將通過簡單的分步化解和示例導(dǎo)向的方法幫你解決,以便你在演示數(shù)據(jù)集和實(shí)際數(shù)據(jù)集上使用直接有效的Python工具。
作為第3版,本書對第2版的內(nèi)容進(jìn)行了更新和擴(kuò)展。以新的Jupyter Notebook和JupyterLab界面(結(jié)合可互換的內(nèi)核,一個(gè)真正的多語言數(shù)據(jù)科學(xué))為基礎(chǔ),本書包含了Numpy、pandas和Scikit-learn等庫的所有主要更新。此外,本書還提供了不少新內(nèi)容,包括新的梯度提升機(jī)器(GBM)算法(XGBoost、LightGBM和CatBoost)、深度學(xué)習(xí)(通過提供基于Tensorflow的Keras解決方案)、漂亮的數(shù)據(jù)可視化(主要使用seaborn)和Web部署(使用bottle)等。
本書首先介紹了如何在新版Python 3.6中安裝基本的數(shù)據(jù)科學(xué)工具箱,本書采用單源方法(這意味著本書代碼也可以在Python 2.7上重用)。接著,將引導(dǎo)你進(jìn)入完整的數(shù)據(jù)改寫和預(yù)處理階段,主要闡述用于數(shù)據(jù)分析、探索或處理的數(shù)據(jù)加載、變換、修復(fù)等關(guān)鍵數(shù)據(jù)科學(xué)活動。后,本書將完成數(shù)據(jù)科學(xué)精要的概述,介紹主要的機(jī)器學(xué)習(xí)算法、圖分析技術(shù)、所有可視化工具和部署工具,其中可視化工具更易于向數(shù)據(jù)科學(xué)專家或商業(yè)用戶展示數(shù)據(jù)處理結(jié)果。
讀者對象
如果你有志于成為數(shù)據(jù)科學(xué)家,并擁有一些數(shù)據(jù)分析和Python方面的基礎(chǔ)知識,本書將助你在數(shù)據(jù)科學(xué)領(lǐng)域快速入門。對于有R語言或MATLAB/GNU Octave編程經(jīng)驗(yàn)的數(shù)據(jù)分析人員,本書也可以作為一個(gè)全面的參考書,提高他們在數(shù)據(jù)操作和機(jī)器學(xué)習(xí)方面的技能。
本書內(nèi)容
第1章介紹Jupyter Notebook,演示怎樣使用教程中的數(shù)據(jù)。
第2章介紹所有關(guān)鍵的數(shù)據(jù)操作和轉(zhuǎn)換技術(shù),重點(diǎn)介紹數(shù)據(jù)改寫的佳實(shí)踐。
第3章討論所有可能改進(jìn)數(shù)據(jù)科學(xué)項(xiàng)目結(jié)果的操作,使讀者能夠進(jìn)行數(shù)據(jù)操作。
第4章介紹Scikit-learn庫中重要的機(jī)器學(xué)習(xí)算法。向讀者展示具體的實(shí)踐應(yīng)用,以及為了使每種學(xué)習(xí)技術(shù)獲得佳效果,應(yīng)重點(diǎn)檢查什么和調(diào)整哪些參數(shù)。
第5章為你提供基礎(chǔ)和中圖形表示技術(shù),這對復(fù)雜數(shù)據(jù)結(jié)構(gòu)和機(jī)器學(xué)習(xí)所得結(jié)果的表示和視覺理解是必不可少的。
第6章向讀者提供處理社交關(guān)系和交互數(shù)據(jù)實(shí)用而有效的技術(shù)。
第7章演示了如何從零開始構(gòu)建卷積神經(jīng)網(wǎng)絡(luò),介紹了行業(yè)內(nèi)增強(qiáng)深度學(xué)習(xí)模型的所有工具,解釋了遷移學(xué)習(xí)的工作原理,以及如何使用遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類和時(shí)間序列預(yù)測。
第8章介紹了一種處理數(shù)據(jù)的新方法—水平縮放大數(shù)據(jù)。這意味著要運(yùn)行安裝了Hadoop和Spark框架的機(jī)器集群。
附錄包括一些Python示例和說明,重點(diǎn)介紹Python語言的主要特點(diǎn),這些都是從事數(shù)據(jù)科學(xué)工作必須了解的。
閱讀準(zhǔn)備
為了充分利用本書,讀者需要具備以下知識:
熟悉基本的Python語法和數(shù)據(jù)結(jié)構(gòu)(比如,列表和字典)。
具有數(shù)據(jù)分析基礎(chǔ)知識,特別是關(guān)于描述性統(tǒng)計(jì)方面的知識。
通過閱讀本書,也可以幫你培養(yǎng)這兩方面的技能,盡管本書沒有過多地介紹其中的細(xì)節(jié),而只提供了一些基本的技術(shù),數(shù)據(jù)科學(xué)家為了成功運(yùn)行其項(xiàng)目必須了解這些技術(shù)。
你還需要做好以下準(zhǔn)備:
一臺裝有Windows、MacOS或Linux操作的計(jì)算機(jī),至少8GB的內(nèi)存(如果你的計(jì)算機(jī)內(nèi)存只有4 GB,還是可以運(yùn)行本書大部分示例的)。
如果加速第7章中的計(jì)算,好安裝一個(gè)GPU。
安裝Python 3.6,通過Anaconda來安裝(http://www.anaconda.com/download/)。
下載示例代碼及彩色圖像
本書的示例代碼及彩圖,可以從http://www.packtpub.com通過個(gè)人賬號下載,也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊并登錄個(gè)人賬號下載。
譯者序
前言
作者簡介
審閱者簡介
第1章 新手上路1
1.1 數(shù)據(jù)科學(xué)與Python簡介1
1.2 Python的安裝2
1.2.1 Python 2還是Python 33
1.2.2 分步安裝4
1.2.3 安裝必要的工具包4
1.2.4 工具包升級6
1.3 科學(xué)計(jì)算發(fā)行版6
1.3.1 Anaconda7
1.3.2 使用conda安裝工具包7
1.3.3 Enthought Canopy8
1.3.4 WinPython8
1.4 虛擬環(huán)境8
1.5 核心工具包一瞥11
1.6 Jupyter簡介18
1.6.1 快速安裝與初次使用21
1.6.2 Jupyter魔術(shù)命令22
1.6.3 直接從Jupyter Notebook安裝軟件包23
1.6.4 查看新的JupyterLab環(huán)境24
1.6.5 Jupyter Notebook怎樣幫助數(shù)據(jù)科學(xué)家24
1.6.6 Jupyter的替代版本29
1.7 本書使用的數(shù)據(jù)集和代碼30
1.7.1 Scikit-learn小規(guī)模數(shù)據(jù)集30
1.7.2 MLdata.org和其他公共資源庫32
1.7.3 LIBSVM Data樣本33
1.7.4 直接從CSV或文本文件加載數(shù)據(jù)33
1.7.5 Scikit-learn樣本生成器35
1.8 小結(jié)36
第2章 數(shù)據(jù)改寫37
2.1 數(shù)據(jù)科學(xué)過程37
2.2 使用pandas進(jìn)行數(shù)據(jù)加載與預(yù)處理39
2.2.1 數(shù)據(jù)快捷加載39
2.2.2 處理問題數(shù)據(jù)41
2.2.3 處理大數(shù)據(jù)集43
2.2.4 訪問其他的數(shù)據(jù)格式46
2.2.5 合并數(shù)據(jù)48
2.2.6 數(shù)據(jù)預(yù)處理51
2.2.7 數(shù)據(jù)選擇55
2.3 使用分類數(shù)據(jù)和文本數(shù)據(jù)57
2.3.1 特殊的數(shù)據(jù)類型—文本59
2.3.2 使用Beautiful Soup抓取網(wǎng)頁64
2.4 使用Numpy進(jìn)行數(shù)據(jù)處理65
2.4.1 NmuPy中的N維數(shù)組65
2.4.2 NmuPy ndarray對象基礎(chǔ)66
2.5 創(chuàng)建Numpy數(shù)組68
2.5.1 從列表到一維數(shù)組68
2.5.2 控制內(nèi)存大小69
2.5.3 異構(gòu)列表70
2.5.4 從列表到多維數(shù)組70
2.5.5 改變數(shù)組大小71
2.5.6 利用NumPy函數(shù)生成數(shù)組73
2.5.7 直接從文件中獲得數(shù)組73
2.5.8 從pandas提取數(shù)據(jù)74
2.6 NumPy快速操作和計(jì)算75
2.6.1 矩陣運(yùn)算77
2.6.2 NumPy數(shù)組切片和索引78
2.6.3 NumPy數(shù)組堆疊80
2.6.4 使用稀疏數(shù)組81
2.7 小結(jié)83
第3章 數(shù)據(jù)科學(xué)流程84
3.1 EDA簡介84
3.2 創(chuàng)建新特征87
3.3 維數(shù)約簡89
3.3.1 協(xié)方差矩陣89
3.3.2 主成分分析90
3.3.3 一種用于大數(shù)據(jù)的PCA變型—RandomizedPCA93
3.3.4 潛在因素分析94
3.3.5 線性判別分析94
3.3.6 潛在語義分析95
3.3.7 獨(dú)立成分分析95
3.3.8 核主成分分析96
3.3.9 T-分布鄰域嵌入算法97
3.3.10 受限波爾茲曼機(jī)98
3.4 異常檢測和處理99
3.4.1 單變量異常檢測99
3.4.2 EllipticEnvelope101
3.4.3 OneClassSVM104
3.5 驗(yàn)證指標(biāo)106
3.5.1 多標(biāo)號分類107
3.5.2 二值分類109
3.5.3 回歸110
3.6 測試和驗(yàn)證110
3.7 交叉驗(yàn)證113
3.7.1 使用交叉驗(yàn)證迭代器115
3.7.2 采樣和自舉方法116
3.8 超參數(shù)優(yōu)化118
3.8.1 建立自定義評分函數(shù)120
3.8.2 減少網(wǎng)格搜索時(shí)間121
3.9 特征選擇123
3.9.1 基于方差的特征選擇123
3.9.2 單變量選擇124
3.9.3 遞歸消除125
3.9.4 穩(wěn)定性選擇與基于L1的選擇126
3.10 將所有操作包裝成工作流程127
3.10.1 特征組合和轉(zhuǎn)換鏈接128
3.10.2 構(gòu)建自定義轉(zhuǎn)換函數(shù)130
3.11 小結(jié)131
第4章 機(jī)器學(xué)習(xí)132
4.1 準(zhǔn)備工具和數(shù)據(jù)集132
4.2 線性和邏輯回歸134
4.3 樸素貝葉斯136
4.4 K近鄰137
4.5 非線性算法139
4.5.1 基于SVM的分類算法140
4.5.2 基于SVM的回歸算法141
4.5.3 調(diào)整SVM(優(yōu)化)142
4.6 組合策略144
4.6.1 基于隨機(jī)樣本的粘貼策略144
4.6.2 基于弱分類器的Bagging策略144
4.6.3 隨機(jī)子空間和隨機(jī)分片145
4.6.4 隨機(jī)森林和Extra-Trees145
4.6.5 從組合估計(jì)概率147
4.6.6 模型序列—AdaBoost148
4.6.7 梯度樹提升149
4.6.8 XGBoost150
4.6.9 LightGBM152
4.6.10 CatBoost155
4.7 處理大數(shù)據(jù)158
4.7.1 作為范例創(chuàng)建一些大數(shù)據(jù)集158
4.7.2 對容量的可擴(kuò)展性159
4.7.3 保持速度161
4.7.4 處理多樣性162
4.7.5 隨機(jī)梯度下降概述163
4.8 自然語言處理一瞥164
4.8.1 詞語分詞164
4.8.2 詞干提取165
4.8.3 詞性標(biāo)注166
4.8.4 命名實(shí)體識別166
4.8.5 停止詞167
4.8.6 一個(gè)完整的數(shù)據(jù)科學(xué)例子—文本分類168
4.9 無監(jiān)督學(xué)習(xí)概覽169
4.9.1 K均值算法169
4.9.2 基于密度的聚類技術(shù)—DBSCAN172
4.9.3 隱含狄利克雷分布173
4.10 小結(jié)177
第5章 可視化、發(fā)現(xiàn)和結(jié)果178
5.1 matplotlib基礎(chǔ)介紹178
5.1.1 曲線繪圖179
5.1.2 繪制分塊圖180
5.1.3 數(shù)據(jù)中的關(guān)系散點(diǎn)圖181
5.1.4 直方圖182
5.1.5 柱狀圖183
5.1.6 圖像可視化184
5.1.7 pandas的幾個(gè)圖形示例186
5.1.8 通過平行坐標(biāo)發(fā)現(xiàn)模式191
5.2 封裝matplotlib命令191
5.2.1 Seaborn簡介192
5.2.2 增強(qiáng)EDA性能196
5.3數(shù)據(jù)學(xué)習(xí)表示200
5.3.1 學(xué)習(xí)曲線201
5.3.2 確認(rèn)曲線202
5.3.3 隨機(jī)森林的特征重要性203
5.3.4 GBT部分依賴關(guān)系圖形205
5.3.5 創(chuàng)建MA-AAS預(yù)測服務(wù)器205
5.4 小結(jié)209
第6章 社交網(wǎng)絡(luò)分析210
6.1 圖論簡介210
6.2 圖的算法215
6.2.1 節(jié)點(diǎn)中心性的類型216
6.2.2 網(wǎng)絡(luò)劃分218
6.3 圖的裝載、輸出和采樣221
6.4 小結(jié)223
第7章 深度學(xué)習(xí)進(jìn)階224
7.1 走近深度學(xué)習(xí)224
7.2 使用CNN進(jìn)行圖像分類226
7.3 使用預(yù)訓(xùn)練模型234
7.4 處理時(shí)間序列237
7.5 小結(jié)239
第8章 基于Spark的大數(shù)據(jù)分析240
8.1 從獨(dú)立機(jī)器到大量節(jié)點(diǎn)240
8.1.1 理解為什么需要分布式框架241
8.1.2 Hadoop生態(tài)241
8.2 PySpark入門245
8.2.1 設(shè)置本地Spark實(shí)例245
8.2.2 彈性分布式數(shù)據(jù)集實(shí)驗(yàn)247
8.3 跨集群節(jié)點(diǎn)共享變量252
8.3.1 只讀廣播變量252
8.3.2 只寫累加器變量252
8.3.3 同時(shí)使用廣播和累加器變量—示例253
8.4 Spark數(shù)據(jù)預(yù)處理255
8.4.1 CSV文件和Spark數(shù)據(jù)框255
8.4.2 處理缺失數(shù)據(jù)257
8.4.3 在內(nèi)存中分組和創(chuàng)建表257
8.4.4 將預(yù)處理后的數(shù)據(jù)框或RDD寫入磁盤259
8.4.5 Spark數(shù)據(jù)框的用法260
8.5 基于Spark的機(jī)器學(xué)習(xí)261
8.5.1 在KDD99數(shù)據(jù)集上運(yùn)行Spark261
8.5.2 讀取數(shù)據(jù)集261
8.5.3 特征工程263
8.5.4 訓(xùn)練學(xué)習(xí)器266
8.5.5 學(xué)習(xí)器性能評價(jià)267
8.5.6 機(jī)器學(xué)習(xí)管道的強(qiáng)大功能267
8.5.7 手動調(diào)參269
8.5.8 交叉驗(yàn)證271
8.5.9后的清理272
8.6 小結(jié)272
附錄 增強(qiáng)Python基礎(chǔ)274
數(shù)據(jù)科學(xué)導(dǎo)論
Python語言
(原書第3版)
[意] 阿爾貝托·博斯凱蒂(Alberto Boschetti)
盧卡·馬薩羅(Luca Massaron) 著
于俊偉 譯
Python Data Science Essentials
Third Edition