內容簡介
數據科學是一門正在興起的學科,國內外各個大學開始開設數據科學課程或類似課程,並且編寫配套教材。我們的教材在內容上按照四大模塊進行組織,分彆是數據科學基礎、數據以及數據上的計算(分析)、數據處理基礎設施/平颱和工具、以及大數據的案例和實踐。我們認為這樣的組織,使得內容體係相對完整。
作者簡介
覃雄派(1971?),男,博士,中國人民大學信息學院講師、碩士生導師,目前主要從事高性能數據庫、大數據分析、信息檢索等方麵的研究工作,主持1項國傢自然科學基金麵上項目,參與多項國傢“863”計劃、“973”計劃及國傢自然科學基金項目,在國內外期刊和會議上發錶論文20餘篇。
陳躍國(1978?),男,博士,中國人民大學信息學院副教授、博士生導師,中國計算機學會高級會員,數據庫專傢委員會委員,大數據專傢委員會通信委員,FrontiersofComputerScience青年編委,主要研究方嚮為大數據分析係統和語義搜索。主持國傢自然科學基金項目2項,廣東省科技應用重大專項1項,參與多項國傢核高基(核心電子器件、高端通用芯片及基礎軟件産品)、“973”計劃、“863”計劃項目,近年來在SIGMOD、SIGIR、ICDE、AAAI、IEEETKDE、WWW等國際重要期刊和會議上發錶論文30餘篇
杜小勇(1963?),男,博士,中國人民大學信息學院教授,博士生導師,教育部數據工程與知識工程重點實驗室主任,中國計算機學會會士,《大數據》期刊編委會副主任。主要研究方嚮為智能信息檢索、高性能數據庫、知識工程。主持和參與多項國傢核高基(核心電子器件、高端通用芯片及基礎軟件産品)、“973”計劃、“863”計劃、國傢自然科學基金項目,近年來在SIGMOD、VLDB、AAAI、IEEETKDE等國際重要期刊和會議上發錶論文百餘篇。
目錄
理論篇//
1 數據科學概論
1.1 數據科學的定義
1.2 數據科學的定位
1.2.1 數據科學與數據庫、大數據分析的關係
1.2.2 數據科學與基於數據的決策的關係
1.3 數據科學傢
1.3.1 數據科學傢的技能
1.4 數據科學的基本原則(Principle)
1.4.1 原則1:數據分析可以劃分成一係列明確的階段
1.4.2 原則2:描述性分析與預測性分析
1.4.3 原則3:實體的相似度
1.4.4 原則4:模型的泛化能力
1.4.5 原則5:分析結果的評估與特定應用場景有關
1.4.6 原則6:相關性不同於因果關係
1.4.7 原則7:通過並行處理提高數據處理(分析)速度
1.5 數據處理流程:時間維度的縱嚮視角
1.6 數據處理係統的架構:係統維度的計算視角
1.6.1 數據處理係統的層次架構
1.6.2 數據處理係統的Lambda架構
1.7 數據的多樣性:數據類型維度的橫嚮視角
1.8 數據價值的挖掘:價值維度的價值提升視角
1.9 思考題
2 OLTP與數據服務
2.1 麵嚮OLTP應用的RDBMS數據庫技術
2.1.1 關係數據庫技術與SQL查詢語言
2.1.2 利用索引加快數據訪問
2.1.3 數據庫的事務處理、恢復技術與安全保證
2.1.4 並行數據庫與分布式數據庫
2.2 麵嚮數據服務的NoSQL數據庫技術
2.2.1 NoSQL數據庫技術
2.2.2 CAP理論
2.2.3 Key-Value數據庫
2.2.4 Column Family數據庫
2.2.5 Document數據庫
2.2.6 Graph數據庫
2.3 NewSQL數據庫技術
2.3.1 VoltDB數據庫
2.3.2 Google Spanner數據庫
2.4 思考題
3 OLAP與結構化數據分析
3.1 聯機分析處理(OLAP)與結構化數據分析
3.1.1 從操作型的業務數據庫嚮數據倉庫抽取、轉換和裝載數據
3.1.2 數據倉庫與星型模型
3.1.3 聯機分析處理OLAP
3.1.4 三種類型的OLAP係統
3.2 高性能OLAP係統的關鍵技術
3.2.1 列存儲技術
3.2.2 位圖索引技術
3.2.3 內存數據庫技術
3.2.4 MPP並行數據庫
3.3 結構化數據分析工具介紹
3.3.1 MPP(Shared-Nothing)數據庫、基於列存儲的關係數據庫
3.3.2 SQL on Hadoop係統
3.3.3 性能比較
3.4 思考題
......
機器學習的基石:從統計學視角理解核心算法 本書旨在為讀者深入剖析機器學習的統計學根基,剝離錶麵繁復的算法實現,直擊其背後蘊含的數學原理與統計思想。我們不局限於介紹各種算法的“是什麼”和“怎麼用”,而是著重探討“為什麼”它們能有效工作,以及在不同場景下選擇何種算法的深層邏輯。通過理解這些統計學原理,讀者將能夠更自信地應對各種數據挑戰,構建更魯棒、更具洞察力的模型。 第一章:概率論與數理統計:機器學習的語言 在開啓機器學習之旅前,紮實的概率論與數理統計基礎是必不可少的。本章將從機器學習的視角,重新審視這些經典學科的核心概念。 隨機變量與概率分布: 我們將介紹離散型和連續型隨機變量的概念,以及概率質量函數(PMF)和概率密度函數(PDF)的作用。重點將放在理解常用的概率分布,如二項分布、泊鬆分布、正態分布、指數分布等,並闡述它們在描述現實世界數據中的意義。例如,泊鬆分布可以用來模擬單位時間內事件發生的次數,如網站訪問量;正態分布則廣泛應用於描述自然現象和測量誤差。理解這些分布的形狀、參數(均值、方差、標準差)如何影響數據的特徵,是構建有效模型的起點。 期望、方差與協方差: 期望代錶瞭隨機變量的平均值,是衡量數據中心趨勢的重要指標。方差和標準差則量化瞭數據的離散程度,即數據點圍繞均值的波動範圍。我們將深入探討協方差的意義,它如何揭示兩個隨機變量之間的綫性關係,以及正協方差、負協方差和零協方差所代錶的不同含義。這些概念不僅有助於理解數據的分布特性,也是後續模型評估和特徵工程的關鍵。 條件概率與貝葉斯定理: 條件概率是理解“在已知某些事件發生的情況下,另一事件發生的概率”的關鍵。我們將通過生動的例子,如疾病診斷、垃圾郵件過濾等,來闡釋條件概率的應用。貝葉斯定理是概率論中的皇冠,它提供瞭一種更新信念(概率)的方式,即在觀察到新的證據後,如何修正我們對某個事件發生概率的估計。這在許多機器學習算法中扮演著核心角色,尤其是在分類和推斷問題上。 統計推斷:參數估計與假設檢驗: 統計推斷是利用樣本數據來推斷總體特徵的過程。本章將介紹點估計和區間估計,理解如何根據樣本來估計總體的均值、方差等參數。我們將重點講解最大似然估計(MLE)和矩估計等常用方法,並分析它們的優缺點。此外,假設檢驗是驗證我們對總體特徵的猜想是否成立的有力工具。我們將介紹零假設、備擇假設、p值、顯著性水平等概念,並演示如何通過假設檢驗來做齣決策,例如判斷某個新特徵是否顯著提升瞭模型的預測精度。 第二章:綫性迴歸:從數據擬閤到因果推斷的橋梁 綫性迴歸是機器學習中最基礎但也是最強大的模型之一。本章將從統計學角度深入剖析其原理,並揭示其在數據分析和預測中的廣泛應用。 模型假設與目標函數: 我們將詳細闡述綫性迴歸模型的核心假設,例如綫性關係、誤差項的獨立同分布(i.i.d.)且服從正態分布、方差齊性等。理解這些假設的重要性,有助於我們判斷綫性迴歸是否適用於特定數據集,以及如何診斷和處理模型失效的情況。我們將介紹最小二乘法(OLS)作為目標函數,解釋它如何通過最小化預測值與真實值之間的殘差平方和來找到最佳擬閤直綫。 參數估計:OLS與MLE: 我們將推導OLS估計量的解析解,並說明其在滿足模型假設下的最優性(高斯-馬爾可夫定理)。此外,我們還會從最大似然估計的角度來理解綫性迴歸的參數估計,並展示OLS與MLE在正態分布假設下的等價性。 模型評估與診斷: 僅有參數估計是不夠的,我們需要評估模型的錶現。本章將介紹決定係數(R-squared)如何衡量模型對數據變異的解釋程度。我們還將深入講解殘差分析,通過可視化殘差圖來檢查模型假設是否被違反,例如是否存在異方差、非綫性關係或異常值。此外,F檢驗和t檢驗將幫助我們評估模型的整體顯著性和單個解釋變量的重要性。 正則化:L1與L2: 為瞭解決過擬閤問題,我們引入正則化技術。L1正則化(Lasso)通過引入L1範數懲罰項,能夠使得部分模型參數趨於零,從而實現特徵選擇。L2正則化(Ridge)通過引入L2範數懲罰項,能夠收縮模型參數,降低模型復雜度,提高模型的泛化能力。我們將詳細解釋正則化項如何影響損失函數,以及它們在實際應用中的作用。 多元綫性迴歸與交互項: 在實際問題中,通常需要考慮多個解釋變量。我們將擴展綫性迴歸模型,討論多元綫性迴歸的原理和參數估計。特彆地,我們將重點講解交互項(interaction terms)的引入,它們如何捕捉兩個變量聯閤作用的效果,以及在何種情況下需要使用交互項來獲得更精確的建模。 第三章:邏輯迴歸:從概率模型到分類決策 邏輯迴歸雖然名字中有“迴歸”,但它實際上是一種強大的分類算法。本章將從統計學角度揭示其工作原理,以及它在二分類和多分類問題中的應用。 概率模型與Sigmoid函數: 與綫性迴歸直接預測數值不同,邏輯迴歸的目標是預測一個事件發生的概率。我們將介紹邏輯迴歸如何通過Sigmoid(或Logistic)函數將綫性模型的輸齣映射到0到1之間的概率值。Sigmoid函數 $ sigma(z) = frac{1}{1 + e^{-z}} $ 的關鍵作用在於將任意實數值轉化為概率,同時保持瞭其單調性。 似然函數與交叉熵損失: 我們將推導邏輯迴歸的似然函數,並解釋為什麼交叉熵(Cross-Entropy)是其最常用的損失函數。交叉熵衡量瞭模型預測的概率分布與真實標簽分布之間的差異,最小化交叉熵等價於最大化模型預測的準確性。 梯度下降與參數更新: 由於邏輯迴歸的損失函數是非綫性的,我們通常使用梯度下降算法來求解最優參數。本章將詳細介紹梯度下降算法的原理,包括學習率的選擇、批量梯度下降、隨機梯度下降(SGD)及其變種(如Adam、RMSprop)的優缺點,以及它們如何逐步逼近損失函數的最小值。 決策邊界與類彆判斷: 理解邏輯迴歸的決策邊界是如何形成的至關重要。我們將展示Sigmoid函數如何通過一個閾值(通常是0.5)來劃分不同的類彆。例如,當 $ sigma(z) > 0.5 $ 時,預測為正類;反之,則預測為負類。我們將探討綫性決策邊界的幾何意義。 多項邏輯迴歸: 對於多分類問題,我們將介紹多項邏輯迴歸(Multinomial Logistic Regression)或稱為Softmax迴歸。它通過Softmax函數將模型的輸齣轉化為多個類彆的概率分布,並采用one-vs-rest或softmax的目標函數進行訓練。 第四章:決策樹與集成學習:模型融閤的智慧 決策樹作為一種直觀易懂的模型,是許多復雜算法的基礎。本章將深入探討決策樹的構建原理,並在此基礎上介紹強大的集成學習方法。 決策樹的構建:信息增益與基尼不純度: 我們將詳細闡述決策樹如何通過遞歸地劃分數據集來構建模型。核心在於如何選擇最優的劃分特徵和分裂點。本章將重點介紹信息增益(Information Gain)和基尼不純度(Gini Impurity)作為衡量節點純度的指標,以及它們如何指導樹的生長。我們將分析信息增益的計算方法,以及它在選擇最佳分裂點時的作用。 過擬閤與剪枝: 決策樹容易過擬閤,即模型在訓練集上錶現良好,但在測試集上錶現較差。我們將介紹預剪枝(Pre-pruning)和後剪枝(Post-pruning)技術,以及它們如何控製樹的復雜度,提高模型的泛化能力。 集成學習:Bagging與Boosting: 集成學習的思想是通過組閤多個弱學習器來構建一個強學習器。我們將詳細介紹Bagging(裝袋)方法,如隨機森林(Random Forest),它通過自助采樣(Bootstrap Aggregating)和隨機特徵選擇來構建多個獨立的決策樹,並投票決定最終預測結果。 Boosting係列算法:AdaBoost與Gradient Boosting: Boosting方法則是一種順序學習方法,它關注前一個弱學習器的錯誤,並將其作為下一個弱學習器的學習重點。我們將深入講解AdaBoost(自適應增強)的原理,以及它如何通過調整樣本權重來提升錯誤分類樣本的重要性。隨後,我們將介紹Gradient Boosting(梯度提升),例如XGBoost、LightGBM等,它們通過優化損失函數的梯度來逐步逼近最優模型,是當前最為流行的集成學習算法之一。我們將分析Gradient Boosting如何通過引入殘差來減小模型誤差。 第五章:支持嚮量機(SVM):最大化間隔的幾何視角 支持嚮量機(SVM)是一種強大且廣泛應用的監督學習算法,尤其在處理非綫性可分數據方麵錶現齣色。本章將從幾何和統計學的角度深入理解SVM的工作原理。 綫性SVM:最大間隔分類器: 我們將詳細介紹綫性SVM的核心思想:找到一個最優超平麵,使得不同類彆的數據點到該超平麵的距離(間隔)最大化。我們將解釋間隔的概念,以及為什麼最大化間隔能夠提升模型的泛化能力。我們將介紹拉格朗日乘子法和對偶問題,推導齣求解最優超平麵的支持嚮量。 核技巧:處理非綫性可分數據: 對於綫性不可分的數據,SVM通過核技巧(Kernel Trick)將其映射到更高維度的特徵空間,使其在該空間內綫性可分。我們將介紹常用的核函數,如多項式核、徑嚮基函數(RBF)核,並解釋它們如何在不顯式計算高維映射的情況下,計算高維空間中的內積。 軟間隔SVM:容忍噪聲與異常值: 在實際應用中,數據往往存在噪聲和異常值。我們將介紹軟間隔SVM,它通過引入鬆弛變量(slack variables)和懲罰項來允許少量樣本誤分類,從而提高模型的魯棒性。 SVM的優缺點與應用場景: 我們將總結SVM的優勢,如在小樣本、高維度問題上的良好錶現,以及其在文本分類、圖像識彆等領域的成功應用。同時,也會討論SVM的計算復雜度等局限性。 第六章:無監督學習:揭示數據內在結構 本章將轉嚮無監督學習,探討如何在沒有標簽的情況下,從數據中發現有價值的模式和結構。 聚類分析:K-Means與層次聚類: 我們將介紹K-Means算法,它是一種迭代式的聚類方法,旨在將數據點劃分為K個簇,使得簇內方差最小化。我們將討論K值的選擇、初始化策略以及算法的優缺點。此外,我們將介紹層次聚類(Hierarchical Clustering),包括凝聚型(Agglomerative)和分裂型(Divisive)兩種方法,並理解其如何構建一個聚類樹(dendrogram)。 降維技術:主成分分析(PCA): 降維是無監督學習中的重要任務,旨在減少數據的維度,同時保留盡可能多的信息。我們將詳細介紹主成分分析(PCA)的原理,它通過尋找數據方差最大的方嚮(主成分)來對數據進行綫性變換,從而達到降維的目的。我們將討論PCA在可視化、特徵提取和噪聲去除方麵的應用。 降維技術:t-SNE: 對於可視化高維數據,t-SNE(t-Distributed Stochastic Neighbor Embedding)是一種非常有效的非綫性降維技術。我們將介紹t-SNE如何通過保留數據點之間的局部相似性來在高維空間和低維空間之間建立映射,從而生成直觀的可視化結果。 關聯規則挖掘:Apriori算法: 關聯規則挖掘旨在發現數據項之間的有趣關係,例如“購買啤酒的顧客也傾嚮於購買尿布”。我們將介紹Apriori算法,它是一種經典的關聯規則挖掘算法,通過頻繁項集(frequent itemsets)的生成和規則的推導來發現項之間的關聯性。 第七章:模型評估與選擇:建立可靠的預測體係 一個優秀的機器學習模型不僅僅在於其算法的復雜性,更在於其科學的評估和嚴謹的選擇。本章將聚焦於如何有效地評估模型性能,以及如何根據評估結果做齣最佳模型選擇。 交叉驗證:提升模型評估的魯棒性: 我們將詳細介紹K摺交叉驗證(K-Fold Cross-Validation)等方法,它通過將數據集劃分成多個子集,輪流用其中一部分作為測試集,其餘作為訓練集,來獲得對模型性能更可靠的估計。這將有效避免因數據劃分的偶然性而導緻的評估偏差。 分類模型評估指標:準確率、精確率、召迴率、F1分數與ROC麯綫: 對於分類模型,我們將深入理解各種評估指標的含義。準確率(Accuracy)簡單直觀,但當類彆不平衡時可能具有誤導性。精確率(Precision)和召迴率(Recall)則從不同角度衡量模型的性能。F1分數結閤瞭精確率和召迴率,提供瞭一個綜閤的度量。ROC麯綫(Receiver Operating Characteristic curve)和AUC(Area Under the Curve)則提供瞭一種更全麵的評估方法,能夠展示模型在不同閾值下的性能錶現。 迴歸模型評估指標:均方誤差(MSE)、均方根誤差(RMSE)、平均絕對誤差(MAE)與R-squared: 對於迴歸模型,我們將迴顧並深入理解均方誤差(MSE)、均方根誤差(RMSE)、平均絕對誤差(MAE)等指標,它們分彆衡量瞭預測值與真實值之間的誤差大小。R-squared(決定係數)則從模型解釋力的角度評估其性能。 模型選擇與調參: 我們將討論如何綜閤運用各種評估指標,以及交叉驗證的結果,來選擇最優的模型。此外,超參數調優(Hyperparameter Tuning)的重要性也將被強調,例如網格搜索(Grid Search)和隨機搜索(Random Search)等技術,以及它們如何幫助我們找到模型的最佳配置。 貫穿全書的統計學思維 本書始終強調從統計學視角理解機器學習。這意味著我們不僅僅關注算法的實現,更側重於理解其背後的數學原理、概率假設和統計推斷。通過學習本書,讀者將能夠: 建立對數據分布的深刻理解: 能夠識彆不同數據分布的特徵,並選擇閤適的模型。 掌握模型假設的意義: 瞭解模型做齣預測的前提條件,以及違反假設可能帶來的後果。 學會診斷模型問題: 能夠通過殘差分析、誤差分析等手段,識彆模型中的潛在問題,並進行針對性優化。 具備嚴謹的模型評估能力: 能夠選擇閤適的評估指標,並利用交叉驗證等方法,客觀公正地評價模型性能。 提升模型的解釋能力: 能夠更清晰地解釋模型為何做齣某個預測,以及哪些因素對預測結果影響最大。 本書旨在為讀者構建一個堅實的機器學習理論基礎,讓讀者在麵對實際數據問題時,能夠做到知其然,更知其所以然,從而成為一名更優秀的機器學習實踐者。