內容簡介
R提供瞭一個免費、開源的環境,這對於學習預測建模以及在真實環境下部署解決方案是很理想的。隨著不斷增長的社區和大量擴展包的齣現,R提供瞭一個應對一係列問題的切實解決方案。本書可以作為學習預測建模基礎知識的指南和參考讀物。本書的開篇是關於模型術語和預測建模過程的一個專門章節。後續的每個章節會講解具體的一類模型(例如神經網絡),並把重點放在三個重要問題上:模型如何工作,如何利用R語言訓練模型,以及如何利用實際環境下的數據集來衡量和評估模型的性能。通過閱讀本書,讀者將利用實際環境下的數據集探討和測試流行的建模技術,並掌握多種預測分析領域的技術。
目錄
譯者序
前 言
第1章 準備預測建模1
1.1 模型1
1.1.1 從數據中學習2
1.1.2 模型的核心組成部分5
1.1.3 我們的第一個模型:k近鄰5
1.2 模型的類型7
1.2.1 有監督、無監督、半監督和強化學習模型7
1.2.2 參數化和非參數化模型8
1.2.3 迴歸和分類模型8
1.2.4 實時和批處理機器學習模型9
1.3 預測建模的過程9
1.3.1 定義模型的目標9
1.3.2 收集數據10
1.3.3 選取模型11
1.3.4 數據的預處理12
1.3.5 特徵工程和降維19
1.3.6 訓練和評估模型22
1.3.7 重復嘗試不同模型及模型的最終選擇25
1.3.8 部署模型25
1.4 性能衡量指標25
1.4.1 評估迴歸模型26
1.4.2 評估分類模型26
1.5 小結30
第2章 綫性迴歸31
2.1 綫性迴歸入門31
2.2 簡單綫性迴歸33
2.3 多元綫性迴歸36
2.3.1 預測CPU性能37
2.3.2 預測二手汽車的價格38
2.4 評估綫性迴歸模型40
2.4.1 殘差分析42
2.4.2 綫性迴歸的顯著性檢驗45
2.4.3 綫性迴歸的性能衡量指標47
2.4.4 比較不同的迴歸模型49
2.4.5 在測試集上的性能50
2.5 綫性迴歸的問題51
2.5.1 多重共綫性51
2.5.2 離群值52
2.6 特徵選擇53
2.7 正則化55
2.7.1 嶺迴歸55
2.7.2 最小絕對值收縮和選擇算子56
2.7.3 在R語言裏實現正則化57
2.8 小結59
第3章 邏輯迴歸61
3.1 利用綫性迴歸進行分類61
3.2 邏輯迴歸入門63
3.2.1 廣義綫性模型63
3.2.2 解釋邏輯迴歸中的係數64
3.2.3 邏輯迴歸的假設65
3.2.4 最大似然估計65
3.3 預測心髒病66
3.4 評估邏輯迴歸模型69
3.4.1 模型的偏差70
3.4.2 測試集的性能73
3.5 利用lasso進行正則化73
3.6 分類指標74
3.7 二元邏輯分類器的擴展76
3.7.1 多元邏輯迴歸76
3.7.2 有序邏輯迴歸80
3.8 小結83
第4章 神經網絡84
4.1 生物神經元84
4.2 人工神經元85
4.3 隨機梯度下降86
4.3.1 梯度下降和局部極小值88
4.3.2 感知器算法88
4.3.3 綫性分離91
4.3.4 邏輯神經元92
4.4 多層感知器網絡92
4.5 預測建築物的能源效率95
4.6 重新進行玻璃類型預測99
4.7 預測手寫數字102
4.8 小結106
第5章 支持嚮量機108
5.1 最大邊緣分類108
5.2 支持嚮量分類111
5.3 核和支持嚮量機113
5.4 預測化學品的生物降解115
5.5 交叉驗證118
5.6 預測信用評分120
5.7 用支持嚮量機進行多類彆分類123
5.8 小結123
第6章 樹形方法124
6.1 樹形模型的直觀印象124
6.2 訓練決策樹的算法126
6.2.1 分類和迴歸樹126
6.2.2 迴歸模型樹131
6.2.3 CART分類樹131
6.2.4 C5.0133
6.3 在閤成的二維數據上預測類彆歸屬關係134
6.4 預測紙幣的真實性136
6.5 預測復雜的技能學習138
6.5.1 在CART樹裏對模型參數進行調優140
6.5.2 樹模型中的變量重要性141
6.5.3 迴歸模型樹實用示例142
6.6 小結143
第7章 集成方法144
7.1 裝袋144
7.1.1 邊緣和袋外觀測數據145
7.1.2 用裝袋預測復雜技能學習146
7.1.3 用裝袋預測心髒病146
7.1.4 裝袋的局限性150
7.2 增強151
7.3 預測大氣中伽馬射綫的輻射152
7.4 利用增強算法預測復雜技能學習156
7.5 隨機森林157
7.6 小結159
第8章 概率圖模型161
8.1 圖論入門161
8.2 貝葉斯定理163
8.3 條件性獨立163
8.4 貝葉斯網絡164
8.5 樸素貝葉斯分類器165
8.6 隱馬爾可夫模型172
8.7 預測啓動子基因序列174
8.8 預測英語單詞裏的字母特徵179
8.9 小結182
第9章 時間序列分析184
9.1 時間序列的基本概念184
9.2 一些基本的時間序列185
9.2.1 白噪聲185
9.2.2 隨機漫步187
9.3 平穩性188
9.4 平穩時間序列模型189
9.4.1 移動平均模型189
9.4.2 自迴歸模型192
9.4.3 自迴歸移動平均模型193
9.5 非平穩時間序列模型194
9.5.1 整閤自迴歸移動平均模型194
9.5.2 自迴歸條件異方差模型195
9.5.3 廣義自迴歸條件異方差模型195
9.6 預測強烈地震196
9.7 預測猞猁的誘捕199
9.8 預測外匯匯率200
9.9 其他時間序列模型202
9.10 小結203
第10章 主題建模204
10.1 主題建模概況204
10.2 隱含狄式分布205
10.2.1 狄式分布205
10.2.2 生成過程208
10.2.3 擬閤LDA模型209
10.3 對在綫新聞報道的主題進行建模210
10.3.1 模型穩定性215
10.3.2 找齣主題數量216
10.3.3 主題分布217
10.3.4 單詞分布219
10.3.5 LDA擴展模型220
10.4 小結220
第11章 推薦係統222
11.1 評分矩陣222
11.2 協同過濾225
11.2.1 基於用戶的協同過濾225
11.2.2 基於商品的協同過濾228
11.3 奇異值分解228
11.4 R語言和大數據231
11.5 預測電影和笑話的推薦232
11.6 加載和預處理數據233
11.7 對數據進行探索234
11.7.1 評估二元的top-N推薦236
11.7.2 評估非二元的top -N推薦239
11.7.3 評估每種預測方法241
11.8 推薦係統的其他方法242
11.9 小結243
前言/序言
預測分析以及更一般意義上的數據科學當前正處於被追捧的熱潮中,因為像垃圾郵件過濾、單詞補全和推薦引擎這樣的預測性技術已經被廣泛運用於日常生活。這些技術現在不僅越來越被我們所熟悉,還贏得瞭我們的信任。在計算機處理能力和軟件方麵(例如R語言及其大量專用的擴展包)的發展産生瞭這樣的局麵:用戶經過培訓就可以使用這些工具,而無需具備統計學的高級學位,也不需要使用公司或大學實驗室專用的硬件。技術的成熟度和基礎軟硬件的可用性結閤起來,讓很多該領域的從業者倍感興奮,他們感到可以為自己的領域和業務設計一些能産生重要影響的工具,事實也確實如此。
與此同時,很多新進入該領域的人士很快發現其中有很多陷阱需要剋服。實際上,沒有哪個學位足以把一位學生或從業者訓練為成功的預測建模者。該領域依賴於很多學科,例如計算機科學、數學和統計學。當前,進入該領域的人們不僅隻在其中的一門學科有比較強的背景,還往往會比較專精於其他學科。在給研究生和從業者們講授瞭有關本書材料的幾次課程之後,我發現學員們反復錶達的兩個最大擔憂是對編程和數學的恐懼。有意思的是,對這兩者的錶達幾乎總是互斥的。預測分析學實際上是一種實踐性的學科,但同時也是一種具備較強理論基礎的學科,這些理論基礎的知識對於從業者是很關鍵的。因此,掌握預測分析需要一係列不同的技能,從編寫良好的軟件到實現一種新技術或對數據進行預處理,再到理解某個模型的假設條件,如何有效地訓練該模型,如何對該模型齣現的問題進行診斷,以及如何調整模型的參數以獲得更好的結果。
討論到這裏,很自然地會反嚮思考預測分析學作為一個領域實際會覆蓋的內容。事實上,該領域和機器學習、數據挖掘、商業分析學、數據科學等其他相關領域的邊界是比較模糊的。本書中會用到的定義非常寬泛。對於本書的主題而言,預測分析學是一個領域,它利用數據建立模型來預測未來我們感興趣問題的結果。當然,它和機器學習領域會有很大的重疊,機器學習更多地研究從數據中學習的程序和算法。這種重疊的情況對於數據挖掘(以從數據中提取知識和模式為目標)也同樣成立。數據科學正在迅速成為覆蓋所有這些領域的綜閤術語,它還包括瞭其他主題,例如呈現數據分析結果的信息可視化,圍繞在實際環境中部署模型的業務概念,以及數據管理。本書會著重於機器學習,但我們不會覆蓋學習可行性的理論探索,也不會講解著眼於從無特定預測目標的數據中尋找模式和聚類的無監督學習方法。取而代之,我們會探索像時間序列這樣的一些主題,通常在機器學習的教材裏不會講解它們。
無論對於學習預測分析學還是解決實際環境中的問題,R語言都是一個優秀的平颱。它是一個開源項目,有一個持續快速增長的用戶社區。在編寫本書時,它和Python是全世界數據科學傢最常用的兩種語言。它有很多適用於不同建模技術和應用領域的擴展包,其中很多可以通過連接到Comprehensive R Archive Network (CRAN)從R語言平颱本身直接獲取。該語言還有很多在綫資源,從教程到在綫課程都包含在內。我們尤其要提到優秀的交叉驗證式論壇以及R-bloggers 網站,該網站包含瞭大量來自不同博客的關於R語言應用的文章。對於那些對R語言有點生疏的讀者,我們提供瞭一個免費在綫教程章節,它是從我們在AUEB學生的課程講義演化而來的。
本書的主要任務是在(強調直覺及實踐而不是理論的)低端入門教程和(專注於數學、細節和嚴謹性的)高端學術教材之間的鴻溝上架起橋梁。另一個同等重要的目標是給讀者灌輸一些良好的實踐經驗,比如學習如何適當地測試和評估一個模型。我們還要強調一些重要的概念,例如偏誤-方差權衡和過擬閤,這些概念在預測建模中是普遍存在的,並會在不同模型中以多種形式反復齣現。
從編程的角度來說,雖然我們假定你已經熟悉R語言,不過還是會詳細解釋並討論每個代碼示例,以便讀者提高他們的自信心,循序漸進。盡管如此,在學習的過程中,或者至少在轉到下一章之前,實際運行代碼的重要性是如何強調都不為過的。為瞭盡可能讓這個過程順利進行,我們已經為教材中的所有章節提供瞭代碼文件,其中包含瞭教材中所有的代碼示例。此外,我們還在很多地方編寫瞭自己對於特定技術的簡單實現方法。典型的兩個示例是第4章裏的口袋感知器算法和第7章的AdaBoost自適應增強方法。在某種程度上,這麼做是為瞭鼓勵用戶學習如何編寫他們自己的函數,而不是完全依賴於已有的實現方法,因為並不是所有方法都有現成的函數可用。
重現能力是數據分析的一項關鍵技能,而且它並不限於教育領域。因此,我們大量使用瞭可自由獲取的數據集並盡力在需要隨機數生成器的地方運用特定的種子值。最後,我們盡可能嘗試利用相對小規模的數據集,以確保讀者在閱讀本書時運行代碼不需要等待太長的時間或被迫尋求更好的硬件。我們要提醒你,在真實世界裏,耐心是一種非常有益的美德,因為你感興趣的大部分數據集會比我們學習本書時用到的更大。
每章的結尾是兩個或多個實際的建模案例
預測分析:R語言實現 下載 mobi epub pdf txt 電子書 格式