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