“大數據”已連年入選IT領域的熱點話題,人們每天都會通過互聯網、移動設備等生產大量數據。如何從海量數據中洞悉出隱藏其后的見解是當今社會各領域人士極為關注的話題。本系列圖書以“大數據分析師”應掌握的IT技術為主線,共分兩卷,以7個模塊(第1卷包括4個模塊,第2卷包括3個模塊)分別介紹大數據入門,分析和R編程入門,使用R進行數據分析,用R進行高級分析,機器學習的概念,社交媒體、移動分析和可視化,大數據分析的行業應用等核心內容,全面且詳盡地涵蓋了大數據分析的各個領域。
本書為第1卷,首先提供大數據的概覽,介紹大數據概念及其在商業中的應用、處理大數據的技術、Hadoop生態系統和MapReduce的相關內容,然后介紹如何理解分析、分析方法與工具,重點講解流行分析工具R,介紹如何將數據集導入R和從R導出數據、在R中如何操縱和處理數據,最后詳細介紹R中的函數和包、R的描述性統計、R中的圖形分析、R中的假設檢驗、R中的線性回歸、非線性回歸、聚類分析、決策樹、R和Hadoop的集成及Hive,通過這些實戰內容,使讀者掌握R語言在數據分析中的全面應用。通過本書,讀者能對大數據概念、重要性及其應用有全面的了解,熟悉各種大數據分析工具。
本書適用于想成為大數據分析師的人員以及所有對大數據分析感興趣的技術人員和決策者閱讀。
大數據是當今科技行業中受歡迎的流行語之一。全世界的企業都已經意識到了可用的大量數據的價值,并努力管理和分析數據、發揮其作用,以建立戰略和發展競爭優勢。與此同時,這項技術的出現,導致了各種新的和增強的工作角色的演變。
《大數據分析師權v教程》系列的目標是培養新一代的國際化全能大數據分析師,使他們精通數據挖掘、數據操縱和數據分析方面的基本及高-級分析技術,熟悉大數據平臺以及業務和行業需求,能夠高效地參與大數據分析項目。
本系列旨在使參與者熟悉整個數據分析生命期,通過眾多案例分析,使參與者熟悉大數據在不同相關行業中的角色和用途,提供基本及高-級大數據分析以及可視化技術的完整技術訣竅,幫助他們分析數據、創建統計模型和提供業務洞察力。
本系列共兩卷,第1卷“大數據分析與預測建模”包含4個模塊,涉及大數據入門,分 析和R編程入門,使用R語言進行數據分析,用R語言進行高-級分析;第2卷“機器學習、大數據分析和可視化”包含3個模塊,涉及機器學習的概念,社交媒體、移動分析和可視化,大數據分析的行業應用。
模塊1 大數據入門
第1講 大數據簡介 3
1.1 什么是大數據 4
1.1.1 大數據的優勢 5
1.1.2 挖掘各種大數據源 6
1.2 數據管理的歷史——大數據的演化 7
1.3 大數據的結構化 9
1.4 大數據要素 13
1.4.1 數據量 13
1.4.2 速度 14
1.4.3 多樣性 14
1.5 大數據在商務環境中的應用 14
1.6 大數據行業中的職業機會 16
1.6.1 職業機會 17
1.6.2 所需技能 17
1.6.3 大數據的未來 19
練習 20
備忘單 22
第2講 大數據在商業上的應用 23
2.1 社交網絡數據的重要性 24
2.2 金融欺詐和大數據 30
2.3 保險業的欺詐檢測 32
2.4 在零售業中應用大數據 36
練習 40
備忘單 42
第3講 處理大數據的技術 43
3.1 大數據的分布式和并行計算 44
3.1.1 并行計算技術 46
3.1.2 虛擬化及其對大數據的重要性 47
3.2 Hadoop簡介 47
3.3 云計算和大數據 50
3.3.1 大數據計算的特性 50
3.3.2 云部署模型 51
3.3.3 云交付模型 52
3.3.4 大數據云 52
3.3.5 大數據云市場中的供應商 53
3.3.6 使用云服務所存在的問題 54
3.4 大數據內存計算技術 54
練習 56
備忘單 58
第4講 了解Hadoop生態系統 59
4.1 Hadoop生態系統 60
4.2 用HDFS存儲數據 61
4.2.1 HDFS架構 62
4.2.2 HDFS的一些特殊功能 65
4.3 利用Hadoop MapReduce處理數據 65
4.3.1 MapReduce是如何工作的 66
4.3.2 MapReduce的優點和缺點 66
4.3.3 利用Hadoop YARN管理資源和應用 67
4.4 利用HBase存儲數據 68
4.5 使用Hive查詢大型數據庫 69
4.6 與Hadoop生態系統的交互 70
4.6.1 Pig和Pig Latin 70
4.6.2 Sqoop 71
4.6.3 Zookeeper 72
4.6.4 Flume 72
4.6.5 Oozie 73
練習 74
備忘單 76
第5講 MapReduce基礎 77
5.1 MapReduce的起源 78
5.2 MapReduce是如何工作的 79
5.3 MapReduce作業的優化技術 85
5.3.1 硬件/網絡拓撲 85
5.3.2 同步 86
5.3.3 文件系統 86
5.4 MapReduce的應用 86
5.5 HBase在大數據處理中的角色 87
5.6 利用Hive挖掘大數據 89
練習 91
備忘單 94
模塊2 分析和R編程入門
第1講 理解分析 97
1.1 分析與報告的對比 98
1.1.1 報告 99
1.1.2 分析 100
1.2 基本和高級分析 102
1.3 進行分析——需要考慮的事項 105
1.3.1 正確限定問題的范圍 105
1.3.2 統計顯著性還是業務重要性 105
1.3.3 樣本與總體 107
1.3.4 推理與計算統計數字的對比 109
1.4 構建分析團隊 110
1.4.1 成為分析師的必備技能 110
1.4.2 IT與分析的融合 111
練習 113
備忘單 115
第2講 分析方法與工具 116
2.1 分析方法的演變 117
2.1.1 集成方法 117
2.1.2 商品化模型 118
2.1.3 文本分析 120
2.1.4 文本分析的挑戰 121
2.2 分析工具的演變 122
2.3 分析工具分類 123
2.3.1 圖形用戶界面的興起 123
2.3.2 點解決方案的大爆發 123
2.3.3 數據可視化工具 125
2.4 一些流行的分析工具 127
2.4.1 用于統計計算的R項目 127
2.4.2 IBM SPSS 128
2.4.3 SAS 130
2.5 分析工具之間的對比 131
練習 133
備忘單 135
第3講 探索R 136
3.1 安裝R 137
3.2 使用腳本工作 138
3.2.1 RGui 138
3.2.2 RStudio 140
3.2.3 “Hello world!” 141
3.2.4 簡單數學運算 141
3.2.5 R中的數學運算 142
3.2.6 使用向量 143
3.2.7 保存和計算數值 144
3.2.8 回應用戶 146
3.3 瀏覽工作區 149
3.3.1 操縱工作區內容 149
3.3.2 保存工作 150
3.3.3 檢索工作 150
練習 151
備忘單 153
第4講 將數據集讀入R,從R導出數據 154
4.1 使用c()命令創建數據 155
4.1.1 輸入數值項作為數據 155
4.1.2 輸入文本項作為數據 156
4.2 在R中使用scan()命令獲取數據 157
4.2.1 輸入文本作為數據 158
4.2.2 使用剪貼板制作數據 158
4.2.3 從磁盤讀取數據文件 160
4.3 讀取更大的數據文件 162
4.3.1 read.csv()命令 163
4.3.2 在R中讀取數據的其他命令 164
4.3.3 數據文件中的缺失值 167
4.4 從R導出數據 169
4.5 在R中保存你的工作 169
4.5.1 將數據文件保存到磁盤 170
4.5.2 保存命名對象 170
4.5.3 保存所有操作 170
4.5.4 以文本文件形式保存數據到磁盤 171
4.5.5 將向量對象寫入磁盤 171
4.5.6 將矩陣和數據幀對象寫入磁盤 172
4.5.7 將列表對象寫入磁盤 172
練習 174
備忘單 176
第5講 在R中操縱和處理數據 177
5.1 確定最合適的數據結構 178
5.2 創建數據的子集 179
5.2.1 指定子集 179
5.2.2 構造數據幀的子集 180
5.2.3 從數據中取得樣本 180
5.2.4 數據子集的應用 182
5.3 在數據中添加計算得到的字段 184
5.3.1 在數據幀列上執行算術運算 184
5.3.2 創建數據子組或者bin 184
5.4 在R中組合和合并數據集 186
5.4.1 創建樣本數據以說明合并的方法 187
5.4.2 使用merge()函數 188
5.4.3 合并類型 189
5.4.4 使用查找表 190
5.5 分類和排序數據 190
5.5.1 向量的排序 191
5.5.2 數據幀的排序 191
5.5.3 用apply()函數遍歷數據 193
5.6 公式接口簡介 196
5.7 數據整形 196
5.7.1 理解長格式和寬格式數據 197
5.7.2 從reshape2程序包入手 198
5.7.3 將數據 “熔化”為長格式 199
練習 202
備忘單 204
模塊3 使用R進行數據分析
第1講 使用R中的函數和包 207
1.1 從腳本到函數 209
1.1.1 創建腳本 209
1.1.2 將腳本轉變為函數 210
1.1.3 使用函數 211
1.1.4 減少行數 212
1.2 巧妙地使用參數 214
1.2.1 增加更多參數 214
1.2.2 使用點參數 216
1.2.3 使用函數作為參數 218
1.3 函數作用域 219
1.3.1 外部函數 219
1.3.2 使用內部函數 221
1.4 指派方法 222
1.4.1 尋找函數背后的方法 223
1.4.2 以UseMethod()函數使用方法 223
1.5 程序包 225
1.5.1 為Windows安裝程序包 225
1.5.2 為Linux安裝程序包 225
1.6 程序包的使用 227
1.6.1 加載程序包 227
1.6.2 卸載程序包 227
練習 228
備忘單 230
第2講 R中的描述性統計 231
2.1 匯總命令 232
2.2 名稱命令 234
2.3 匯總樣本 235
2.4 累積統計信息 239
2.4.1 簡單累計命令 239
2.4.2 復雜累積命令 241
2.5 數據幀的匯總統計 242
2.5.1 數據幀的通用匯總命令 242
2.5.2 專用的行和列匯總命令 243
2.5.3 用于行/列匯總的apply()命令 243
2.6 矩陣對象的匯總統計 244
2.7 列表的匯總統計 246
2.8 列聯表 247
2.8.1 建立列聯表 247
2.8.2 選擇表對象的各個部分 253
2.8.3 測試表對象 255
2.8.4 復雜(扁平)表 256
2.8.5 測試“扁平”表對象 260
2.8.6 表的匯總命令 260
2.9 交叉表 262
練習 267
備忘單 269
第3講 用函數、循環和數據幀分析數據 270
3.1 矩陣、列表和數據幀 271
3.1.1 矩陣 271
3.1.2 列表 272
3.1.3 數據幀——數據集 273
3.2 向量、矩陣和列表的索引 273
3.2.1 向量的索引 273
3.2.2 矩陣的索引 274
3.2.3 列表的索引 275
3.3 R編程 276
3.3.1 表達式、賦值和算術運算符 276
3.3.2 成組的表達式 277
3.3.3 條件執行——if和ifelse 278
3.3.4 重復執行——循環 278
3.4 RHadoop 280
3.4.1 安裝RHadoop 281
3.4.2 創建用戶定義函數 281
練習 283
備忘單 285
第4講 R中的圖形分析 286
4.1 為單變量繪圖 287
4.1.1 直方圖 288
4.1.2 索引圖 292
4.1.3 時間序列圖 293
4.1.4 餅圖 294
4.1.5 stripchart函數 294
4.2 繪制雙變量圖表 295
4.2.1 根據兩個連續解釋變量繪制圖表:散點圖 296
4.2.2 使用分類解釋變量繪圖 309
4.3 多重比較圖表 312
4.4 繪制多變量圖表 315
4.4.1 pairs函數 315
4.4.2 coplot函數 316
4.4.3 相互作用圖表 316
4.5 特殊圖表 317
4.5.1 設計圖 318
4.5.2 氣泡圖 318
4.5.3 有許多相同值的圖表 319
4.6 將圖形保存到外部文件 320
練習 322
備忘單 324
第5講 R中的假設檢驗 325
5.1 統計假設簡介 326
5.1.1 假設檢驗 327
5.1.2 決策錯誤 327
5.2 使用學生t檢驗 327
5.2.1 使用不相等方差的雙樣本t檢驗 328
5.2.2 使用相等方差的雙樣本t檢驗 328
5.2.3 單樣本t檢驗 328
5.2.4 t檢驗中的公式語法和樣本子集構建 329
5.3 u檢驗 333
5.3.1 雙樣本u檢驗 333
5.3.2 單樣本u檢驗 334
5.3.3 u檢驗中的公式語法和樣本子集構建 335
5.4 配對t檢驗和u檢驗 338
5.4.1 相關和協方差 340
5.4.2 協方差 342
5.4.3 相關檢驗中的顯著性檢驗 343
5.4.4 公式語法 343
5.5 關聯分析檢驗 346
5.6 擬合優度檢驗 348
練習 352
備忘單 354
模塊4 使用R進行高級分析
第1講 R中的線性回歸 357
1.1 線性回歸分析基礎知識 358
1.1.1 簡單線性回歸 358
1.1.2 多重線性回歸 359
1.1.3 最小二乘估計 360
1.1.4 檢查模型適當性 361
1.1.5 回歸輸出的解讀 363
1.1.6 回歸假設 364
1.1.7 多重共線性 365
1.1.8 檢測多重共線性 365
1.2 使用線性回歸進行工作 367
1.2.1 確定x和y變量 367
1.2.2 檢查條件 368
1.2.3 回歸線的計算 368
1.2.4 求取斜率 369
1.2.5 求取y截距 369
1.2.6 回歸線的解讀 369
1.2.7 做出正確的預測 371
1.3 R中的簡單線性回歸 371
1.3.1 R的5個著名函數 371
1.3.2 校正的平方和及乘積和 372
1.3.3 分散度 372
1.3.4 回歸中的方差分析 373
1.3.5 AIC 373
1.3.6 參數不可靠性的估算 373
1.3.7 用擬合模型預測 374
1.3.8 檢查模型 374
1.4 線性模型結果對象 375
1.4.1 系數 377
1.4.2 擬合值 377
1.4.3 殘差 378
1.4.4 公式 378
1.4.5 最佳擬合線 378
1.5 模型的構建 379
1.5.1 用前向逐步回歸增加項 380
1.5.2 用后向刪除方法刪除項 382
1.5.3 模型的比較 383
1.6 曲線回歸 384
練習 386
備忘單 389
第2講 非線性回歸 390
2.1 非線性回歸分析簡介 391
2.2 非線性回歸和廣義線性模型 391
2.3 邏輯回歸 392
2.3.1 解讀邏輯回歸中的β系數 394
2.3.2 計算β系數 395
2.3.3 具有交互變量的邏輯回歸 395
2.3.4 具有指示變量的邏輯回歸 396
2.3.5 邏輯回歸模型適當性檢查 396
2.3.6 使用邏輯回歸線進行預測 397
2.4 用MLE進行線估算 400
2.5 將非線性模型轉化為線性模型 401
2.6 其他非線性回歸模型 402
2.7 廣義加性模型 406
2.8 自啟動函數 407
2.8.1 自啟動Michaelis-Menten模型 407
2.8.2 自啟動漸近指數模型 408
2.8.3 輪廓似然 409
2.8.4 自啟動邏輯 409
2.8.5 自啟動四參數邏輯 409
2.8.6 自啟動Weibull增長函數 410
2.8.7 自啟動一階房室函數 411
2.9 用拔靴法建立一個非線性回歸家族 411
2.10 邏輯回歸的應用 413
2.10.1 貸款接納 414
2.10.2 德國信用數據 414
2.10.3 延誤的航班 415
練習 416
備忘單 418
第3講 聚類分析 419
3.1 聚類簡介 421
3.1.1 聚類的應用 421
3.1.2 聚類的復雜性 422
3.1.3 距離計量 422
3.1.4 簇內和簇間平方和 423
3.1.5 高效聚類的屬性 424
3.2 凝聚層次聚類 425
3.2.1 主要距離 426
3.2.2 密度估算方法 427
3.3 相似性聚合聚類 428
3.3.1 相似性聚合的原理 428
3.3.2 相似性聚合聚類的實施 428
3.4 R amap包的用法 429
3.5 k均值聚類 431
3.6 R聚類示例:歐洲人的蛋白質攝入 431
3.7 R聚類示例:美國月度失業率 434
3.8 在R中實施層次聚類 435
3.8.1 例1:重溫歐洲人蛋白質攝入 435
3.8.2 例2:重溫美國月度失業率 436
練習 437
備忘單 439
第4講 決策樹 440
4.1 決策樹的應用 441
4.2 決策樹原理 444
4.2.1 選擇變量——創建樹的第1步 444
4.2.2 拆分標準 445
4.2.3 為節點分配數據——創建樹的第2步 447
4.2.4 修剪——創建樹的第3步 447
4.3 構建決策樹 448
4.3.1 決策樹如何確定純度? 449
4.3.2 使用決策樹時的實際考慮因素 450
4.3.3 決策樹選項 451
4.4 CART、C5.0和CHAID樹 451
4.4.1 CART 452
4.4.2 C5.0 454
4.4.3 CHAID 455
4.4.4 決策樹對比 456
4.5 用決策樹預測 457
4.6 決策樹的優缺點 458
4.6.1 決策樹的優點 458
4.6.2 決策樹的缺點 458
4.7 在R中構建決策樹 459
練習 462
備忘單 464
第5講 R和Hadoop的集成及Hive介紹 465
5.1 Hadoop 466
5.1.1 HDFS 467
5.1.2 MapReduce 468
5.1.3 Hadoop的應用 468
5.2 集成R和Hadoop——RHadoop 469
5.2.1 安裝RHadoop 470
5.2.2 在R中使用RHadoop 472
5.3 通過文本挖掘得到有用信息 474
5.4 Hive簡介 477
5.4.1 元存儲 477
5.4.2 數據庫 477
5.4.3 數據類型 477
5.4.4 查詢語言 478
5.4.5 Hive命令 478
5.4.6 Hive交互和非交互模式 479
練習 480
備忘單 482
附錄A 在R中可以完成的10件Microsoft Excel工作 484
收起全部↑