●推薦語 iii 前言 iv 本書結構 vi 章 搭建R編程環境 1 1.1 為什麼是R 2 1.2 安裝R 2 1.2.1 在Windows操作繫統中安裝R 4 1.2.2 在Linux繫統下安裝R 6 1.2.3 在Mac OS X中安裝R 12 1.3 啟動R 15 1.4 查看幫助 16 1.5 R集成開發環境 19 1.6 批處理 21 1.7 使用包 22 參考資料 24 第2章 數據類型 25 2.1 變量 26 2.1.1 變量命名規則 26 2.1.2 變量賦值 26 2.2 調用函數時指定參數 27 2.3 標量 28 2.3.1 數值 28 2.3.2 NA 29 2.3.3 NULL 29 2.3.4 字符串 30 2.3.5 邏輯值 31 2.3.6 因子 32 2.4 向量 34 2.4.1 創建向量 35 2.4.2 訪問向量中的數據 36 2.4.3 向量運算 39 2.4.4 連續數字組成的向量 41 2.4.5 保存重復值的向量 42 2.5 列表 43 2.5.1 創建列表 43 2.5.2 訪問列表中的數據 44 2.6 矩陣 45 2.6.1 創建矩陣 45 2.6.2 訪問矩陣中的數據 48 2.6.3 矩陣運算 49 2.7 數組 52 2.7.1 創建數組 53 2.7.2 訪問數組數據 54 2.8 數據框 54 2.8.1 創建數據框 55 2.8.2 訪問數據框 57 2.8.3 實用工具函數 59 2.9 類型判別 61 2.10 類型轉換 62 參考資料 64 第3章 R語言編程 65 3.1 R的特征 66 3.2 流程控制(條件語句與循環語句) 66 3.2.1 if語句 66 3.2.2 循環語句 67 3.3 運算 69 3.3.1 數值運算 70 3.3.2 向量運算 70 3.3.3 NA處理 72 3.4 定義函數 74 3.4.1 基本定義 74 3.4.2 可變長參數 75 3.4.3 嵌套函數 76 3.5 作用域 77 3.6 值傳遞 80 3.7 對像的不變性 81 3.8 模塊模式 83 3.8.1 隊列 84 3.8.2 編寫隊列模塊 85 參考資料 86 第4章 數據操作Ⅰ:基於向量的處理與外部數據處理 87 4.1 鳶尾花數據集 88 4.2 讀寫文件 90 4.2.1 讀寫CSV文件 90 4.2.2 讀寫對像文件 93 4.3 合並數據框的行與列 94 4.4 apply繫列函數 96 4.4.1 apply() 97 4.4.2 lapply()函數 99 4.4.3 sapply() 102 4.4.4 tapply() 104 4.4.5 mapply() 106 4.5 數據分組並調用函數 107 4.5.1 summaryBy() 108 4.5.2 orderBy() 110 4.5.3 sampleBy() 112 4.6 數據拆分與合並 114 4.6.1 split() 115 4.6.2 subset() 116 4.6.3 數據合並 117 4.7 數據排序 119 4.7.1 sort() 119 4.7.2 order() 120 4.8 訪問數據框中的列 121 4.8.1 with() 121 4.8.2 within() 122 4.8.3 attach()與detach() 124 4.9 查找符合條件的數據索引 126 4.10 分組運算 127 4.11 更易處理的數據表現形式 128 4.12 與MySQL聯動 131 4.12.1 安裝MySQL及RMySQL 131 4.12.2 使用RMySQL訪問MySQL數據庫 140 參考資料 141 第5章 數據操作Ⅱ:數據處理及加工 143 5.1 數據處理及加工相關包 144 5.2 使用SQL處理數據 144 5.3 數據分析:拆分、應用、合並 146 5.3.1 adply()函數 147 5.3.2 ddply()函數 149 5.3.3 輕松進行按組運算 150 5.3.4 mdply() 153 5.4 數據結構變形與彙總 154 5.4.1 melt() 155 5.4.2 cast() 157 5.4.3 數據彙總 158 5.5 數據表:更快、更方便的數據框 160 5.5.1 創建數據表 160 5.5.2 數據訪問與分組運算 162 5.5.3 使用key快速訪問數據 164 5.5.4 使用key合並數據表 166 5.5.5 利用引用修改數據 167 5.5.6 將列表轉換為數據框 168 5.6 更好的循環語句 170 5.7 並行處理 172 5.7.1 設置進程數 173 5.7.2 plyr並行化 174 5.7.3 foreach並行化 176 5.8 &nbs測試與調試 177 5.8.1 testthat 177 5.8.2 使用test_that()進行測試分組 179 5.8.3 測試文件的結構 180 5.8.4 調試 181 5.9 測定代碼執行時間 187 5.9.1 測定命令語句執行時間 187 5.9.2 代碼性能測試 189 參考資料 191 第6章 繪圖 193 6.1 散點圖 194 6.2 圖形選項 195 6.2.1 坐標軸名稱 196 6.2.2 圖形標題 197 6.2.3 點的類型 197 6.2.4 點的大小 198 6.2.5 顏色 199 6.2.6 坐標軸的取值範圍 200 6.2.7 圖形類型 201 6.2.8 線型 204 6.2.9 圖形排列 204 6.2.10 抖動 205 6.3 基本圖形 207 6.3.1 點 207 6.3.2 折線 209 6.3.3 直線 211 6.3.4 曲線 212 6.3.5 多邊形 213 6.4 字符串 216 6.5 識別圖形中的數據 218 6.6 圖例 219 6.7 繪制矩陣中的數據(matplot、matlines、matpoints) 220 6.8 應用圖形 221 6.8.1 箱線圖 222 6.8.2 直方圖 225 6.8.3 密度圖 227 6.8.4 條形圖 229 6.8.5 餅圖 230 6.8.6 馬賽克圖 232 6.8.7 散點圖矩陣 234 6.8.8 透視圖、等高線圖 235 參考資料 238 第7章 統計分析 239 7.1 生成隨機數與分布函數 240 7.2 基本統計量 243 7.2.1 樣本均值、樣本方差、樣本標準差 243 7.2.2 五數概括 244 7.2.3 眾數 246 7.3 樣本抽取 246 7.3.1 簡單隨機抽樣 247 7.3.2 考慮權值的樣本抽取 248 7.3.3 分層隨機抽樣 249 7.3.4 繫統抽樣 251 7.4 列聯表 252 7.4.1 創建列聯表 253 7.4.2 求和與百分比 254 7.4.3 獨立性檢驗 256 7.4.4 費舍爾精確檢驗 261 7.4.5 McNemar檢驗 262 7.5 擬合優度檢驗 265 7.5.1 卡方檢驗 265 7.5.2 夏皮羅-威爾克檢驗 265 7.5.3 柯爾莫諾夫-斯米爾諾夫檢驗 266 7.5.4 Q-Q圖 268 7.6 相關分析 271 7.6.1 皮爾遜相關繫數 272 7.6.2 斯皮爾曼相關繫數 275 7.6.3 肯德爾等級相關繫數 277 7.6.4 相關繫數檢驗 277 7.7 估計與檢驗 278 7.7.1 單樣本均值 279 7.7.2 兩獨立樣本均值 282 7.7.3 兩配對樣本均值 285 7.7.4 兩樣本方差 287 7.7.5 單樣本比率 288 7.7.6 兩樣本比率 290 參考資料 291 第8章 線性回歸 293 8.1 線性回歸的基本假設 294 8.2 簡單線性回歸 295 8.2.1 創建模型 295 8.2.2 提取線性回歸結果 296 8.2.3 預測與置信區間 298 8.2.4 模型評估 299 8.2.5 方差分析及模型間比較 302 8.2.6 模型診斷圖形 304 8.2.7 回歸直線的可視化 306 8.3 &nbs回歸 307 8.3.1 創建及評估模型 307 8.3.2 分類變量 308 8.3.3 &nbs回歸模型的可視化 310 8.3.4 使用函數I() 312 8.3.5 變量的變換 314 8.3.6 交互作用 314 8.4 異常值 320 8.5 變量選擇 321 8.5.1 選擇變量的方法 322 8.5.2 比較所有情形 325 參考資料 328 第9章 分類算法Ⅰ:數據探索、預處理、模型評估方法 331 9.1 數據探索 332 9.1.1 技術統計 332 9.1.2 數據可視化 337 9.2 預處理 340 9.2.1 數據變換 340 9.2.2 缺失值處理 345 9.2.3 變量選擇 348 9.3 模型評估方法 358 9.3.1 評估指標 358 9.3.2 ROC曲線 361 9.3.3 交叉檢驗 365 參考資料 375 0章 分類算法Ⅱ:機器學習算法 377 10.1 邏輯回歸模型 378 10.2 多項邏輯回歸分析 381 10.3 決策樹 384 10.3.1 決策樹模型 385 10.3.2 分類與回歸樹 386 10.3.3 條件推斷決策樹 389 10.3.4 隨機森林 391 10.4 神經網絡 396 10.4.1 神經網絡模型 396 10.4.2 神經網絡模型學習 398 10.5 支持向量機 402 10.5.1 支持向量機模型 403 10.5.2 支持向量機學習 404 10.6 類別不平衡 408 10.6.1 向上取樣、向下取樣 409 10.6.2 SMOTE 411 10.7 文檔分類 413 10.7.1 語料庫與文檔 413 10.7.2 文檔變換 414 10.7.3 文檔的矩陣表示 415 10.7.4 高頻詞 418 10.7.5 詞語之間的相關關繫 419 10.7.6 文檔分類 420 10.7.7 從文件創建語料庫 422 10.7.8 &nb數據 424 10.8 caret包 427 參考資料 431 1章 利用泰坦尼克數據練習機器學習 433 11.1 泰坦尼克數據格式 434 11.2 讀入數據 434 11.2.1 轉換數據類型 435 11.2.2 分離測試數據 437 11.2.3 準備交叉檢驗 438 11.3 數據探索 440 11.4 評估指標 444 11.5 決策樹模型 444 11.5.1 rpart的交叉檢驗 445 11.5.2 準確度評估 446 11.5.3 條件推斷決策樹 447 11.6 發現其他特征 448 11.6.1 使用ticket識別家庭 448 11.6.2 預測生還概率 449 11.6.3 添加家庭ID 450 11.6.4 合並家庭成員的生還概率 452 11.6.5 使用家庭信息建模ctree() 454 11.6.6 性能評估 455 11.7 交叉檢驗並行化 457 11.7.1 反復執行3次10層交叉檢驗 457 11.7.2 使用foreach()與%dopar%進行並行化 458 11.8 開發更好的算法 459 參考資料 460
內容簡介
本書以R語言的“編程屬性”為中心,內容涵蓋R語言基礎理論到實際數據分析,通過分析模型和算法等更實用的示例,講解了數據可視化、統計分析、數據挖掘、機器學習等實際業務中常用的實操技巧,以及代碼生成方法。書中還收錄了作者的實戰經驗和學習體會,可以解決數據分析過程中出現的各種問題。對R語言有一定了解但在實際運用中感到困惑的讀者,可以在書中找到多種解題方法,並能夠迅速應用於一線業務。