Python 數據科學入門 (Python for Data Science For Dummies)

約翰·保羅·穆勒 (John Paul Mueller), 盧卡·馬薩羅 (Luca Massaron)

買這商品的人也買了...

商品描述

本書的目標是介紹如何使用Python 語言及其工具,解決和數據科學所關聯的復雜任務。
全書共6 個部分,分22 章,涵蓋了Python 數據科學基礎知識,數據的採集、整理、整形、應用,數據的可視化,數據分析和處理,數據學習,以及和數據科學相關的10 個話題等。本書將重點放在使用正確的工具上,教讀者如何使用Anaconda、atPlotLib、NumPy、pandas、Scikit-learn 等常用的工具來解決數據科學的相關問題。
本書適合對數據科學的知識和應用方法感興趣的讀者閱讀,特別適合有志於學習Python 數據分析和處理的讀者學習參考。

作者簡介

作者:John Paul Mueller,Luca Massaron
John Paul Mueller是一名顧問、應用開發人員、作家和技術編輯,已經寫了超過600篇的文章和97本書。

Luca Massaron是一名數據科學家,專注於多變量統計分析、機器學習和客戶洞察力等領域。

他是意大利Web聽眾分析方面的先驅,是世界知名的數據科學家之一。

目錄大綱

第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