本書主要分為三個部分,基礎篇、建模應用篇和Rattle篇;A篇(第1~5章)介紹了有關R語言的安裝與使用、R語言中的數(shù)據(jù)結(jié)構(gòu)、常用操作和繪圖功能等基礎功能。建模應用篇(第6~10章)主要介紹了目前在數(shù)據(jù)挖掘中的常用的建模方法在R語言中的實現(xiàn)函數(shù),并對輸出結(jié)果進行了解釋,有助于讀者快速掌握應用R語言進行分析挖掘建模的方法。Rattle篇(第11章)介紹了一個R語言的圖形界面工具。圖書配套提供了程序代碼及數(shù)據(jù),讀者可通過上機實驗,快速掌握書中所介紹的R語言的使用方法。
公認*威教材,數(shù)據(jù)挖掘資深專家10余年大數(shù)據(jù)挖掘與實施經(jīng)驗結(jié)晶。華南師范大學、廣東工業(yè)大學、廣西科技大學等20余所大學選為教材,附贈源代碼,配有教學PPT和上機實驗
10余位數(shù)據(jù)挖掘領域資深專家和科研人員,10余年大數(shù)據(jù)挖掘咨詢與實施經(jīng)驗結(jié)晶。
為零基礎R語言與數(shù)據(jù)挖掘教學和自學量身打造,系統(tǒng)講解R語言與數(shù)據(jù)挖掘的必備知識,配有大量的上機實驗、源代碼和教學PPT資源。
為什么要寫本書R語言是什么?R是一種適用于統(tǒng)計分析計算和圖像處理的語言,受S語言和Scheme語言影響發(fā)展而來。早期R是基于S語言的一個GNU項目,所以也可以當作S語言的一種實現(xiàn),通常用S語言編寫的代碼都可以不做任何修改地在R環(huán)境下運行。R的語法來自Scheme,作為一款誕生于20世紀90年代的語言,R已經(jīng)成為S統(tǒng)計編程語言的一類實現(xiàn)方式。
R編程語言在數(shù)字分析與機器學習領域已經(jīng)成為一款重要的工具。隨著機器逐步成為愈發(fā)核心的數(shù)據(jù)生成器,該語言的人氣也一路攀升。正如Tiobe、PyPL以及Redmonk等編程語言人氣排名所指出,R語言所受到的關注程度正在快速提升。Rexer Analytics發(fā)布的2013年數(shù)據(jù)挖掘人員調(diào)查顯示,70%的數(shù)據(jù)挖掘人員使用R軟件進行分析工作,其中有24%將其作為主要工具。這些結(jié)果類似于 2013 年KDnuggets調(diào)查的結(jié)果,該調(diào)查指出有61%的響應者表示正在使用R處理分析、數(shù)據(jù)挖掘和數(shù)據(jù)科學工作。相比前一年,這一比例上升了16%。
R語言有一些明顯的優(yōu)勢:
1)R語言作為一款開源軟件,是完全免費的,對比昂貴的SPSS和SAS等統(tǒng)計軟件,這無疑是一個巨大的優(yōu)勢。
2)R語言擁有一個龐大的社區(qū)來進行維護,龐大的軟件包生態(tài)系統(tǒng)無疑是R語言最為突出的優(yōu)勢之一。
3)R語言具備可擴展能力且擁有豐富的功能選項,幫助開發(fā)人員構(gòu)建自己的工具及方法,從而順利實現(xiàn)數(shù)據(jù)分析。
4)R語言簡單易學。雖與C語言之類的程序設計語言已差別很大(比如語言結(jié)構(gòu)相對松散,使用變量前不需要明確正式定義變量類型等),但仍保留了程序設計語言的基礎邏輯與自然的語言風格。
從R的普及來看,國外的普及度要明顯好于國內(nèi),與盜版Windows的泛濫會影響Linux在中國的普及一樣,破解的MATLAB與SPSS的存在也影響了R在中國的使用。但在國外高校的統(tǒng)計系,R幾乎是一門必修的語言,具有統(tǒng)治性的地位。在工業(yè)界,作為互聯(lián)網(wǎng)公司翹楚的Google內(nèi)部也有不少工程使用R進行數(shù)據(jù)分析工作。隨著數(shù)據(jù)挖掘在國內(nèi)的發(fā)展,國內(nèi)對R語言的需求必將隨之一起發(fā)展。
總的來說,R語言是一款用于統(tǒng)計分析、數(shù)據(jù)可視化和預測建模的數(shù)據(jù)分析軟件,它不單單只是一門語言,更是一個數(shù)據(jù)計算與分析的環(huán)境。R支持幾乎所有數(shù)據(jù)分析所需的數(shù)據(jù)處理、統(tǒng)計模型和圖表,支持大量的第三方功能包,涵蓋了從統(tǒng)計計算到機器學習,從金融分析到生物信息,從社會網(wǎng)絡分析到自然語言處理,從各種數(shù)據(jù)庫各種語言接口到高性能計算模型等內(nèi)容。隨著大數(shù)據(jù)時代的來臨,數(shù)據(jù)挖掘?qū)⒏訌V泛地滲透到各行各業(yè)中去,而R語言作為數(shù)據(jù)挖掘里的熱門工具,將會有更多其他行業(yè)的人加入到R語言的使用者行列中來。R語言的使用課程成為高校中數(shù)學與統(tǒng)計學專業(yè)的重要課程將是必然的趨勢。
本書特色本書從實際應用出發(fā),結(jié)合實例及應用場景,深入淺出地介紹了R語言應用的相關知識:R語言的安裝及使用、數(shù)據(jù)對象與數(shù)據(jù)讀寫、常用數(shù)據(jù)管理、圖形探索、高級繪圖工具及常用的建模算法在R語言中的實現(xiàn)方式。書中以R語言的函數(shù)應用為主,先介紹了函數(shù)的應用場景及使用格式,再給出函數(shù)的應用實例,最后對函數(shù)的運行結(jié)果做出了解釋,將掌握函數(shù)應用的所需知識點按照實際使用的流程展示出來。
為方便理解R語言中相關函數(shù)的使用,本書提供示例代碼及所用數(shù)據(jù)等相關資源下載,讀者可以從“泰迪杯”全國數(shù)據(jù)挖掘挑戰(zhàn)賽網(wǎng)站(http://www.tipdm.org/ts/747.jhtml)免費獲取。也可以通過熱線電話(40068-40020)、企業(yè)QQ(40068-40020)及以下微信公眾號咨詢獲取。
TipDM 張良均〈大數(shù)據(jù)挖掘產(chǎn)品與服務〉本書適用對象開設有數(shù)據(jù)挖掘課程的高校教師和學生。
目前國內(nèi)不少高校將數(shù)據(jù)挖掘引入本科教學中,在數(shù)學、計算機、自動化、電子信息、金融等專業(yè)開設了數(shù)據(jù)挖掘技術相關的課程,但目前這一課程的教學工具仍然為SPSS、SAS等傳統(tǒng)統(tǒng)計工具,并沒有使用R語言作為挖掘工具。本書提供了有關R語言的從安裝到使用的一系列知識,將能有效指導高校教師和學生使用R語言工具進行數(shù)據(jù)挖掘。
數(shù)據(jù)挖掘開發(fā)人員。
這類人員可以在理解數(shù)據(jù)挖掘應用需求和設計方案的基礎上,結(jié)合書中提供的R語言的使用方法快速實現(xiàn)數(shù)據(jù)挖掘應用的編程。
進行數(shù)據(jù)挖掘應用研究的科研人員。
許多科研院所為了更好地對科研工作進行管理,紛紛開發(fā)了適應自身特點的科研業(yè)務管理系統(tǒng),并在使用過程中積累了大量的科研信息數(shù)據(jù)。R語言可以提供一個優(yōu)異的環(huán)境對這些數(shù)據(jù)進行挖掘分析應用。
關注高級數(shù)據(jù)分析的人員。
R語言作為一個專業(yè)的數(shù)據(jù)分析軟件,能為數(shù)據(jù)分析人員提供可靠的依據(jù)。
如何閱讀本書本書主要分為三個部分,基礎篇、建模應用篇和Rattle篇;A篇介紹了有關R語言的安裝與使用、R語言中的數(shù)據(jù)結(jié)構(gòu)、常用操作和繪圖功能等基礎功能。建模應用篇主要介紹了目前在數(shù)據(jù)挖掘中常用的建模方法在R語言中的實現(xiàn)函數(shù),并對輸出結(jié)果進行了解釋,有助于讀者快速掌握應用R語言進行分析挖掘建模的方法。讀者可結(jié)合本書提供的示例代碼及數(shù)據(jù)進行上機實驗,快速掌握R語言的使用方法。
第一部分是基礎篇(第1~5章),第1章主要介紹了R語言及圖形操作工具RStudio的安裝及使用方法,第2章對R語言中的數(shù)據(jù)類型和數(shù)據(jù)對象及不同格式的數(shù)據(jù)讀入和導出R語言進行了介紹,第3章描述了R語言中對數(shù)據(jù)所能做的常用操作,包括變量的重命名、缺失值分析、排序、隨機抽樣等,第4、5章主要對R語言的繪圖功能進行了介紹,涵蓋常用圖形如散點圖、直方圖、條形圖、箱線圖等,且一并介紹了一些基于R語言的可用于生成交互式圖形的軟件包。
第二部分是建模應用篇(第6~10章),主要對數(shù)據(jù)挖掘中常用算法的函數(shù)在R語言中的使用方法及其結(jié)果進行了介紹,涵蓋了目前數(shù)據(jù)挖掘的5大類算法,包括分類與預測、聚類分析、關聯(lián)規(guī)則、智能推薦和時間序列。按照從模型建立到模型評價架構(gòu)的順序進行介紹,使讀者能熟練地掌握從建模到對模型評價的完整建模過程。
第三部分是Rattle篇(第11章),介紹了一個R語言的圖形界面工具Rattle,此工具能夠在一個圖形化的界面上對本書介紹的R語言功能進行操作,使讀者能更好地體驗到使用R語言進行數(shù)據(jù)挖掘的整個流程。
勘誤和支持除封面署名作者外,參加本書編寫工作的還有黃博、陳婷婷、王路、陳玉輝、楊征、施興、徐英剛、鄭澤如、張樂兒、黃東鑫等。由于水平有限,編寫時間倉促,書中難免會出現(xiàn)一些錯誤或者不準確的地方,懇請讀者批評指正。本書內(nèi)容的更新將及時在“泰迪杯”全國數(shù)據(jù)挖掘挑戰(zhàn)賽網(wǎng)站上發(fā)布。讀者可通過微信公眾號TipDM、TipDM官網(wǎng)反饋有關問題。也可通過熱線電話或企業(yè)QQ進行在線咨詢。
致謝本書編寫過程中得到了廣大高校師生的大力支持,在此謹向華南農(nóng)業(yè)大學、華南師范大學、廣東工業(yè)大學、廣東技術師范學院、華南理工大學、韓山師范學院、中山大學、貴州師范學院等單位給予支持的領導及師生致以深深的謝意。
在本書編輯和出版過程中還得到了參與“泰迪杯”全國數(shù)據(jù)挖掘挑戰(zhàn)賽的眾多師生及機械工業(yè)出版社楊福川老師無私的幫助與支持,在此一并表示感謝。
張良均,資深大數(shù)據(jù)挖掘?qū)<,高級信息項目管理師,有?0年的大數(shù)據(jù)挖掘應用、咨詢和培訓經(jīng)驗,被稱為“中國大數(shù)據(jù)挖掘培訓教父”。為電信、電力、政府、互聯(lián)網(wǎng)、生產(chǎn)制造、零售、銀行、生物、化工、醫(yī)藥等多個行業(yè)上百家大型企業(yè)提供過數(shù)據(jù)挖掘應用與咨詢服務,實踐經(jīng)驗豐富,F(xiàn)任廣東工業(yè)大學、華南師范大學、華南農(nóng)業(yè)大學等6所高校兼職教授。著有《神經(jīng)網(wǎng)絡實用教程》《數(shù)據(jù)挖掘:實用案例分析》《R語言數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》等暢銷圖書。
謝佳標,資深R語言專家,多次于中國R語言大會發(fā)表演講,具有十余年的數(shù)據(jù)挖掘?qū)崙?zhàn)經(jīng)驗。目前于某上市互聯(lián)網(wǎng)游戲公司,任高級數(shù)據(jù)分析師,負責大數(shù)據(jù)挖掘及可視化。培訓過的精品課程有:《R語言基礎培訓》《數(shù)據(jù)分析之R語言實戰(zhàn)》《機器學習與R語言實踐》等。
萬正勇,某國際投行VP,有超過10年的金融系統(tǒng)大數(shù)據(jù)挖掘及分析經(jīng)驗,超過15年的大型金融機構(gòu)核心交易系統(tǒng)規(guī)劃設計開發(fā)經(jīng)驗。數(shù)據(jù)庫及中間件專家,先后獲得中國首屆十大杰出數(shù)據(jù)庫工程師,Oracle 中間件 ACE Director以及 Oracle 數(shù)據(jù)庫 ACE 等稱號。曾為電信,電力,航空,銀行,保險,互聯(lián)網(wǎng),交通,制造等等行業(yè)相關龍頭企業(yè)提供過咨詢服務。著有《衍生數(shù)學》,《Oracle數(shù)據(jù)庫DBA專題技術精粹》等暢銷書
前 言
第一部分 基礎篇
第1章 R語言的安裝與使用 2
1.1 R安裝與升級 3
1.2 R使用入門 4
1.2.1 R操作界面 4
1.2.2 RStudio窗口介紹 5
1.2.3 R常用操作 6
1.3 R數(shù)據(jù)分析包 8
1.4 配套資源使用說明 10
1.5 小結(jié) 10
1.6 上機實驗 10
第2章 數(shù)據(jù)對象與數(shù)據(jù)讀寫 12
2.1 數(shù)據(jù)類型 12
2.2 數(shù)據(jù)結(jié)構(gòu) 16
2.2.1 向量 16
2.2.2 矩陣 19
2.2.3 數(shù)組 24
2.2.4 數(shù)據(jù)框 25
2.2.5 因子 28
2.2.6 列表 31
2.3 數(shù)據(jù)文件的讀寫 34
2.3.1 鍵盤輸入數(shù)據(jù) 34
2.3.2 讀取不同格式的數(shù)據(jù) 35
2.3.3 從其他統(tǒng)計軟件獲取數(shù)據(jù) 37
2.3.4 從數(shù)據(jù)庫獲取數(shù)據(jù) 37
2.3.5 從網(wǎng)頁獲取數(shù)據(jù) 39
2.4 小結(jié) 40
2.5 上機實驗 40
第3章 R語言常用數(shù)據(jù)管理 42
3.1 變量的重命名 42
3.2 缺失值分析 45
3.3 數(shù)據(jù)排序 46
3.4 隨機抽樣 48
3.5 數(shù)值運算函數(shù) 49
3.6 字符串處理 52
3.7 文本分詞 56
3.8 apply函數(shù)族 62
3.9 數(shù)據(jù)整合 65
3.10 控制流 68
3.11 函數(shù)的編寫 71
3.12 小結(jié) 72
3.13 上機實驗 73
第4章 圖形探索 75
4.1 圖形元素 76
4.1.1 顏色 76
4.1.2 點 80
4.1.3 文本 82
4.1.4 線條 86
4.1.5 圖例 91
4.1.6 坐標軸 92
4.2 圖形組合 94
4.3 圖形保存 97
4.4 圖形函數(shù) 98
4.5 小結(jié) 116
4.6 上機實驗 116
第5章 高級繪圖工具 117
5.1 lattice包繪圖工具 117
5.1.1 繪圖特色 117
5.1.2 基本圖形 122
5.2 ggplot2包繪圖工具 135
5.2.1 從qplot開始 135
5.2.2 ggplot作圖 137
5.3 交互式繪圖工具簡介 142
5.3.1 rCharts包 143
5.3.2 recharts包 147
5.3.3 googleVis包 147
5.3.4 htmlwidgets包 148
5.3.5 shiny包 153
5.4 小結(jié) 163
5.5 上機實驗 163
第二部分 建模應用篇
第6章 分類與預測 166
6.1 回歸分析 166
6.2 決策樹 175
6.2.1 C4.5算法 176
6.2.2 CART算法 178
6.2.3 C5.0算法 180
6.3 人工神經(jīng)網(wǎng)絡 181
6.4 KNN算法 183
6.5 樸素貝葉斯分類 185
6.6 其他分類與預測算法函數(shù) 187
6.7 分類與預測算法評價 192
6.8 小結(jié) 196
6.9 上機實驗 196
第7章 聚類分析 198
7.1 K-Means聚類分析函數(shù) 199
7.2 層次聚類算法 204
7.3 其他聚類分析函數(shù) 207
7.4 小結(jié) 211
7.5 上機實驗 212
第8章 關聯(lián)規(guī)則 213
8.1 Apriori關聯(lián)規(guī)則 214
8.2 小結(jié) 226
8.3 上機實驗 226
第9章 智能推薦 228
9.1 智能推薦模型構(gòu)建 228
9.2 智能推薦模型評價 232
9.3 小結(jié) 235
9.4 上機實驗 235
第10章 時間序列 237
10.1 ARIMA模型 237
10.2 其他時間序列模型 245
10.3 小結(jié) 250
10.4 上機實驗 251
第三部分 Rattle篇
第11章 可視化數(shù)據(jù)挖掘工具Rattle 254
11.1 Rattle簡介及其安裝 254
11.1.1 Rattle簡介 254
11.1.2 Rattle安裝 254
11.2 功能預覽 255
11.3 數(shù)據(jù)導入 256
11.3.1 導入CSV數(shù)據(jù) 256
11.3.2 導入ARFF數(shù)據(jù) 261
11.3.3 導入ODBC數(shù)據(jù) 262
11.3.4 R Dataset——導入其他數(shù)據(jù)源 264
11.3.5 導入RData File數(shù)據(jù)集 267
11.3.6 導入Library數(shù)據(jù) 268
11.4 數(shù)據(jù)探索 269
11.4.1 數(shù)據(jù)總體概況 269
11.4.2 數(shù)據(jù)分布探索 272
11.4.3 相關性 275
11.4.4 主成分 277
11.4.5 交互圖 278
11.5 數(shù)據(jù)建模 283
11.5.1 聚類分析 283
11.5.2 關聯(lián)規(guī)則 288
11.5.3 決策樹 291
11.5.4 隨機森林 293
11.6 模型評估 296
11.6.1 混淆矩陣 296
11.6.2 風險圖 296
11.6.3 ROC圖及相關圖表 297
11.6.4 模型得分數(shù)據(jù)集 298
11.7 小結(jié) 299
11.8 上機實驗 299
參考資料 301