本書提供了一系列將數據轉化為重要結論的現實案例。書中覆蓋了廣泛的數據分析工具和算法,用于進行分類分析、聚類分析、數據可視化、數據模擬以及預測。本書的目標是幫助讀者了解數據從而找到相應的模式、趨勢、相互關系以及重要結論。書中所包括的實用項目充分利用了MongoDB、D3.js和Python語言,并采用代碼片段和詳細描述的方式呈現本書的核心概念。
前 言 Preface本書提供了一系列將數據轉化為重要結論的現實案例。書中覆蓋了廣泛的數據分析工具和算法,用于進行分類分析、聚類分析、數據可視化、數據模擬以及預測。本書旨在幫助讀者了解數據從而找到相應的模式、趨勢、相互關系以及重要結論。 書中所包括的實用項目充分利用了MongoDB、D3.js和Python語言,并采用代碼片段和詳細描述的方式呈現本書的核心概念。 本書主要內容第1章探討數據分析的基本原理和數據分析步驟。 第2章解釋如何清洗并準備好數據來開展分析,同時介紹數據清洗工具OpenRefine的使用方法。 第3章展示在JavaScript可視化框架下應用D3.js語言來實現各類數據的可視化方法。 第4章介紹應用樸素貝葉斯(Naive Bayes)算法來區分垃圾文本的一種二元分類法。 第5章展示一個應用動態時間規整方法來尋找圖像間相似性的項目。 第6章解釋如何使用隨機漫步算法和可視化的D3.js動畫技術來模擬股票價格。 第7章介紹核嶺回歸(Kernel Ridge Regression,KRR)的原理以及如何使用此方法和時間序列數據來預測黃金價格。 第8章描述如何使用支持向量機的方法進行分類分析。 第9章介紹對流行病進行模擬計算的基本概念并解釋如何應用細胞自動機方法、D3.js和JavaScript語言來模擬流行病爆發。 第10章解釋如何應用Gephi從Facebook獲取社交媒體圖譜并使之實現可視化。 第11章解釋如何應用Twitter的應用程序編程接口(API)來獲取Twitter的數據。讀者也將看到如何改進文本分類分析方法并將其應用于情感分析。這一過程在自然語言工具包(Natural Language Toolkit, NLTK)中應用了樸素貝葉斯算法。 第12章介紹在MongoDB數據庫中進行基本操作以及分組、過濾和聚合的方法。 第13章詳細介紹如何在MongoDB數據庫中應用MapReduce編程模型。 第14章解釋如何使用Wakari平臺,同時介紹在IPython中運用pandas進行數據處理和使用PIL圖像處理庫的方法。 第15章介紹如何在Cloudera VM上使用分布式文件系統及數據環境。最后,利用實際案例介紹Apache Spark的主要特征。 閱讀準備使用本書需要掌握如下技術: PythonOpenRefineD3.jsmlpyNLTKGephiMongoDB讀者對象本書主要面向那些希望能夠實際開展數據分析和數據可視化的軟件開發人員、分析人員、計算機科學家。同時,本書也希望能夠為讀者提供包含時間序列數據、數值型數據、多維度數據和社交媒體數據、文本型數據等多種數據形式的實際案例,以幫助讀者獲得對數據分析的真知灼見。 讀者不需要具備數據分析的經驗,但仍需要對統計學和Python編程有基礎性的了解。 下載本書相關資源讀者可登錄華章網站(http://www.hzbook.com)下載本書的相關資源。
作 者 簡 介 About the AuthorHector Cuesta Dataxios(一家機器智能研發公司)的創辦人及首席數據科學家,擁有信息學士及計算機科學碩士學位。他在金融、零售、金融科技、在線學習、人力資源等領域提供數據驅動產品設計的咨詢服務。在空閑時間,他熱衷于研究機器人。可以關注他的推特:https://twitter.com/hmCuesta。 本書獻給我的妻子Yolanda和我可愛的孩子Damian和Issac,他們為我的生活帶來了無比的快樂。同時把本書獻給我的父母Elena和Miguel,感謝他們對我的支持和愛護。 Dr. Sampath Kumar Telangana大學應用統計系的助理教授和系主任,他擁有理學碩士、哲學碩士和統計學博士學位,擁有5年研究生教學經驗,有超過4年的工作經驗。他是SAS和MATLAB軟件高級程序員,專長是利用SPSS、SAS、R、Minitab、MATLAB等軟件進行數據統計。他在不同的應用學科和純統計專業(如預測建模、應用回歸分析、多變量數據分析、運營管理等)方面具有教學經驗。
目 錄 Contents譯者序作者簡介審校者簡介前言第1章 開始11.1 計算機科學11.2 人工智能21.3 機器學習21.4 統計學21.5 數學21.6 專業領域知識31.7 數據、信息和知識31.7.1 數據、信息和知識之間的相互性31.7.2 數據的本質41.8 數據分析過程51.8.1 問題61.8.2 數據準備61.8.3 數據探索71.8.4 預測建模71.8.5 結果可視化81.9 定量與定性數據分析91.10 數據可視化的重要性91.11 大數據101.12 自我量化121.12.1 傳感器和攝像頭121.12.2 社交網絡分析131.13 本書的工具和練習131.13.1 為什么使用 Python141.13.2 為什么使用mlpy141.13.3 為什么使用D3.js141.13.4 為什么使用 MongoDB151.14 小結15第2章 數據預處理162.1 數據源162.1.1 開源數據172.1.2 文本文件182.1.3 Excel文件182.1.4 SQL數據庫182.1.5 NoSQL數據庫192.1.6 多媒體202.1.7 網頁檢索202.2 數據清洗222.2.1 統計方法232.2.2 文本解析232.2.3 數據轉化252.3 數據格式252.3.1 CSV262.3.2 JSON272.3.3 XML282.3.4 YAML292.4 數據歸約302.4.1 過濾及抽樣302.4.2 分箱算法302.4.3 降維312.5 開始使用OpenRefine工具322.5.1 text facet332.5.2 聚類332.5.3 文本過濾器342.5.4 numeric facet342.5.5 數據轉化352.5.6 數據輸出362.5.7 操作歷史記錄362.6 小結37第3章 可視化383.1 可視化概述393.2 利用網頁版的可視化393.3 探索科學可視化393.4 在藝術上的可視化403.5 可視化生命周期403.6 可視化不同類型的數據413.6.1 HTML413.6.2 DOM423.6.3 CSS423.6.4 JavaScript433.6.5 SVG433.7 開始使用D3.js433.7.1 柱狀圖443.7.2 餅圖483.7.3 散點圖503.7.4 單線圖523.7.5 多線圖553.8 交互與動畫593.9 社交網絡中的數據613.10 可視化分析的摘要623.11 小結62第4章 文本分類634.1 學習和分類634.2 貝葉斯分類644.3 E-mail主題測試器654.4 數據664.5 算法684.6 分類器的準確性714.7 小結73第5章 基于相似性的圖像檢索745.1 圖像相似性搜索745.2 動態時間規整755.3 處理圖像數據集775.4 執行DTW775.5 結果分析795.6 小結81第6章 模擬股票價格826.1 金融時間序列826.2 隨機漫步模擬836.3 蒙特卡羅方法846.4 生成隨機數856.5 用D3.js實現866.6 計量分析師916.7 小結93第7章 預測黃金價格947.1 處理時間序列數據947.2 平滑時間序列977.3 線性回歸1007.4 數據—歷史黃金價格1017.5 非線性回歸1017.5.1 核嶺回歸1027.5.2 平滑黃金價格時間序列1047.5.3 平滑時間序列的預測1057.5.4 對比預測值1067.6 小結107第8章 使用支持向量機的方法進行分析1088.1 理解多變量數據集1098.2 降維1118.2.1 線性無差別分析1128.2.2 主成分分析1128.3 使用支持向量機1148.3.1 核函數1158.3.2 雙螺旋問題1168.3.3 在mlpy中實現SVM1168.4 小結119第9章 應用細胞自動機的方法對傳染病進行建模1209.1 流行病學簡介1209.2 流行病模型1229.2.1 SIR模型1229.2.2 使用SciPy來解決SIR模型的常微分方程1239.2.3 SIRS模型1249.3 對細胞自動機進行建模1259.3.1 細胞、狀態、網格和鄰域1269.3.2 整體隨機訪問模型1279.4 通過D3.js模擬CA中的SIRS模型1279.5 小結135第10章 應用社交圖譜13610.1 圖譜的結構13610.1.1 無向圖13710.1.2 有向圖13710.2 社交網絡分析13710.3 捕獲Facebook圖譜13810.4 使用Gephi再現圖譜13910.5 統計分析14210.6 度的分布14410.6.1 圖譜直方圖14510.6.2 集中度14610.7 將GDF轉化為JSON14810.8 在D3.js環境下進行圖譜可視化15010.9 小結154第11章 分析Twitter數據15511.1 解析Twitter數據15511.1.1 tweet15611.1.2 粉絲15611.1.3 熱門話題15611.2 使用OAuth訪問Twitter API15711.3 開始使用Twython15811.3.1 利用Twython進行簡單查詢15911.3.2 獲取時間表數據16311.3.3 獲取粉絲數據16511.3.4 獲取地點和趨勢信息16711.3.5 獲取用戶數據16811.3.6 API流16911.4 小結171第12章 使用MongoDB進行數據處理和聚合17212.1 開始使用MongoDB17212.1.1 數據庫17312.1.2 集合17512.1.3 文件17512.1.4 Mongo shell17512.1.5 Insert/Update/Delete17612.1.6 查詢17712.2 數據準備17812.2.1 使用OpenRefine進行數據轉換17912.2.2 通過PyMongo插入文件18012.3 分組18212.4 聚合框架18412.4.1 流水線18412.4.2 表達式18512.5 小結186第13章 使用MapReduce方法18813.1 MapReduce概述18813.2 編程模型18913.3 在MongoDB中使用MapReduce19013.3.1 map函數19013.3.2 reduce函數191