本書共11章。第1章介紹如何創建一個可用的R環境和基本的R命令;第2章講述如何使用R語言進行探索性數據分析;第3章重點探討數據采樣和概率分布的概念;第4章探討因變量和解釋變量集合之間的線性關系;第5章介紹基于樹的分類器:K近鄰分類器、邏輯回歸分類器以及樸素貝葉斯分類器;第6章神經網絡和支持向量機;第7章展示一些模型評估的方法;第8章探討集成分類器;第9章講述多種聚類算法;第10章介紹關聯分析和序列挖掘;第11章介紹如何從原始變量中選擇和抽取特征;第12章討論大數據分析(R和Hadoop)。
Abut the Auther 作 者 簡 介Yu-Wei,Chiu (David Chiu)是LargitData公司(www.LargitData.com)的創始人。David曾是Trend Micro公司的軟件工程師,負責構建商務智能大數據平臺以及客戶關系管理系統。除了是一名創業者和數據科學家之外,David還專注于利用Spark和Hadoop來處理海量數據,并使用數據挖掘技術來進行數據分析。他還是一名專業的講師,在很多會議上做過關于Python、R以及Hadoop方面的技術報告。
2013年,Yu-Wei審讀了《Bioinformatics with R Cookbook》(Packt出版社)。更多內容請參考他的個人網站www.ywchiu.com。
我要衷心感謝我的家人和朋友,是他們支持和鼓勵我完成了本書。我要誠摯地向我母親Ming-Yang Huang(Miranda Huang)、我的良師Man-Kwan Shan、本書的校對Brendan Fisher,中國臺灣的R用戶組,數據科學項目(Data Science Program,DSP),以及其他支持過我的朋友表示感謝。
目 錄 Contents
譯者序
前言
作者簡介
審校者簡介
第1章 基于R實踐機器學習 1
1.1 簡介 1
1.2 下載和安裝R 3
1.3 下載和安裝RStudio 10
1.4 包的安裝和加載 13
1.5 數據讀寫 15
1.6 使用R實現數據操作 18
1.7 應用簡單統計 22
1.8 數據可視化 25
1.9 獲取用于機器學習的數據集 28
第2章 挖掘RMS Titanic數據集 32
2.1 簡介 32
2.2 從CSV文件中讀取Titanic數據集 33
2.3 根據數據類型進行轉換 36
2.4 檢測缺失值 38
2.5 插補缺失值 40
2.6 識別和可視化數據 43
2.7 基于決策樹預測獲救乘客 50
2.8 基于混淆矩陣驗證預測結果的性 53
2.9 使用ROC曲線評估性能 55
第3章 R和統計 58
3.1 簡介 58
3.2 理解R中的數據采樣 59
3.3 在R中控制概率分布 59
3.4 在R中進行一元描述統計 64
3.5 在R中進行多元相關分析 67
3.6 進行多元線性回歸分析 69
3.7 執行二項分布檢驗 71
3.8 執行t檢驗 73
3.9 執行Kolmogorov-Smirnov檢驗 76
3.10 理解Wilcoxon秩和檢驗及Wilcoxon符號秩檢驗 78
3.11 實施皮爾森卡方檢驗 80
3.12 進行單因素方差分析 82
3.13 進行雙因素方差分析 85
第4章 理解回歸分析 90
4.1 簡介 90
4.2 調用lm函數構建線性回歸模型 90
4.3 輸出線性模型的特征信息 93
4.4 使用線性回歸模型預測未知值 94
4.5 生成模型的診斷圖 96
4.6 利用lm函數生成多項式回歸模型 98
4.7 調用rlm函數生成穩健線性回歸模型 99
4.8 在SLID數據集上研究線性回歸案例 101
4.9 基于高斯模型的廣義線性回歸 107
4.10 基于泊松模型的廣義線性回歸 109
4.11 基于二項模型的廣義線性回歸 111
4.12 利用廣義加性模型處理數據 112
4.13 可視化廣義加性模型 114
4.14 診斷廣義加性模型 116
第5章 分類I——樹、延遲和概率 119
5.1 簡介 119
5.2 準備訓練和測試數據集 119
5.3 使用遞歸分割樹建立分類模型 121
5.4 遞歸分割樹可視化 124
5.5 評測遞歸分割樹的預測能力 126
5.6 遞歸分割樹剪枝 128
5.7 使用條件推理樹建立分類模型 130
5.8 條件推理樹可視化 131
5.9 評測條件推理樹的預測能力 132
5.10 使用k近鄰分類算法 134
5.11 使用邏輯回歸分類算法 137
5.12 使用樸素貝葉斯分類算法 142
第6章 分類II—神經網絡和SVM 146
6.1 簡介 146
6.2 使用支持向量機完成數據分類 147
6.3 選擇支持向量機的懲罰因子 149
6.4 實現SVM模型的可視化 152
6.5 基于支持向量機訓練模型實現類預測 154
6.6 調整支持向量機 157
6.7 利用neuralnet包訓練神經網絡模型 161
6.8 可視化由neuralnet包得到的神經網絡模型 164
6.9 基于neuralnet包得到的模型實現類標號預測 166
6.10 利用nnet包訓練神經網絡模型 168
6.11 基于nnet包得到的模型實現類標號預測 170
第7章 模型評估 173
7.1 簡介 173
7.2 基于k折交叉驗證方法評測模型性能 173
7.3 利用e1071包完成交叉驗證 175
7.4 利用caret包完成交叉檢驗 176
7.5 利用caret包對變量重要程度排序 177
7.6 利用rminer包對變量重要程度排序 180
7.7 利用caret包找到高度關聯的特征 181
7.8 利用caret包選擇特征 182
7.9 評測回歸模型的性能 187
7.10 利用混淆矩陣評測模型的預測能力 189
7.11 利用ROCR評測模型的預測能力 191
7.12 利用caret包比較ROC曲線 193
7.13 利用caret包比較模型性能差異 196
第8章 集成學習 199
8.1 簡介 199
8.2 使用bagging方法對數據分類 200
8.3 基于bagging方法進行交叉驗證 203
8.4 使用boosting方法對數據分類 204
8.5 基于boosting方法進行交叉驗證 207
8.6 使用gradient boosting方法對數據分類 208
8.7 計算分類器邊緣 213
8.8 計算集成分類算法的誤差演變 216
8.9 使用隨機森林方法對數據分類 218
8.10 估算不同分類器的預測誤差 223
第9章 聚類 226
9.1 簡介 226
9.2 使用層次聚類處理數據 227
9.3 將樹分成簇 231
9.4 使用k均值方法處理數據 234
9.5 繪制二元聚類圖 237
9.6 聚類算法比較 239
9.7 從簇中抽取輪廓信息 241
9.8 獲得優化的k均值聚類 242
9.9 使用密度聚類方法處理數據 244
9.10 使用基于模型的聚類方法處理數據 248
9.11 相異度矩陣的可視化 251
9.12 使用外部驗證評估聚類效果 253
第10章 關聯分析和序列挖掘 256
10.1 簡介 256
10.2 將數據轉換成事務數據 257
10.3 展示事務及關聯 258
10.4 使用Apriori規則完成關聯挖掘 261
10.5 去掉冗余規則 266
10.6 關聯規則的可視化 267
10.7 使用Eclat挖掘頻繁項集 270
10.8 生成時態事務數據 273
10.9 使用cSPADE挖掘頻繁時序模式 276
第11章 降維 279
11.1 簡介 279
11.2 使用FSelector完成特征篩選 280
11.3 使用PCA進行降維 283
11.4 使用scree測試確定主成分數 287
11.5 使用Kaiser方法確定主成分數 289
11.6 使用主成分分析散點圖可視化多元變量 290
11.7 使用MDS進行降維 293
11.8 使用SVD進行降維 297
11.9 使用SVD進行圖像壓縮 299
11.10 使用ISOMAP進行非線性降維 302
11.11 使用局部線性嵌入法進行非線性降維 306
第12章 大數據分析(R和Hadoop) 310
12.1 簡介 310
12.2 準備RHadoop環境 311
12.3 安裝rmr2 314
12.4 安裝rhdfs 315
12.5 在rhdfs中操作HDFS 316
12.6 在RHadoop中解決單詞計數問題 318
12.7 比較R MapReduce程序和標準R程序的性能差別 320
12.8 測試和調試rmr2程序 321
12.9 安裝plyrmr 323
12.10 使用plyrmr處理數據 324
12.11 在RHadoop中實施機器學習 327
12.12 在Amazon EMR環境中配置RHadoop機群 330
附錄A R和機器學習的資源 335
附錄B Titanic幸存者的數據集 337