內容簡介
本書首先介紹了如何在Python3.5中安裝必要的數據科學工具箱;然後引導你進入數據改寫和預處理階段,在其中闡述用於數據分析、探索或處理的數據載入、變換和修復等關鍵的數據科學活動;後,通過介紹主要的機器學習算法、圖分析技術和可視化方法來對數據科學進行概述。
圖書目錄
目 錄
譯者序
前言
作者簡介
第1章 新手上路 1
1.1 數據科學與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 科學計算發行版 6
1.2.6 虛擬環境 8
1.2.7 核心工具包一瞥 11
1.3 Jupyter簡介 17
1.3.1 快速安裝與初次使用 19
1.3.2 Jupyter魔術命令 20
1.3.3 Jupyter Notebook怎樣幫助數據科學家 22
1.3.4 Jupyter的替代版本 26
1.4 本書使用的數據集和代碼 27
1.5 小結 33
第2章 數據改寫 34
2.1 數據科學過程 34
2.2 使用pandas進行數據載入與預處理 36
2.2.1 數據快捷載入 36
2.2.2 處理問題數據 38
2.2.3 處理大數據集 41
2.2.4 訪問其他的數據格式 43
2.2.5 數據預處理 44
2.2.6 數據選擇 47
2.3 使用分類數據和文本數據 49
2.3.1 特殊的數據類型——文本 51
2.3.2 使用Beautiful Soup抓取網頁 56
2.4 使用NumPy進行數據處理 57
2.4.1 NmuPy中的N維數組 57
2.4.2 NmuPy ndarray對象基礎 58
2.5 創建NumPy數組 59
2.5.1 從列表到一維數組 60
2.5.2 控制記憶體大小 60
2.5.3 異構列表 61
2.5.4 從列表到多維數組 62
2.5.5 改變數組大小 63
2.5.6 利用NumPy函式生成數組 64
2.5.7 直接從檔案中獲得數組 65
2.5.8 從pandas提取數據 65
2.6 NumPy快速操作和計算 66
2.6.1 矩陣運算 68
2.6.2 NumPy數組切片和索引 69
2.6.3 NumPy數組堆疊 71
2.7 小結 72
第3章 數據科學流程 73
3.1 EDA簡介 73
3.2 創建新特徵 77
3.3 維數約簡 78
3.3.1 協方差矩陣 79
3.3.2 主成分分析 80
3.3.3 一種用於大數據的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 超參數最佳化 108
3.8.1 建立自定義評分函式 110
3.8.2 減少格線搜尋時間 112
3.9 特徵選擇 113
3.9.1 基於方差的特徵選擇 113
3.9.2 單變數選擇 114
3.9.3 遞歸消除 115
3.9.4 穩定性選擇與基於L1的選擇 116
3.10 將所有操作包裝成工作流程 118
3.10.1 特徵組合和轉換連結 118
3.10.2 構建自定義轉換函式 120
3.11 小結 121
第4章 機器學習 122
4.1 準備工具和數據集 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 調整SVM(最佳化) 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 處理大數據 142
4.7.1 作為範例創建一些大數據集 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 一個完整的數據科學例子——文本分類 156
4.10 無監督學習概覽 158
4.11 小結 165
第5章 社交網路分析 166
5.1 圖論簡介 166
5.2 圖的算法 171
5.3 圖的載入、輸出和採樣 177
5.4 小結 179
第6章 可視化、發現和結果 180
6.1 matplotlib基礎介紹 180
6.1.1 曲線繪圖 181
6.1.2 繪製分塊圖 182
6.1.3 數據中的關係散點圖 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 高級數據學習表示 203
6.4.1 學習曲線 204
6.4.2 確認曲線 205
6.4.3 隨機森林的特徵重要性 206
6.4.4 GBT部分依賴關係圖形 207
6.4.5 創建MA-AAS預測伺服器 208
6.5 小結 212
附錄A 增強Python基礎 213
作者簡介
阿爾貝托·博斯凱蒂(Alberto Boschetti)數據科學家、信號處理和統計學方面的專家。他是通信工程專業博士,現在倫敦居住和工作。他主要從事自然語言處理、行為分析、機器學習和分散式處理等方面的挑戰性工作。他對工作充滿激情,經常參加學術聚會、研討會及其他學術活動,緊跟數據科學技術發展的前沿。
我要感謝我的家人、朋友和同事!同時,也非常感謝開源社區!
盧卡·馬薩羅(Luca Massaron)數據科學家、市場行銷研究主導者,是多變數統計分析、機器學習和客戶洞察方面的專家。有十年以上解決實際問題的經驗,使用推理、統計、數據挖掘和算法為利益相關者創造了巨大的價值。在義大利他是網路客群分析的先鋒,並在Kaggler上獲得排名前十的佳績,隨後一直熱心參與各種與數據及數據分析相關的活動,積極給新手和專業人員講解數據驅動知識發現的潛力。他崇尚大道至簡,堅信理解數據科學的精要能給你帶來巨大收穫。
致Yukiko和Amelia,謝謝你們的愛和包容。“前路無止境,星雲作伴長,雙腳雖遠行,終歸還家鄉。”