第 1 部分 開啓Python 數據科學之門 1
第 1 章 探索數據科學與Python之間的匹配度 3
1.1 定義21 世紀最誘人的工作 5
1.1.1 思考數據科學的齣現 5
1.1.2 概述數據科學傢的核心競爭力 6
1.1.3 連接數據科學和大數據 7
1.1.4 理解編程的角色 7
1.2 創建數據科學管道 8
1.2.1 準備數據 8
1.2.2 執行探索性的數據分析 8
1.2.3 從數據中學習 8
1.2.4 可視化 9
1.2.5 獲得洞察力和數據産品 9
1.3 理解Python 在數據科學中的角色 9
1.3.1 思考數據科學傢的多麵性 9
1.3.2 使用一門多用途、簡單而高效的語言來工作 10
1.4 快速學會使用Python 11
1.4.1 加載數據 11
1.4.2 訓練模型 12
1.4.3 顯示結果 13
第 2 章 介紹Python 的能力和奇跡 14
2.1 為什麼是Python 15
2.1.1 抓住Python 的核心哲學 16
2.1.2 探索現在和未來的開發目標 16
2.2 使用Python 工作 17
2.2.1 品味語言 17
2.2.2 理解縮進的需求 17
2.2.3 用命令行或者IDE 工作 18
2.3 運行快速原型和實驗 22
2.4 考慮執行速度 23
2.5 可視化能力 24
2.6 為數據科學使用Python生態係統 26
2.6.1 使用SciPy 來訪問用於科學的工具 26
2.6.2 使用NumPy 執行基礎的科學計算 26
2.6.3 使用pandas 來執行數據分析 26
2.6.4 使用Scikit-learn 實現機器學習 27
2.6.5 使用matplotlib 來標繪數據 27
2.6.6 使用Beautiful Soup來解析HTML 文檔 27
第3 章 為數據科學設置Python 29
3.1 考慮現成的跨平颱的用於科學的分發包 30
3.1.1 獲取Continuum AnalyticsAnaconda 31
3.1.2 獲取Enthought CanopyExpress 32
3.1.3 獲取pythonxy 32
3.1.4 獲取WinPython 33
3.2 在Windows 上安裝Anaconda 33
3.3 在Linux 上安裝Anaconda 36
3.4 在Mac OS X 上安裝Anaconda 37
3.5 下載數據集和示例代碼 38
3.5.1 使用IPython Notebook 39
3.5.2 定義代碼倉庫 40
3.5.3 理解本書中所使用的數據集 45
第4 章 復習Python 基礎 47
4.1 使用數字和邏輯來工作 49
4.1.1 執行變量賦值 50
4.1.2 做算術運算 50
4.1.3 使用布爾錶達式來比較數據 52
4.2 創建和使用字符串 54
4.3 與日期交互 55
4.4 創建並使用函數 56
4.4.1 創建可復用函數 56
4.4.2 以各種不同的方式調用函數 58
4.5 使用條件和循環語句 61
4.5.1 使用if 語句做決策 61
4.5.2 使用嵌套決策在多個選項間做齣選擇 62
4.5.3 使用for 執行重復任務 63
4.5.4 使用while 語句 64
4.6 使用Sets、Lists 和Tuples來存儲數據 64
4.6.1 在set 上執行操作 65
4.6.2 使用list 來工作 66
4.6.3 創建和使用Tuple 67
4.7 定義有用的迭代器 69
4.8 使用Dictionaries 來索引數據 70
第 2 部分 開始著手於數據 71
第5 章 使用真實數據工作 73
5.1 上傳、流化並采樣數據 74
5.1.1 把少量數據上傳至內存 75
5.1.2 把大量數據流化放入內存 76
5.1.3 采樣數據 77
5.2 以結構化的平麵文件形式來訪問數據 78
5.2.1 從文本文件中讀取 79
5.2.2 讀取CSV 定界的格式 80
5.2.3 讀取Excel 和其他的微軟辦公文件 82
5.3 以非結構化文件的形式來發送數據 83
5.4 管理來自關係型數據庫中的數據 86
5.5 與來自NoSQL 數據庫中的數據進行交互 87
5.6 訪問來自Web 的數據 88
第6 章 整理你的數據 92
6.1 兼顧NumPy 和pandas 93
6.1.1 知道什麼時候使用NumPy 93
6.1.2 知道什麼時候使用pandas 93
6.2 驗證你的數據 95
6.2.1 瞭解你的數據中有什麼 95
6.2.2 去重 96
6.2.3 創建數據地圖和數據規劃 97
6.3 處理分類變量 99
6.3.1 創建分類變量 100
6.3.2 重命名層級 102
6.3.3 組閤層級 102
6.4 處理你數據中的日期 104
6.4.1 格式化日期和時間值 104
6.4.2 使用正確的時間轉換 105
6.5 處理丟失值 106
6.5.1 尋找丟失的數據 106
6.5.2 為丟失項編碼 107
6.5.3 為丟失數據估值 108
6.6 交叉分析:過濾並選取數據 109
6.6.1 切分行 109
6.6.2 切分列 110
6.6.3 切塊 110
6.7 連接和變換 111
6.7.1 增加新的實例和變量 112
6.7.2 移除數據 113
6.7.3 排序和攪亂 114
6.8 在任何層次聚閤數據 115
第7 章 數據整形 117
7.1 使用HTML 頁麵來工作 118
7.1.1 解析XML 和HTML 118
7.1.2 使用XPath 來抽取數據 119
7.2 使用原始文本來工作 120
7.2.1 處理Unicode 碼 120
7.2.2 詞乾提取和停止詞移除 122
7.2.3 介紹正則錶達式 124
7.3 使用並超越詞袋模型 126
7.3.1 理解詞袋模型 127
7.3.2 用n 元文法模型(n-grams)工作 128
7.3.3 實現TF-IDF 變換 130
7.4 使用圖數據來工作 131
7.4.1 理解鄰接矩陣 131
7.4.2 使用NetworkX 基礎 132
第8 章 將你所知的付諸於實踐 134
8.1 將問題和數據置於上下文中去理解 135
8.1.1 評估數據科學問題 136
8.1.2 研究方案 136
8.1.3 構想齣假設 137
8.1.4 準備數據 138
8.2 思考創建特徵的藝術 138
8.2.1 定義特徵創建 138
8.2.2 組閤變量 139
8.2.3 理解分級和離散化 140
8.2.4 使用指示變量 140
8.2.5 變換分布 140
8.3 在數組上執行運算 141
8.3.1 使用嚮量化 141
8.3.2 在嚮量和矩陣上執行簡單的算法 142
8.3.3 執行矩陣嚮量乘法 142
8.3.4 執行矩陣乘法 143
第3 部分 把不可見的東西可視化 145
第9 章 獲得MatPlotLib 的速成課程 147
9.1 開始使用圖錶 148
9.1.1 定義標圖 148
9.1.2 畫多綫條和多標圖 149
9.1.3 保存你的工作 149
9.2 設置軸、刻度和網格 150
9.2.1 得到軸 151
9.2.2 格式化軸 151
9.2.3 添加網格 152
9.3 定義綫條外觀 153
9.3.1 使用綫條樣式工作 153
9.3.2 使用顔色 155
9.3.3 添加標記 155
9.4 使用標簽、注釋和圖例 157
9.4.1 添加標簽 158
9.4.2 注釋圖錶 158
9.4.3 創建圖例 159
第 10 章 將數據可視化 161
10.1 選擇閤適的圖錶 162
10.1.1 用餅圖展示整體的局部組成 162
10.1.2 用柱狀圖來創建比較 163
10.1.3 用直方圖來展示分布 164
10.1.4 使用箱綫圖來描繪組 166
10.1.5 使用散點圖看數據模式 167
10.2 創建高級的散點圖 168
10.2.1 描繪組群 168
10.2.2 展示關聯 169
10.3 標繪時間序列 171
10.3.1 在軸上錶示時間 171
10.3.2 標繪隨時間的趨勢 172
10.4 標繪地理數據 174
10.5 把圖做可視化 176
10.5.1 開發無嚮圖 176
10.5.2 開發有嚮圖 177
第 11 章 理解工具 180
11.1 使用IPython 控製颱 181
11.1.1 與屏幕文本交互 181
11.1.2 改變窗口外觀 182
11.1.3 獲取Python 幫助 184
11.1.4 獲取IPython 幫助 185
11.1.5 使用魔法函數 186
11.1.6 探索對象 187
11.2 使用IPython Notebook 188
11.2.1 使用樣式來工作 189
11.2.2 重啓內核 190
11.2.3 恢復檢查點 191
11.3 執行多媒體和圖像整閤 192
11.3.1 嵌入標圖和其他圖片 192
11.3.2 從在綫網站上加載例子 193
11.3.3 獲取在綫圖像和多媒體 193
第4 部分 處理數據 195
第 12 章 拓展Python 的能力 197
12.1 玩轉Scikit-learn 198
12.1.1 理解Scikit-learn 中的類 198
12.1.2 為數據科學定義應用 199
12.2 執行散列法 202
12.2.1 使用散列函數 202
12.2.2 演示散列法 203
12.2.3 使用確定性選擇來工作 205
12.3 考慮計時和性能 206
12.3.1 用timeit 來做基綫檢測 207
12.3.2 使用內存剖析器來工作 209
12.4 並行運行 210
12.4.1 執行多核並行化 211
12.4.2 演示多核處理 212
第 13 章 探索數據分析 214
13.1 EDA 方法 215
13.2 為Numeric 數據定義描述性的統計量 216
13.2.1 度量集中化趨勢 217
13.2.2 測量方差和區間 217
13.2.3 使用分位數來工作 218
13.2.4 定義正態化度量 219
13.3 為分類型數據計數 220
13.3.1 理解頻率 220
13.3.2 創建列聯錶 221
13.4 為EDA 創建應用可視化 222
13.4.1 檢查箱綫圖 222
13.4.2 在箱綫圖之後執行t檢驗 223
13.4.3 觀察平行坐標 224
13.4.4 為分布作圖 225
13.4.5 標繪散點圖 226
13.5 理解相關性 228
13.5.1 使用協方差和關聯性 228
13.5.2 使用非參數相關性 230
13.5.3 考慮錶格的卡方檢驗 230
13.6 修改數據分布 231
13.6.1 使用正態分布 232
13.6.2 創建Z 評分標準化 232
13.6.3 轉換其他的著名分布 232
第 14 章 降維 234
14.1 理解SVD 235
14.1.1 尋求降維 236
14.1.2 使用SVD 來測量不可見的信息 237
14.2 執行因子和主成分分析 238
14.2.1 考慮心理測量模型 239
14.2.2 尋找隱因子 239
14.2.3 使用成分,而不是因子 240
14.2.4 達成降維 240
14.3 理解一些應用 241
14.3.1 用PCA 來識彆人臉 241
14.3.2 用NMF 來提取主題 244
14.3.3 推薦電影 246
第 15 章 聚類 249
15.1 用K-means 聚類 251
15.1.1 理解基於質心的算法 251
15.1.2 創建使用圖像數據的例子 253
15.1.3 尋找優化解決方案 254
15.1.4 大數據聚類 257
15.2 執行層次聚類 258
15.3 超越圓形簇:DBScan 261
第 16 章 檢測數據中的異常點 265
16.1 考慮異常檢測 266
16.1.1 找齣更多可能齣錯的地方 267
16.1.2 理解異常數據和新奇的數據 268
16.2 檢驗簡單的單變量法 268
16.2.1 利用高斯分布 270
16.2.2 做齣假設並檢驗 270
16.3 開發多變量方法 271
16.3.1 使用主成分分析 272
16.3.2 使用聚類分析 273
16.3.3 使用SVM 將異常檢測自動化 274
第5 部分 從數據中學習 275
第 17 章 探索4 個簡單又有效的算法 277
17.1 猜測數字:綫性迴歸 277
17.1.1 定義綫性模型傢族 278
17.1.2 使用更多變量 279
17.1.3 理解限製和問題 280
17.2 轉移到邏輯迴歸 281
17.2.1 應用邏輯迴歸 281
17.2.2 考慮有更多類的時候 282
17.3 讓事情像樸素貝葉斯(Na veBayes)一樣簡單 283
17.3.1 發現樸素貝葉斯並不是那麼樸素 285
17.3.2 預測文本分類 286
17.4 使用最近鄰來延遲學習 287
17.4.1 觀察鄰居之後做預測 288
17.4.2 明智地選擇k 參數 290
第 18 章 執行交叉驗證、選擇和優化 291
18.1 關於擬閤模型問題的思考 292
18.1.1 理解偏差和方差 293
18.1.2 定義挑選模型的策略 294
18.1.3 劃分訓練集和測試集 296
18.2 交叉驗證 299
18.2.1 使用k 摺交叉驗證 299
18.2.2 復雜數據的分層采樣 300
18.3 像專業人士那樣選擇變量 302
18.3.1 通過單變量度量來選擇 302
18.3.2 使用貪婪搜索 303
18.4 提升你的超參數 304
18.4.1 實現網格搜索 305
18.4.2 嘗試隨機化搜索 309
第 19 章 用綫性和非綫性技巧增加復雜性 311
19.1 使用非綫性變換 312
19.1.1 執行變量變換 312
19.1.2 創建變量間的相互作用 314
19.2 正則化綫性模型 317
19.2.1 依靠Ridge 迴歸(L2) 318
19.2.2 使用Lasso(L1) 319
19.2.3 利用規範化 319
19.2.4 組閤L1 和L2:Elasticnet 320
19.3 逐塊與大數據戰鬥 320
19.3.1 當數據過多時來做決定 321
19.3.2 實現隨機梯度下降 321
19.4 理解支持嚮量機 323
19.4.1 依靠一種計算方法 324
19.4.2 修正很多新參數 327
19.4.3 用SVC 分類 328
19.4.4 走嚮非綫性是簡單的 333
19.4.5 用SVR 來執行迴歸 334
19.4.6 用SVM 創建隨機(stochastic)解決方案 336
第 20 章 理解多數的力量 340
20.1 以樸素的決策樹開始 341
20.1.1 理解決策樹 341
20.1.2 創建分類和迴歸樹 343
20.2 讓機器學習得以應用 346
20.2.1 使用隨機森林分類器來工作 348
20.2.2 使用隨機森林迴歸器來工作 349
20.2.3 優化隨機森林 349
20.3 Boosting 預測 351
20.3.1 瞭解多個弱預測器將勝齣 351
20.3.2 創建梯度推進分類器 352
20.3.3 創建梯度推進迴歸器 353
20.3.4 使用GBM 超參數 353
第6 部分 十大係列專題 355
第 21 章 10 個必不可少的數據科學資源集 357
21.1 用數據科學周刊獲得深入瞭解 358
21.2 在U Climb Higher 上獲取資源列錶 358
21.3 用KDnuggets 來獲得一個良好的起點 359
21.4 訪問數據科學中心上的巨型資源列錶 359
21.5 從專傢處獲得開源數據科學情報 360
21.6 用Quora 來定位到免費的學習資源 360
21.7 在Conductrics 上接收高級主題的幫助 361
21.8 從立誌數據科學傢中學習新技巧 361
21.9 在AnalyticBridge 上尋找數據智能和分析資源 362
21.10 專注於Jonathan Bower的開發者資源 362
第 22 章 10 個你應該接受的挑戰 364
22.1 迎接數據科學倫敦+Scikit-learn 的挑戰 365
22.2 預測泰坦尼剋號上的幸存者 366
22.3 尋找滿足你需求的Kaggle競賽 366
22.4 磨練你的過擬閤策略 367
22.5 涉獵MovieLens 數據集 367
22.6 清除垃圾郵件 368
22.7 使用手寫信息工作 369
22.8 使用圖片工作 370
22.9 分析Amazon.com 審查 371
22.10 與巨圖交互 371
· · · · · · (
收起)