前言
通過學習本書,你將逐步掌握將原始數據轉化為重要結論的過程。本書所涉及的大量案例學習和代碼樣例,均使用現下流行的開源Python庫,闡述了分析應用完整的開發(fā)過程。詳細的案例講述了常見應用場合下健壯、可擴展的應用。你將學會如何快速將這些模型應用到自己的數據中去。
本書內容第1章講述了如何描述一個分析管道中的核心組件以及組件間的交互方式,也探討了批處理和流處理之間的區(qū)別,以及每種應用最適用的一些情況,還講解了基于兩種范式的基礎應用樣例以及每一步所需的設計決策。第2章討論了著手搭建分析型應用所需完成的諸多工作。運用IPython notebook,我們討論了如何使用pandas將文件中的數據上傳到數據幀中、重命名數據集中的列名、過濾掉不想要的行、轉換類型以及創(chuàng)建新的列。另外,我們將整合不同來源的數據,并使用聚合和旋轉進行一些基本的統(tǒng)計分析。第3章將演示如何將一個數據集里的相似項定義成組。這種探索性分析是我們在理解新數據集過程中經常第一個使用的。我們探索計算數據點值間相似性的不同方法,并描述這些度量可能最適合于哪些數據。我們既探討分裂聚類算法(將數據分解成一組一組更小的部分),也探討凝聚聚類算法(每個數據點都是一個聚類的開始)。通過一系列數據集,我們將展示每種算法在哪些情景下性能更好或者更差,以及如何優(yōu)化它們。我們也看到了首個(比較小的)數據管道——PySpark中基于流數據的聚類應用。第4章探討了幾種回歸模型擬合模型,包括將輸入參數調整到正確數值范圍并對類別特征做出正確說明。我們對線性回歸進行擬合、評估,也包括正則化回歸模型。我們還研究樹回歸模型的用處,以及如何優(yōu)化參數選項來擬合模型。最后,我們會討論一個基于PySpark的簡單隨機森林模型,該模型也可以用于更大的數據集。第5章闡述了如何使用分類模型并介紹幾種提升模型性能的策略。除了轉換類別特征之外,我們討論了如何利用ROC曲線對邏輯回歸準確性進行解釋。為了嘗試提升模型的性能,我們講解了SVM的用處。最后,我們將使用梯度提升決策樹算法,以期在測試數據集上可以取得較好的性能。第6章討論復雜的、非結構化的數據。其中還涉及了降維技術(例如HashingVectorizer)、矩陣分解(例如PCA、CUR和NMR)以及概率模型(例如LDA),討論了圖像數據,包括標準化操作和閾值轉換操作,并介紹如何使用降維技術找出圖像之間的共同模式。第7章介紹了將深度神經網絡作為一種生成模型的方法,來處理那些工程師難以處理其特征的復雜數據。我們將研究如何使用反向傳播訓練神經網絡,并探究附加層難以達到最優(yōu)的原因。第8章描述了一個基本預測服務的三個組件,并探討這種設計如何使我們與其他用戶或者軟件系統(tǒng)分享預測模型的結果。第9章介紹幾個監(jiān)控初步設計后預測模型性能的策略。我們也會討論一些模型的性能或組件會隨時間變化的場景。閱讀準備你需要安裝好最新版的Python、PySpark以及Jupyter notebook。
讀者人群本書主要針對業(yè)務分析員、BI分析員、數據科學家,或是一些已經掌握高級分析員理論知識的初級數據分析員。通過閱讀本書,上述讀者將可以運用Python設計并構建高級分析解決方案。讀者必須具備基礎Python開發(fā)經驗。
譯者序
關于審稿人
前言
第1章數據轉換成決策——從分析應用著手
1.1設計高級分析方案
1.1.1數據層:數據倉庫、數據湖和數據流
1.1.2模型層
1.1.3部署層
1.1.4報告層
1.2案例學習:社交媒體數據的情感分析
1.2.1數據輸入和轉換
1.2.2合理性檢查
1.2.3模型開發(fā)
1.2.4評分
1.2.5可視化和報告
1.3案例學習:針對性電子郵件活動
1.3.1數據輸入和轉換
1.3.2合理性檢查
1.3.3模型開發(fā)
1.3.4評分
1.3.5可視化和報告
1.4總結
第2章Python數據分析和可視化初探
2.1在IPython中探索分類和數值型數據
2.1.1安裝IPython notebook
2.1.2notebook的界面
2.1.3加載和檢視數據
2.1.4基本操作——分組、過濾、映射以及透視
2.1.5用Matplotlib繪制圖表
2.2時間序列分析
2.2.1清洗和轉換
2.2.2時間序列診斷
2.2.3連接信號和相關性
2.3操作地理數據
2.3.1加載地理數據
2.3.2工作在云上
2.4PySpark簡介
2.4.1創(chuàng)建SparkContext
2.4.2創(chuàng)建RDD
2.4.3創(chuàng)建Spark DataFrame
2.4總結
第3章在噪聲中探求模式——聚類和無監(jiān)督學習
3.1相似性和距離度量
3.1.1數值距離度量
3.1.2相關相似性度量和時間序列
3.1.3分類數據的相似性度量
3.1.4k均值聚類
3.2近鄰傳播算法——自動選擇聚類數量
3.3k中心點算法
3.4凝聚聚類算法
3.5Spark中的數據流聚類
3.6總結
第4章從點到模型——回歸方法
4.1線性回歸
4.1.1數據準備
4.1.2模型擬合和評價
4.1.3回歸輸出的顯著性差異
4.1.4廣義估計方程
4.1.5混合效應模型
4.1.6時間序列數據
4.1.7廣義線性模型
4.1.8線性模型的正則化
4.2樹方法
4.2.1決策樹
4.2.2隨機森林
4.3利用PySpark進一步擴展——預測歌曲的發(fā)行年份
4.4總結
第5章數據分類——分類方法和分析
5.1邏輯回歸
5.1.1多分類邏輯分類器:多元回歸
5.1.2分類問題中的數據格式化
5.1.3基于隨機梯度下降法的學習逐點更新
5.1.4使用二階方法聯合優(yōu)化所有參數
5.2擬合模型
5.3評估分類模型
5.4通過支持向量機分離非線性邊界
5.4.1人口普查數據的擬合和SVM
5.4.2Boosting:組合小模型以改善準確度
5.4.3梯度提升決策樹
5.5分類方法比較
5.6案例學習:在PySpark中擬合分類器模型
5.7總結
第6章詞語和像素——非結構化數據分析
6.1文本數據分析
6.1.1文本數據清洗
6.1.2從文本數據中提取特征
6.1.3利用降維來簡化數據集
6.2主分量分析
6.2.1隱含狄利克雷分布
6.2.2在預測模型中使用降維
6.3圖像
6.3.1圖像數據清洗
6.3.2利用圖像閾值來突出顯示對象
6.3.3圖像分析中的降維
6.4案例學習:在PySpark中訓練一個推薦系統(tǒng)
6.5總結
第7章自底向上學習——深度網絡和無監(jiān)督特征
7.1使用神經網絡學習模式
7.1.1單一感知器構成的網絡
7.1.2感知器組合——一個單層神經網絡
7.1.3反向傳播的參數擬合
7.1.4判別式模型與生成式模型
7.1.5梯度消失及“解去”
7.1.6預訓練信念網絡(貝葉斯網絡)
7.1.7使用dropout來正則化網絡
7.1.8卷積網絡和糾正單元
7.1.9利用自編碼網絡壓縮數據
7.1.10優(yōu)化學習速率
7.2TensorFlow庫與數字識別
7.2.1MNIST數據
7.2.2構建網絡
7.3總結
第8章利用預測服務共享模型
8.1預測服務的架構
8.2客戶端和發(fā)出請求
8.2.1GET請求
8.2.2POST請求
8.2.3HEAD請求
8.2.4PUT請求
8.2.5DELETE請求
8.3服務器——Web流量控制器
8.4利用數據庫系統(tǒng)持久化存儲信息
8.5案例學習——邏輯回歸服務
8.5.1建立數據庫
8.5.2Web服務器
8.5.3Web應用
8.6總結
第9章報告和測試——分析型系統(tǒng)迭代
9.1利用診斷檢查模型的健康度
9.1.1評估模型性能的變化
9.1.2特征重要性的變化
9.1.3無監(jiān)督模型性能的變化
9.2通過A/B測試對模型進行迭代
9.2.1實驗分配——將客戶分配給實驗
9.2.2決定樣本大小
9.2.3多重假設檢驗
9.3溝通指南
9.3.1將術語轉換為業(yè)務價值
9.3.2可視化結果
9.3.3報告服務器
9.3.4報告應用
9.3.5可視化層
9.4總結