內容簡介
Preface隨著數據規模和種類的增長,套用數據挖掘技術從大數據中提取有效信息變得至關重要。這是因為企業認為有必要從大規模數據的實施中獲得相應的投資回報。實施數據挖掘的根本性原因是要從大型資料庫中發現隱藏的商機,以便利益相關者能針對未來業務做出決策。數據挖掘不僅能夠幫助企業降低成本以及提高收益,還能幫助他們發現新的發展途徑。
本書將介紹使用R語言(一種開源工具)進行數據挖掘的基本原理。R是一門免費的程式語言,同時也是一個提供統計計算、圖形數據可視化和預測建模的軟體環境,並且可以與其他工具和平台相集成。本書將結合R語言在示例數據集中的套用來闡釋數據挖掘原理。
本書將闡述數據挖掘的一些主題,如數學表述、在軟體環境中的實現,以及如何據此來解決商業問題。本書的設計理念是,讀者可以從數據管理技術、探索性數據分析、數據可視化等內容著手學習,循序漸進,直至建立高級預測模型(如推薦系統、神經網路模型)。本書也從數據科學、分析學、統計建模以及可視化等角度對數據挖掘這一概念進行了綜述。
本書內容第1章帶領讀者初識R編程基礎,藉助真實的案例幫助讀者了解如何讀寫數據,了解編程符號和語法指令。這一章還給出了供讀者動手實踐的R腳本,以更好地理解書中的原理、術語以及執行特定任務的深層原因。之所以這樣設計,是為了讓沒有太多編程基礎的讀者也能使用R來執行各種數據挖掘任務。這一章將簡述數據挖掘的意義以及它與其他領域(諸如數據科學、分析學和統計建模)的關係,除此之外,還將展開使用R進行數據管理的討論。
第2章幫助讀者理解探索性數據分析。探索數據包括數據集中變數的數值描述和可視化,這將使得數據集變得直觀,並使我們能對其快速定論。對數據集有一個初步的理解很重要,比如選擇怎樣的變數進行分析、不同變數之間的關聯,等等。創建交叉二維表有助於理解分類變數之間的關係,對數據集實施經典統計檢驗來驗證對數據的種種假設。
第3章涵蓋從基礎的數據可視化到調用R語言中的庫實現高級的數據可視化。觀察數字和統計能從多個側面“告訴”我們關於變數的“故事”,而當圖形化地了解變數和因子之間的關係時,它將展示另一個“故事”。可見,數據可視化將揭示數值分析和統計無法展現的信息。
第4章幫助讀者學習利用回歸方法的預測分析基礎,包括線性和非線性回歸方法在R中的實現。讀者不僅可以掌握所有回歸方法的理論基礎,也將通過R實踐獲得實際動手操作的經驗。
第5章介紹了一種產品推薦方法——購物籃分析(MBA)。這種方法主要是將交易級的商品信息關聯,從中找出購買了相似商品的客戶分類,據此推薦產品。MBA還可以套用於向上銷售和交叉銷售中。
第6章介紹了什麼是分類、聚類是如何套用到分類問題的、聚類用的是什麼方法等內容,並對不同的分類方法進行了對比。在這一章,讀者將了解使用聚類方法的分類基礎知識。
第7章涵蓋以下內容及相應的R語言實現:推薦系統是什麼,實現推薦的工作原理、類型和方法,使用R語言實現商品推薦。
第8章使用R語言和一個實際數據集實現主成分分析(PCA)、奇異值分解(SVD)和疊代特徵提取等降維技術。隨著數據的量與類的增長,數據的維度也在隨之增長。降維技術在不同領域都有很多套用,例如圖像處理、語音識別、推薦系統、文本處理等。
第9章講解了多種類型的神經網路、方法,以及通過不同的函式來控制人工神經網路訓練的神經網路變體。這些神經網路執行標準的數據挖掘任務,例如:採用基於回歸的方法預測連續型變數,利用基於分類的方法預測輸出水平,利用歷史數據來預測數值變數的未來值,以及壓縮特徵從而識別重要特徵以執行預測或分類。
準備工作為了學習本書附帶的例子和代碼,讀者需要從https://cran.r-project.org/下載R軟體(也可以從https://www.rstudio.com/下載RStudio),然後安裝。沒有特定的硬體要求,只需要一台至少2GBRAM的計算機,適用於任何作業系統,包括MAC、Linux和Windows。
讀者對象本書適用於剛開始從事數據挖掘、數據科學或者預測建模的讀者,也適用於有中等統計與編程水平的讀者。基本的統計知識對於理解數據挖掘是必需的。閱讀前幾章並不需要編程知識。本書將講解如何使用R語言進行數據管理和基本的統計分析。本書亦適用於學生、專業人員及有志成為數據分析師的讀者。
排版約定在本書中,為了區分不同內容,字型風格也會隨之變化。以下是字型風格示意:
書中的代碼、檔案名稱、檔案擴展名、路徑名、URL地址、用戶輸入、推特標籤看起來會是這樣:“在處理ArtPiece數據集時,我們將通過一些與業務相關的變數來預測一個藝術作品是否值得購買。”
所有命令行的輸入或輸出在書中顯示如下:
作者的話如果讀者對於本書所涉及的內容有疑問,可以在Twitter上搜尋@mishra1_PK,我非常樂意為大家提供幫助。
非常感謝我的妻子Prajna和女兒Aarya,也要感謝我的朋友和工作中的同事在我完成本書的過程中給予我的支持與鼓勵。
關於審稿人AlexeyGrigorev是一名熟練的數據科學家和軟體工程師,有超過5年的專業經驗。他現在是SearchmetricsInc的一名數據科學家。在日常工作中,他熱衷於使用R和Python進行數據清洗、數據分析和建模工作。他也是Packt出版的其他數據分析書籍的審稿人,比如《測試驅動的機器學習》與《掌握R數據分析》。
圖書目錄
譯者序
前言
第1章 使用R內置數據進行數據處理 1
1.1 什麼是數據挖掘 2
1.2 R語言引論 4
1.2.1 快速入門 4
1.2.2 數據類型、向量、數組與矩陣 4
1.2.3 列表管理、因子與序列 7
1.2.4 數據的導入與導出 8
1.3 數據類型轉換 10
1.4 排序與合併數據框 11
1.5 索引或切分數據框 15
1.6 日期與時間格式化 16
1.7 創建新函式 17
1.7.1 用戶自定義函式 17
1.7.2 內置函式 18
1.8 循環原理——for循環 18
1.9 循環原理——repeat循環 19
1.10 循環原理——while循環 19
1.11 apply原理 19
1.12 字元串操作 21
1.13 缺失值(NA)的處理 22
小結 23
第2章 汽車數據的探索性分析 24
2.1 一元分析 24
2.2 二元分析 30
2.3 多元分析 31
2.4 解讀分布和變換 32
2.4.1 常態分配 32
2.4.2 二項分布 34
2.4.3 泊松分布 34
2.5 解讀分布 34
2.6 變數分段 37
2.7列聯表、二元統計及數據正態性檢驗 37
2.8 假設檢驗 41
2.8.1 總體均值檢驗 42
2.8.2 雙樣本方差檢驗 46
2.9 無參數方法 48
2.9.1 Wilcoxon符號秩檢驗 49
2.9.2 Mann-Whitney-Wilcoxon檢驗 49
2.9.3 Kruskal-Wallis檢驗 49
小結 50
第3章 可視化diamond數據集 51
3.1 使用ggplot2可視化數據 54
3.1.1 條狀圖 64
3.1.2 盒狀圖 65
3.1.3 氣泡圖 65
3.1.4 甜甜圈圖 66
3.1.5 地理製圖 67
3.1.6 直方圖 68
3.1.7 折線圖 68
3.1.8 餅圖 69
3.1.9 散點圖 70
3.1.10 堆疊柱形圖 75
3.1.11 莖葉圖 75
3.1.12 詞雲 76
3.1.13 鋸齒圖 76
3.2 使用plotly 78
3.2.1 氣泡圖 78
3.2.2 用plotly畫條狀圖 79
3.2.3 用plotly畫散點圖 79
3.2.4 用plotly畫盒狀圖 80
3.2.5 用plotly畫極坐標圖 82
3.2.6 用plotly畫極坐標散點圖 82