數據科學導論:Python語言(原書第3版)
內容描述
本書首先介紹如何設置基本的數據科學工具箱,
然後帶你進入數據改寫和預處理階段,
這一部分主要是闡明所有與核心數據科學活動相關的數據分析過程,
如數據加載、轉換、修復以及數據探索和處理等。
通過主要的機器學習算法、圖形分析技術,
以及所有易於表現結果的可視化工具,實現對數據科學的概述。
本書對上一版內容進行了全面拓展和更新,涵蓋新版的Jupyter Notebook、
NumPy、pandas和Scikit-learn等的新改進。
此外,還介紹了深度學習(借助在Theano和Tensorflow平台上運行的Keras庫)、
漂亮的可視化(使用Seaborn和ggplot)和Web部署(使用bottle)等新內容。
本書行文過程以數據科學項目為主體,輔以整潔的代碼和簡化的示例,
能幫助你理解與項目相關的潛在原理和實際數據集。
目錄大綱
譯者序
前言
作者簡介
審閱者簡介
第1章新手上路1
1.1數據科學與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科學計算發行版6
1.3.1 Anaconda7
1.3.2使用conda安裝工具包7
1.3.3 Enthought Canopy8
1.3.4 WinPython8
1.4虛擬環境8
1.5核心工具包一瞥11
1.6 Jupyter簡介18
1.6.1快速安裝與初次使用21
1.6.2 Jupyter魔術命令22
1.6.3直接從Jupyter Notebook安裝軟件包23
1.6.4查看新的JupyterLab環境24
1.6.5 Jupyter Notebook怎樣幫助數據科學家24
1.6.6 Jupyter的替代版本29
1.7本書使用的數據集和代碼30
1.7.1 Scikit-learn小規模數據集30
1.7.2 MLdata.org和其他公共資源庫32
1.7.3 LIBSVM Data樣本33
1.7.4直接從CSV或文本文件加載數據33
1.7.5 Scikit-learn樣本生成器35
1.8小結36
第2章數據改寫37
2.1數據科學過程37
2.2使用pandas進行數據加載與預處理39
2.2.1數據快捷加載39
2.2.2處理問題數據41
2.2.3處理大數據集43
2.2.4訪問其他的數據格式46
2.2.5合併數據48
2.2.6數據預處理51
2.2.7數據選擇55
2.3使用分類數據和文本數據57
2.3.1特殊的數據類型—文本59
2.3.2使用Beautiful Soup抓取網頁64
2.4使用Numpy進行數據處理65
2.4.1 NmuPy中的N維數組65
2.4.2 NmuPy ndarray對象基礎66
2.5創建Numpy數組68
2.5.1從列表到一維數組68
2.5.2控制內存大小69
2.5.3異構列表70
2.5.4從列表到多維數組70
2.5.5改變數組大小71
2.5.6利用NumPy函數生成數組73
2.5.7直接從文件中獲得數組73
2.5.8從pandas提取數據74
2.6 NumPy快速操作和計算75
2.6.1矩陣運算77
2.6.2 NumPy數組切片和索引78
2.6.3 NumPy數組堆疊80
2.6.4使用稀疏數組81
2.7小結83
第3章數據科學流程84
3.1 EDA簡介84
3.2創建新特徵87
3.3維數約簡89
3.3.1協方差矩陣89
3.3.2主成分分析90
3.3.3一種用於大數據的PCA變型—RandomizedPCA93
3.3.4潛在因素分析94
3.3.5線性判別分析94
3.3.6潛在語義分析95
3.3.7獨立成分分析95
3.3.8核主成分分析96
3.3.9 T-分佈鄰域嵌入算法97
3.3.10受限波爾茲曼機98
3.4異常檢測和處理99
3.4.1單變量異常檢測99
3.4.2 EllipticEnvelope101
3.4.3 OneClassSVM104
3.5驗證指標106
3.5.1多標號分類107
3.5.2二值分類109
3.5.3回歸110
3.6測試和驗證110
3.7交叉驗證113
3.7.1使用交叉驗證迭代器115
3.7.2採樣和自舉方法116
3.8超參數優化118
3.8.1建立自定義評分函數120
3.8.2減少網格搜索時間121
3.9特徵選擇123
3.9.1基於方差的特徵選擇123
3.9.2單變量選擇124
3.9.3遞歸消除125
3.9.4穩定性選擇與基於L1的選擇126
3.10將所有操作包裝成工作流程127
3.10.1特徵組合和轉換鏈接128
3.10.2構建自定義轉換函數130
3.11小結131
第4章機器學習132
4.1準備工具和數據集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調整SVM(優化)142
4.6組合策略144
4.6.1基於隨機樣本的粘貼策略144
4.6.2基於弱分類器的Bagging策略144
4.6.3隨機子空間和隨機分片145
4.6.4隨機森林和Extra-Trees145
4.6.5從組合估計概率147
4.6.6模型序列—AdaBoost148
4.6.7梯度樹提升149
4.6.8 XGBoost150
4.6.9 LightGBM152
4.6.10 CatBoost155
4.7處理大數據158
4.7.1作為範例創建一些大數據集158
4.7.2對容量的可擴展性159
4.7.3保持速度161
4.7.4處理多樣性162
4.7.5隨機梯度下降概述163
4.8自然語言處理一瞥164
4.8.1詞語分詞164
4.8.2詞幹提取165
4.8.3詞性標註166
4.8.4命名實體識別166
4.8.5停止詞167
4.8.6一個完整的數據科學例子—文本分類168
4.9無監督學習概覽169
4.9.1 K均值算法169
4.9.2基於密度的聚類技術—DBSCAN172
4.9.3隱含狄利克雷分佈173
4.10小結177
第5章可視化、發現和結果178
5.1 matplotlib基礎介紹178
5.1.1曲線繪圖179
5.1.2繪製分塊圖180
5.1.3數據中的關係散點圖181
5.1.4直方圖182
5.1.5柱狀圖183
5.1.6圖像可視化184
5.1.7 pandas的幾個圖形示例186
5.1. 8通過平行坐標發現模式191
5.2封裝matplotlib命令191
5.2.1 Seaborn簡介192
5.2.2增強EDA性能196
5.3高級數據學習表示200
5.3.1學習曲線201
5.3.2確認曲線202
5.3.3隨機森林的特徵重要性203
5.3.4 GBT部分依賴關係圖形205
5.3.5創建MA-AAS預測服務器205
5.4小結209
第6章社交網絡分析210
6.1圖論簡介210
6.2圖的算法215
6.2.1節點中心性的類型216
6.2.2網絡劃分218
6.3圖的裝載、輸出和採樣221
6.4