數(shù)據(jù)科學導論:Python語言實現(xiàn)(原書第2版)
定 價:59 元
叢書名:數(shù)據(jù)科學與工程技術叢書
- 作者:[意]阿爾貝托·博斯凱蒂(Alberto Boschetti) 盧卡·馬薩羅(Luca Massaron)
- 出版時間:2017/3/1
- ISBN:9787111589860
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書首先介紹了如何在Python3.5中安裝必要的數(shù)據(jù)科學工具箱;然后引導你進入數(shù)據(jù)改寫和預處理階段,在其中闡述用于數(shù)據(jù)分析、探索或處理的數(shù)據(jù)加載、變換和修復等關鍵的數(shù)據(jù)科學活動;后,通過介紹主要的機器學習算法、圖分析技術和可視化方法來對數(shù)據(jù)科學進行概述。
前 言千里之行,始于足下。
老子(公元前604531)數(shù)據(jù)科學屬于一門相對較新的知識領域,它成功融合了線性代數(shù)、統(tǒng)計建模、可視化、計算語言學、圖形分析、機器學習、商業(yè)智能、數(shù)據(jù)存儲和檢索等眾多學科。
Python編程語言在過去十年已經(jīng)征服了科學界,現(xiàn)在是數(shù)據(jù)科學實踐者不可或缺的工具,也是每一個有抱負的數(shù)據(jù)科學家的必備工具。Python為數(shù)據(jù)分析、機器學習和算法求解提供了快速、可靠、跨平臺、成熟的開發(fā)環(huán)境。無論之前在數(shù)據(jù)科學應用中阻止你掌握Python的原因是什么,我們將通過簡單的分步化解和示例導向的方法幫你解決,幫助你在演示數(shù)據(jù)集和實際數(shù)據(jù)集上使用最直接有效的Python工具。
作為第2版,本書對第1版內(nèi)容進行了更新和擴展。以最新的Jupyter Notebook(包括可互換內(nèi)核,一個真正支持多種編程語言的數(shù)據(jù)科學系統(tǒng))為基礎,本書包含了NumPy、pandas和Scikit-learn等庫的所有主要更新。此外,本書還提供了不少新內(nèi)容,包括深度學習(基于Theano和Tensorflow的Keras)、漂亮的數(shù)據(jù)可視化(Seaborn和ggplot)和Web部署(使用bottle)等。本書首先使用單源方法,展示如何在最新版Python(3.5)中安裝基本的數(shù)據(jù)科學工具箱,這意味著本書中的代碼可以在Python 2.7上重用。接著,將引導你進入完整的數(shù)據(jù)改寫和預處理階段,主要闡述用于數(shù)據(jù)分析、探索或處理的數(shù)據(jù)加載、變換、修復等關鍵數(shù)據(jù)科學活動。最后,本書將完成數(shù)據(jù)科學精要的概述,介紹主要的機器學習算法、圖分析技術和可視化方法,其中,可視化工具將更易于向數(shù)據(jù)科學專家或商業(yè)用戶展示數(shù)據(jù)處理結(jié)果。
本書內(nèi)容第1章介紹Jupyter Notebook,演示怎樣使用程序手冊中的數(shù)據(jù)。
第2章對數(shù)據(jù)科學流程進行概述,詳細分析進行數(shù)據(jù)準備和處理所使用的關鍵工具,這些工具將在采用機器學習算法和建立假設實驗計劃之前使用。
第3章討論所有可能有助于結(jié)果改進甚至提升的數(shù)據(jù)操作技術。
第4章深入研究Scikit-learn包中的主要機器學習算法,例如線性模型、支持向量機、樹集成和無監(jiān)督聚類技術等。
第5章介紹圖的概念,它可以表示為偏離預測或目標的有趣矩陣。這是目前數(shù)據(jù)科學界的研究熱點,期待利用圖的技術來研究復雜的社交網(wǎng)絡。
第6章介紹使用matplotlib進行可視化的基本方法,以及如何使用pandas進行探索性數(shù)據(jù)分析(EDA),如何使用Seaborn和Bokeh實現(xiàn)漂亮的可視化,還包括如何建立提供所需要信息的Web服務器。
附錄包括一些Python示例和說明,重點介紹Python語言的主要特點,這些都是從事數(shù)據(jù)科學工作必須了解的。
閱讀準備本書用到的Python及其他數(shù)據(jù)科學工具(從IPython到Scikit-learn)都能在網(wǎng)上免費下載。要運行本書附帶的源代碼,需要一臺裝有Windows、Linux或Mac OS等操作系統(tǒng)的計算機。本書將分步介紹Python解釋器的安裝過程,以及運行示例所需要的工具和數(shù)據(jù)。
讀者對象如果你有志于成為數(shù)據(jù)科學家,并擁有一些數(shù)據(jù)分析和Python方面的基礎知識,本書將助你在數(shù)據(jù)科學領域快速入門。對于有R語言或Matlab編程經(jīng)驗的數(shù)據(jù)分析人員,本書也可以作為一個全面的參考書,提高他們在數(shù)據(jù)操作和機器學習方面的技能。
代碼下載你可以從http://www.packtpub.com通過個人賬號下載你所購買書籍的樣例源碼。你也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊并登錄個人賬號下載本書的源代碼。
彩圖下載我們還提供了一個PDF文件,其中包含本書中使用的截圖和彩圖,可以幫助讀者更好地了解輸出的變化。文件可以從以下地址下載:http://www.packtpub.com/sites/default/files/downloads/PythonDataScienceEssentialsSecondEdition_colorImages.pdf。
作 者 簡 介阿爾貝托·博斯凱蒂(Alberto Boschetti)數(shù)據(jù)科學家、信號處理和統(tǒng)計學方面的專家。他是通信工程專業(yè)博士,現(xiàn)在倫敦居住和工作。他主要從事自然語言處理、行為分析、機器學習和分布式處理等方面的挑戰(zhàn)性工作。他對工作充滿激情,經(jīng)常參加學術聚會、研討會及其他學術活動,緊跟數(shù)據(jù)科學技術發(fā)展的前沿。
我要感謝我的家人、朋友和同事!同時,也非常感謝開源社區(qū)!
盧卡·馬薩羅(Luca Massaron)數(shù)據(jù)科學家、市場營銷研究主導者,是多變量統(tǒng)計分析、機器學習和客戶洞察方面的專家。有十年以上解決實際問題的經(jīng)驗,使用推理、統(tǒng)計、數(shù)據(jù)挖掘和算法為利益相關者創(chuàng)造了巨大的價值。在意大利他是網(wǎng)絡受眾分析的先鋒,并在Kaggler上獲得排名前十的佳績,隨后一直熱心參與各種與數(shù)據(jù)及數(shù)據(jù)分析相關的活動,積極給新手和專業(yè)人員講解數(shù)據(jù)驅(qū)動知識發(fā)現(xiàn)的潛力。他崇尚大道至簡,堅信理解數(shù)據(jù)科學的精要能給你帶來巨大收獲。
致Yukiko和Amelia,謝謝你們的愛和包容。前路無止境,星云作伴長,雙腳雖遠行,終歸還家鄉(xiāng)。
目 錄
譯者序
前言
作者簡介
第1章 新手上路 1
1.1 數(shù)據(jù)科學與Python簡介 1
1.2 Python的安裝 2
1.2.1 Python 2還是Python 3 3
1.2.2 分步安裝 3
1.2.3 工具包的安裝 4
1.2.4 工具包升級 6
1.2.5 科學計算發(fā)行版 6
1.2.6 虛擬環(huán)境 8
1.2.7 核心工具包一瞥 11
1.3 Jupyter簡介 17
1.3.1 快速安裝與初次使用 19
1.3.2 Jupyter魔術命令 20
1.3.3 Jupyter Notebook怎樣幫助數(shù)據(jù)科學家 22
1.3.4 Jupyter的替代版本 26
1.4 本書使用的數(shù)據(jù)集和代碼 27
1.5 小結(jié) 33
第2章 數(shù)據(jù)改寫 34
2.1 數(shù)據(jù)科學過程 34
2.2 使用pandas進行數(shù)據(jù)加載與預處理 36
2.2.1 數(shù)據(jù)快捷加載 36
2.2.2 處理問題數(shù)據(jù) 38
2.2.3 處理大數(shù)據(jù)集 41
2.2.4 訪問其他的數(shù)據(jù)格式 43
2.2.5 數(shù)據(jù)預處理 44
2.2.6 數(shù)據(jù)選擇 47
2.3 使用分類數(shù)據(jù)和文本數(shù)據(jù) 49
2.3.1 特殊的數(shù)據(jù)類型文本 51
2.3.2 使用Beautiful Soup抓取網(wǎng)頁 56
2.4 使用NumPy進行數(shù)據(jù)處理 57
2.4.1 NmuPy中的N維數(shù)組 57
2.4.2 NmuPy ndarray對象基礎 58
2.5 創(chuàng)建NumPy數(shù)組 59
2.5.1 從列表到一維數(shù)組 60
2.5.2 控制內(nèi)存大小 60
2.5.3 異構列表 61
2.5.4 從列表到多維數(shù)組 62
2.5.5 改變數(shù)組大小 63
2.5.6 利用NumPy函數(shù)生成數(shù)組 64
2.5.7 直接從文件中獲得數(shù)組 65
2.5.8 從pandas提取數(shù)據(jù) 65
2.6 NumPy快速操作和計算 66
2.6.1 矩陣運算 68
2.6.2 NumPy數(shù)組切片和索引 69
2.6.3 NumPy數(shù)組堆疊 71
2.7 小結(jié) 72
第3章 數(shù)據(jù)科學流程 73
3.1 EDA簡介 73
3.2 創(chuàng)建新特征 77
3.3 維數(shù)約簡 78
3.3.1 協(xié)方差矩陣 79
3.3.2 主成分分析 80
3.3.3 一種用于大數(shù)據(jù)的PCA變型RandomizedPCA 82
3.3.4 潛在因素分析 83
3.3.5 線性判別分析 84
3.3.6 潛在語義分析 85
3.3.7 獨立成分分析 85
3.3.8 核主成分分析 85
3.3.9 t-分布鄰域嵌入算法 87
3.3.10 受限玻爾茲曼機 87
3.4 異常檢測和處理 89
3.4.1 單變量異常檢測 89
3.4.2 EllipticEnvelope 90
3.4.3 OneClassSVM 94
3.5 驗證指標 96
3.5.1 多標號分類 97
3.5.2 二值分類 99
3.5.3 回歸 100
3.6 測試和驗證 100
3.7 交叉驗證 103
3.7.1 使用交叉驗證迭代器 105
3.7.2 采樣和自舉方法 107
3.8 超參數(shù)優(yōu)化 108
3.8.1 建立自定義評分函數(shù) 110
3.8.2 減少網(wǎng)格搜索時間 112
3.9 特征選擇 113
3.9.1 基于方差的特征選擇 113
3.9.2 單變量選擇 114
3.9.3 遞歸消除 115
3.9.4 穩(wěn)定性選擇與基于L1的選擇 116
3.10 將所有操作包裝成工作流程 118
3.10.1 特征組合和轉(zhuǎn)換鏈接 118
3.10.2 構建自定義轉(zhuǎn)換函數(shù) 120
3.11 小結(jié) 121
第4章 機器學習 122
4.1 準備工具和數(shù)據(jù)集 122
4.2 線性和logistic回歸 124
4.3 樸素貝葉斯 126
4.4 K近鄰 127
4.5 非線性算法 129
4.5.1 基于SVM的分類算法 129
4.5.2 基于SVM的回歸算法 131
4.5.3 調(diào)整SVM(優(yōu)化) 132
4.6 組合策略 133
4.6.1 基于隨機樣本的粘合策略 134
4.6.2 基于弱分類器的bagging策略 134
4.6.3 隨機子空間和隨機分片 135
4.6.4 隨機森林和Extra-Trees 135
4.6.5 從組合估計概率 137
4.6.6 模型序列AdaBoost 138
4.6.7 梯度樹提升 139
4.6.8 XGBoost 140
4.7 處理大數(shù)據(jù) 142
4.7.1 作為范例創(chuàng)建一些大數(shù)據(jù)集 142
4.7.2 對容量的可擴展性 143
4.7.3 保持速度 144
4.7.4 處理多樣性 145
4.7.5 隨機梯度下降概述 147
4.8 深度學習 148
4.9 自然語言處理一瞥 153
4.9.1 詞語分詞 153
4.9.2 詞干提取 154
4.9.3 詞性標注 154
4.9.4 命名實體識別 155
4.9.5 停止詞 156
4.9.6 一個完整的數(shù)據(jù)科學例子文本分類 156
4.10 無監(jiān)督學習概覽 158
4.11 小結(jié) 165
第5章 社交網(wǎng)絡分析 166
5.1 圖論簡介 166
5.2 圖的算法 171
5.3 圖的加載、輸出和采樣 177
5.4 小結(jié) 179
第6章 可視化、發(fā)現(xiàn)和結(jié)果 180
6.1 matplotlib基礎介紹 180
6.1.1 曲線繪圖 181
6.1.2 繪制分塊圖 182
6.1.3 數(shù)據(jù)中的關系散點圖 183
6.1.4 直方圖 184
6.1.5 柱狀圖 185
6.1.6 圖像可視化 186
6.1.7 pandas的幾個圖形示例 188
6.1.8 散點圖 190
6.1.9 平行坐標 192
6.2 封裝matplotlib命令 193
6.2.1 Seaborn簡介 194
6.2.2 增強EDA性能 197
6.3 交互式可視化工具Bokeh 201
6.4 高級數(shù)據(jù)學習表示 203
6.4.1 學習曲線 204
6.4.2 確認曲線 205
6.4.3 隨機森林的特征重要性 206
6.4.4 GBT部分依賴關系圖形 207
6.4.5 創(chuàng)建MA-AAS預測服務器 208
6.5 小結(jié) 212
附錄A 增強Python基礎 213