發表於2024-11-25
本書通過簡單直觀的R代碼、逐漸深入的講解以及省時省力的方法,提供瞭大量數據分析樣例,終幫助你高效地解決各類數據問題。1章介紹瞭如何創建R函數,避免不必要的代碼重復。你會學到如何藉助R程序包在各種數據源上準備、處理和執行復雜的ETL操作。後麵的章節介紹瞭財務數據的時間序列分析,同時還介紹瞭機器學習的幾個熱點,例如數據分類、迴歸、聚類、關聯規則挖掘、降維等。本書的結尾中,你會學到如何解決實際問題,並能夠在數據分析過程中輕鬆地給齣解決方案。
推薦序
譯者序
前言
第1章 R中的函數1
1.1引言1
1.2 創建R函數2
1.3 匹配參數3
1.4 理解環境5
1.5 使用詞法域8
1.6 理解閉包10
1.7 執行延遲計算12
1.8 創建中綴操作符13
1.9 使用替代函數15
1.10 處理函數中的錯誤17
1.11 調試函數21
第2章 數據抽取、轉換和加載28
2.1 引言28
2.2 下載公開數據28
2.3 讀取和寫入CSV文件31
2.4 掃描文本文件32
2.5 使用Excel文件34
2.6 從數據庫中讀取數據36
2.7 爬取網絡數據38
2.8 獲取Facebook數據44
2.9 使用twitteR49
第3章 數據預處理和準備53
3.1 引言53
3.2 重命名數據變量53
3.3 轉換數據類型55
3.4 使用日期格式57
3.5 添加新的記錄58
3.6 過濾數據60
3.7 捨棄數據63
3.8 閤並數據64
3.9 排列數據65
3.10 重塑數據67
3.11 檢測缺失數據69
3.12 估計缺失數據71
第4章 數據操作74
4.1 引言74
4.2 使用data.table加強data.frame74
4.3 使用data.table管理數據77
4.4 使用data.table執行快速聚閤82
4.5 使用data.table閤並大型數據集85
4.6 使用dplyr進行數據抽取和切片88
4.7 使用dplyr進行數據抽樣91
4.8 使用dplyr選取列92
4.9 使用dplyr進行鏈式操作94
4.10 使用dplyr整理行95
4.11 使用dplyr消除重復行97
4.12 使用dplyr添加新列98
4.13 使用dplyr匯總數據99
4.14 使用dplyr閤並數據102
第5章 使用ggplot2可視化數據105
5.1 引言105
5.2 使用ggplot2創建基礎圖形106
5.3 改變美學映射109
5.4 引入幾何對象112
5.5 執行變換116
5.6 調整圖形尺度118
5.7 分麵120
5.8 調整主題122
5.9 組閤圖形124
5.10 創建地圖126
第6章 製作交互式報告131
6.1 引言131
6.2 創建R Markdown報告131
6.3 學習markdown語法135
6.4 嵌入R代碼塊137
6.5 使用ggvis創建交互式圖形140
6.6 理解基礎語法143
6.7 控製坐標軸和圖例148
6.8 使用尺度153
6.9 給ggvis圖形添加交互154
6.10 創建R Shiny文檔159
6.11 發布R Shiny報告164
第7章 概率分布模擬169
7.1 引言169
7.2 生成隨機樣本169
7.3 理解均勻分布171
7.4 生成二項隨機變量173
7.5 生成泊鬆隨機變量175
7.6 從正態分布中抽樣177
7.7 從卡方分布中抽樣183
7.8 理解學生t-分布185
7.9 從數據集中抽樣187
7.10 模擬隨機過程188
第8章 R中的統計推斷191
8.1 引言191
8.2 獲取置信區間191
8.3 執行Z-檢驗196
8.4 執行學生T-檢驗199
8.5 執行精確二項檢驗202
8.6 執行Kolmogorov-Smirnov檢驗203
8.7 使用Pearson卡方檢驗205
8.8 理解Wilcoxon秩和檢驗207
8.9 執行單因素方差分析209
8.10 執行雙因素方差分析212
第9章 R語言規則和模式挖掘216
9.1 引言216
9.2 把數據轉換為事務216
9.3 展示事務和關聯218
9.4 使用Apriori規則挖掘關聯關係220
9.5 對冗餘規則剪枝223
9.6 可視化關聯規則224
9.7 使用Eclat挖掘頻繁項集226
9.8 使用時序信息創建事務228
9.9 使用cSPADE挖掘頻繁序列模式231
第10章 R語言時間序列挖掘235
10.1 引言235
10.2 創建時間序列數據235
10.3 繪製時間序列對象238
10.4 分解時間序列241
10.5 平滑時間序列243
10.6 預測時間序列247
10.7 選取ARIMA模型251
10.8 創建ARIMA模型255
10.9 使用ARIMA模型預測257
10.10 使用ARIMA模型預測股票價格260
第11章 監督式機器學習264
11.1 引言264
11.2 使用lm擬閤綫性迴歸模型264
11.3 匯總綫性模型擬閤266
11.4 使用綫性迴歸來預測未知值268
11.5 度量迴歸模型的性能270
11.6 執行多元迴歸分析272
11.7 使用逐步迴歸選取最優擬閤迴歸模型274
11.8 應用高斯模型泛化綫性迴歸276
11.9 執行邏輯斯諦迴歸分析277
11.10 使用遞歸分割樹構建分類模型280
11.11 可視化遞歸分割樹282
11.12 使用混淆矩陣度量模型性能283
11.13 使用ROCR度量預測性能285
第12章 非監督式機器學習288
12.1 引言288
12.2 使用層次聚類法對數據聚類288
12.3 切割樹成聚類291
12.4 使用k-means方法對數據聚類293
12.5 使用基於密度的方法對數據聚類294
12.6 從聚類中抽取輪廓信息296
12.7 比較多種聚類方法298
12.8 使用基於密度的聚類識彆數字299
12.9 使用k-means聚類方法分組相似文本文檔301
12.10 使用主成分分析法進行數據降維303
12.11 使用陡坡圖確定主成分數量305
12.12 使用Kaiser方法確定主成分數量306
12.13 使用雙標圖可視化多變元數據308
?大數據、物聯網、人工智能已經變成近幾年最熱門的科技流行語。盡管大傢用很多名詞去定義這些技術,但是共通的思想是它們都是數據驅動的。人們並不滿足於簡單地擁有數據,因為發現其中的價值纔是最本質的。因此數據科學傢已經開始關注如何從原始數據中洞悉深層價值。
數據科學已經變成學術界和産業界最流行的話題。但是數據科學是一門非常寬泛的學科,學會掌握數據科學注定很有挑戰性。初學者必須學習如何準備、處理、聚閤和可視化數據。而更多高級技能包括機器學習,挖掘各種數據格式(文本、圖像和視頻),以及最重要的—使用數據産生商業價值。數據科學傢的角色需要大量的努力,同時,一名成功的數據科學傢也需要一個有力的工具來解決日常問題。
在這個領域中,數據科學傢使用最廣泛的工具是開源而且免費的R語言。作為一種機器語言,R提供瞭許多數據處理函數、學習庫和可視化函數,允許用戶快速上手分析數據。R可以幫助用戶快速執行分析,並在不需要懂得復雜數學模型細節的前提下執行機器學習算法。
本書給齣瞭實際方案,教你如何使用R語言將數據科學落地。全書共12章,每一章都分成幾個簡單的教程。通過每一個教程循序漸進的介紹,你可以使用R的程序包,掌握書中所教授的技術。
本書首先介紹如何創建R函數來避免不必要的代碼重復。你會學到如何使用R程序包,在各種數據源上準備數據、處理數據和執行高級ETL操作。數據操作的一個例子是介紹如何使用dplyr和data.table程序包有效地處理大型數據結構。還有一章關注ggplot2,介紹如何創建高級圖形,進行數據展示。你也會學到如何使用ggvis程序包構建交互式報告。
本書也會介紹如何使用數據挖掘技術發現經常一起購買的産品。後麵的章節還給齣瞭財務數據的時間序列分析結果。還有一些章節會深入介紹機器學習技術,包括數據分類、迴歸、聚類和降維。我可以保證,本書會讓你覺得,數據科學學習原來如此簡單。
主要內容第1章介紹如何創建R函數。該章會介紹R函數的基本構成、環境和參數匹配。我們還會介紹高級技術,例如閉包、函數式編程和如何處理錯誤。
第2章介紹如何使用R讀取結構化和非結構化的數據。該章首先介紹從文本文件中讀取數據。然後,介紹如何把R和數據庫連接起來。最後,你會學到如何編寫網絡爬蟲,爬取網頁和社交網絡上的非結構化數據。
第3章介紹分析前的數據準備工作。在該章中,我們會介紹數據預處理過程,使用基本的R函數,進行例如類型轉換、添加、過濾、捨棄、重塑和缺失值估計。
第4章介紹如何使用高級程序包data.table和dplyr有效而且高效地操作數據。data.table提供瞭快速加載和聚閤大型數據的可能。dplyr程序包提供瞭以類似SQL的語法操作數據的能力。
第5章介紹使用ggplot2可視化數據。首先介紹ggplot2的基本構成。然後,介紹高級技術,使用ggplot2函數創建復雜的圖形。最後,介紹如何使用ggmap構建地圖。
第6章展示如何使用R創建一份專業的報告。首先,討論如何使用Rmarkdown語法,嵌入R代碼塊。然後,介紹如何使用ggvis添加交互式圖錶。最後,介紹如何創建和發布RShiny報告。
第7章關注如何從不同的概率分布上抽樣數據。作為一個具體的例子,我們會介紹如何使用概率函數模擬隨機交易過程。
第8章首先討論點估計和置信區間。然後,介紹參數和非參數檢驗方法。最後,介紹如何使用ANOVA分析工程師的收入是否會隨著頭銜和地區的變化而不同。
第9章介紹用於發現交易數據中關聯項和暗藏的頻率模式的常用方法。在該章中,我們會使用一個實際例子,以便你可以學到如何在實際的數據集中執行規則和模式挖掘。
第10章首先介紹如何從財務數據集中創建和操作時間序列。然後介紹如何使用HoltWinters和ARIMA預測時間序列。該章會通過一個實際例子介紹如何使用ARIMA預測股票價格。
第11章介紹如何構建基於標注訓練數據的預測模型。你會學到如何使用迴歸模型理解數值關係,並使用擬閤模型進行連續值預測。對於分類任務,你會學到如何擬閤數據,生成一個樹形分類器。
第12章介紹未標注數據的隱含結構。首先,介紹如何使用聚類方法對位置臨近的旅館進行分組。然後,介紹如何使用PCA方法選取和抽取經濟自由度數據集中的特徵。
機器環境要學習本書中的例子,你需要一颱可以訪問互聯網的計算機,而且可以安裝R環境。你可以通過http://www.cran.rproject.org/下載R安裝文件。具體安裝信息可以在第1章中找到。
本書中的例子是在MicrosoftWindows和R3.2.4的基礎上編寫和測試的。這些例子也可以在MacOSX或者類似於UNIX的操作係統下,使用最新的R版本編譯通過。
讀者人群本書是麵嚮已經熟悉R語言的基礎操作,但是希望學習如何使用R程序包有效而且高效地分析現實世界數據問題的讀者。
行文結構在本書中,你會發現一些標題經常齣現(如準備工作、實現步驟、運行原理、更多技能和擴展閱讀)。
為瞭清楚地介紹如何完成每一個教程的學習,我們使用以下行文結構:
準備工作這個部分會告訴你當前教程需要的東西,並介紹如何安裝軟件和本教程所需的基礎環境。
實現步驟這個部分包括本教程所需的步驟。
運行原理這個部分通常包含對前一個部分的具體解釋。
更多技能這個部分包含本教程的額外信息,以便擴展讀者關於當前教程的知識麵。
擴展閱讀這個部分提供瞭指嚮其他有用信息的鏈接。
本書約定在本書中,你會發現文本有多種風格,以提供不同的信息。這裏給齣一些風格的例子,並給齣其中的含義。
程序包和函數名風格如下:“你可以安裝加載程序包RCurl”。
代碼塊設置如下:
>install.packages("RCurl")>library(RCurl)屏幕中的詞語,例如菜單或者對話框,文本做如下展示:”在R中,缺失值使用NA(不適用)標記,不可能的值用NaN(不是一個值)標記”。
樣例源碼下載你可以從http://www.packtpub.com通過個人賬號下載你所購買書籍的樣例源碼。如果你是從其他途徑購買的,可以訪問http://www.packtpub.com/support,完成賬號注冊,就可以直接通過郵件方式獲得相關文件。
你也可以訪問華章圖書官網http://www.hzbook.com,通過注冊並登錄個人賬號,下載本書的源代碼。
下載書中彩圖我們還為讀者準備瞭一個PDF文件,該文件包含瞭本書所有截圖和樣圖,可以更好地幫助讀者理解輸齣的變化。你可以從以下地址下載:http://www.packtpub.com/sites/default/files/downloads/RforDataScienceCookbook_ColorImages.pdf。
推薦序對於互聯網來說,當今是一個數據為王的時代。特彆是對於中國互聯網從業者來說,這個時代來得很快、很迅猛。Web2.0的到來讓用戶數據呈現齣爆炸式的增長態勢。如今,在搜索引擎、推薦係統、廣告投放、語音識彆、圖像識彆、自然語言理解、對話係統、交通物流、互聯網金融等領域都可以看到數據科學發揮功效的身影。而AlphaGo的勝利又掀起瞭人類對機器智能的大討論。數據科學讓人類在這個時代重新看到瞭0和1所蘊藏的巨大價值,找到瞭新的技術和戰略高地。
然而機遇總是與挑戰共存。海量數據通常意味著人們要花費巨大的精力纔能把數據轉變為價值,無論是數據記錄、數據處理、數據算法,還是數據可視化,每一個環節都會影響最後的産齣,而每一個環節都不能輕而易舉地完成。市麵上關於數據科學的書籍林林總總,最多的要數Python派和R派。Python派起源於工程人員,不管是理論還是實踐,讀者可選的種類還是很多的。而R語言是由統計學者開發的,其齣身和基因也決定瞭它在工程應用上的暫時落後,相關書籍也較少。對於我國數據科學從業者來說,R也是一門相對陌生的語言。聽說魏博在翻譯這本有關R語言開發應用的書籍,我非常欣慰。人們在R語言的實戰書籍中又多瞭一種選擇。同時,我也希望本書可以帶動大傢使用R進行實際開發的熱情。學科和行業的發展需要百傢爭鳴。數據科學的利器越多,挑戰和壁壘就會越容易攻剋,人們獲得數據價值的機會也就越大。
本書介紹瞭R語言在數據科學領域應用的方方麵麵,包括數據處理、數據操作、數據可視化、概率模擬、序列預測、頻繁項集挖掘、監督式算法和非監督式算法等。本書注重R語言程序包的介紹和使用,這可以讓讀者省去很多無謂的精力,避免“重復造輪子”。特彆是對於“唯快不破”的互聯網行業來說,能夠盡快使用成熟的開發包,是一件很幸福的事情。對於一名希望提升自己數據科學戰鬥力的讀者來說,這本書也是不二選擇。
魏博畢業於中國科學院數學所,讀博期間就開始主攻用戶需求建模和自動推理,後來負責阿裏巴巴優酷大文娛視頻搜索引擎的算法優化工作,目前在歐普拉軟件新聞推薦部門負責用戶畫像算法。他在理解用戶行為和用戶數據挖掘方麵有較深的造詣。同時他也是一名資深的R語言用戶和R語言傳播者。這本書的翻譯也是對他自身能力的考驗和體現。英文原版書有400多頁,他能夠在工作之餘,犧牲節假日,4個月來靜下心完成翻譯實屬不易。同時,R語言在國內的發展還有很長的路要走,特彆是一些麵嚮開發的技術術語的中文譯法還沒有達成廣泛共識,在翻譯過程中經常需要揣度和推敲。希望本書能夠成為廣大R語言數據科學愛好者共同閱讀、共同推廣的資源。
再次感謝魏博能夠把機械工業齣版社的優質外文資源翻譯成書。也希望這本書能夠成為大傢手邊時常翻閱的經典數據科學資料。
鬍睿前微軟資深研發總監現歐普拉軟件技術(北京)有限公司副總裁譯者序“數據科學”也許是近幾年最熱門的科技名詞。從各種各樣的互聯網應用到AlphaGo的勝利,世界正在見證著數據科學帶來的深刻影響。特彆是我國在“互聯網+”大潮推動下,海量數據每時每刻都在産生。無論是學術界,還是工業界,大量的科研人員都在這塊數據金礦上揮灑青春和汗水。從數據中發現規律並應用到産品開發或者戰略決策中,逐漸成為各行各業及各個企業公司的標準日常活動。同時,數據科學對於統計學、數據挖掘/機器學習算法,以及數據可視化等的需求也變得日漸迫切。一名掌握數據存儲知識、數據科學算法、數據項目管理和數據可視化技術的人員,通常是多傢用人單位的必爭之纔。
古語說:工欲善其事,必先利其器。處理海量、紛繁、動態的數據不是一件容易的事情。2013年,我在一篇科研論文上第一次結識瞭R語言。從那以後,我便開始瞭R語言道路上的各種探索。從最開始的編寫算法腳本,到後來執著於Rmarkdown的使用,再到後來開發Shiny小程序,以及在服務器上執行計算。對我來說,從來沒有一種語言讓我覺得在數據科學的道路上如此順暢和友好。然而,遍尋各種書籍和網上教程,很少有一份可靠的實踐開發資料可以讓讀者體會到實際項目的“火藥味”。很多書籍都在著重介紹R語言的基礎知識,對於實際開發和各種強大的程序包都鮮有係統的介紹。這與R語言在我國的普及和發展程度不無關係。我想是時候推齣一本書,讓大傢見識R語言和程序包的超強能力瞭。
本書便是一本注重R語言程序包實際應用的書籍。本書結構嚴謹,闡述通俗易懂,內容涵蓋瞭R語言的絕大多數應用場景。同時,對於眾人皆知的基礎知識,本書不再贅述;對於一些高級技術,本書還提供瞭一些擴展閱讀的資料,供學有餘力的讀者鑽研探討。值得提齣的是,本書的作者丘祐瑋是中國颱灣地區活躍的數據科學傢。他不僅擁有自己的數據科學公司,同時還服務於各大數據科學論壇,與中國大陸的數據科學工作者也有閤作,是一位理論與實踐並重的數據科學傢。相信每一位讀者都可以通過這本書學習到他的寶貴經驗。
2016年9月,我受機械工業齣版社的委托,承擔本書的翻譯工作。整個翻譯過程曆時4個月。這個過程也是自我溫習、自我提高的過程。特彆是
數據科學:R語言實現 下載 mobi pdf epub txt 電子書 格式 2024
數據科學:R語言實現 下載 mobi epub pdf 電子書數據科學:R語言實現 mobi epub pdf txt 電子書 格式下載 2024