R語言學習路徑和感受
第一次接觸R語言是我讀研的時候,算到現在有5年多了。R語言可以算得上是我進入程式設計世界的啟蒙語言,儘管在大學期間為了考試而被迫學習過計算機二級,但那真心是沒有一丁點的興趣可言。進入R的世界後,真的越來越喜歡,可以幫助我解決學術研究過程中的很多探索,最起碼讀研期間的所有小論文和畢業論文的案例分析都是通過R語言完成的。工作後,資料分析、視覺化和資料探勘的落地更是通過R語言幫我實現的,她對我的學習和工作起到了很大的幫助。
2015年2月份畢業開始了一份正式的工作,半年多後突然產生一個想法,就是把自己在工作中的所學所用通過公眾微訊號(lsxxx2011)記錄下來,並給自己的公眾號起名“每天進步一點點2015”。到今天已維護了近2年半的時間,積累了近160篇文章,也結識了很多對資料分析、挖掘感興趣的朋友。曾經有好多朋友都向我問起過一個類似的問題:“我是***,對資料分析很感興趣,但目前是R語言的小白,也自學了一段時間,但總感覺使不上力,有沒有比較好的學習方法?”
基礎篇
我接觸R語言的第一本書是薛毅老師的《統計建模與R軟體》,這本書個人感覺非常棒,至少有這三方面的優點:首先,該書將統計學裡面的基礎知識和理論都作了比較詳細的剖析;其次,也詳細介紹了R軟體本身的基礎知識,如語法、資料結構、資料讀取、控制流等;最後但也是最重要的,運用R軟體(很多情況都不是直接調包)將統計學模型的原理作了相應的程式碼實現,包括統計檢驗、線性迴歸、方差分析等。這本書我看了至少2遍,但對於R語言的初學者並不建議將這本書當作學習的第一本書
《R語言實戰》,這是一本非常好的初學R語言的資料,而且該書在今年也更新到了中文版的第二版。之所以首推這本書作為初學教程,是因為這本書偏實戰,而非理論,你可以通過這本書提高R軟體的使用技能,該書包括R軟體程式設計基礎、視覺化作圖和統計建模等內容。這本書我至少也看了2遍,書中包含了各式各樣的R軟體包和函式的使用,要想記住這些內容還不得不多敲程式碼。
《R語言資料操作》,是一本頁數非常少的書籍,但都是精華。書中沒有任何關於統計學相關的內容,都是在討論資料集的管理,如缺失值處理、資料讀取、日期資料的處理、正則表示式、資料彙總
當然,網上也有很多其他初學者資料,如《153分鐘學會R》、《R語言經典入門_2012》、《R語言初學者指南》、《RCookbook》等。
視覺化篇
在學習R軟體的同時,你肯定會碰到關於使用R軟體來完成資料的視覺化操作,確實,R軟體也是一款非常棒的視覺化工具,包含了各種各樣的視覺化包,如graphics、lattice、plotrix、plotly、ggplot2等等。關於這一塊內容的學習,你可以根據上面提到的書籍《統計建模與R軟體》、《R語言實戰》、《R Cookbook》等初識一下視覺化,瞭解R軟體基礎包中是如何實現資料視覺化(儘管每一個繪圖函式都包含很多引數),這樣會對你的繪圖思維帶來好處。如果要推薦幾本資料視覺化的書,我會強烈推薦《ggplot2:資料分析與圖形藝術》和《R資料視覺化手冊》。
第一本書是ggplot2包的開發作者所編著的,在R中ggplot2也是非常火爆的視覺化包,書中詳細介紹瞭如何利用圖層的思想繪製完美的統計圖形,有系統的繪圖元件,如geom_*函式、stat_*函式、sacle_*函式及theme類函式。這本書更多的是從繪圖思想和理論出發,介紹ggplot2包的龐大功能(當然也有很多繪圖案例)。
第二本書則彌補了第一本書的輕鬆感,說實話,我讀《R資料視覺化手冊》的次數要比《ggplot2:資料分析與圖形藝術》多一些,因為該書通過非常多的例子來對比基礎包與ggplot2包在繪圖方面的差異,既讓我鞏固了基礎包的繪圖方法,也提升了我對ggplot2包的濃厚興趣,目前工作中涉及到基本統計圖形(如條形圖、直方圖、折線圖、散點圖等)的繪製,我都是優選ggplot2包來完成。當然,我也把ggplot2包中常見的繪圖功能作了整理,並以系列的形式分享在了公眾號中。
謝益輝整理的《現代統計繪圖》、肖凱的PPT《30分鐘學會ggplot2》及英文版的《R語言之多變數資料視覺化--Lattice》都是比較好的視覺化學習材料。
資料探勘篇
上面介紹的這些書更多的都是從資料分析角度,如果你想提升自己,研究一些目前比較火的資料探勘知識,R語言同樣提供了出路。這裡介紹幾本我看過的相關書籍,它們是《資料探勘:R語言實戰》、《機器學習與R語言》、《R語言資料分析與挖掘實戰》、《資料探勘概念與技術》和《統計學習方法》。
前面三本書都是基於R語言工具的資料探勘實戰,內容包含了常見的資料探勘方法,如Knn、Logistic迴歸、決策樹、樸素貝葉斯、神經網路、SVM、隨機森林、Bagging、Adboosting、K均值聚類、密度聚類、EM聚類、關聯規則等,每一種挖掘方法都配備了詳細的資料案例,甚至也會解釋挖掘函式中重要引數的含義和使用方法。當你讀完這幾本實戰類的書,你就會發現通過R語言的調包來完成資料探勘是特別簡單的。此時,我相信你一定會對資料探勘的理論感興趣(最起碼,你在實戰資料探勘的過程中你會反問自己為什麼這個引數這樣調整會更好?),因為你或多或少的感覺到你遇到了瓶頸,你想更往上走一步,但又力不從心。此時,你需要的是資料探勘理論方面的材料來給充實自己,給自己補充能量。那這就是我接下來要跟你介紹的另兩本理論書籍。
《資料探勘概念與技術》這本書雖說是理論方面的書籍,但讀起來還是蠻輕鬆的。書籍中的挖掘部分,首先介紹挖掘方法的概念和理論知識,然後通過某些資料集來完成手工計算的過程,對於讀者來說,具有代入感,學習起來也會比較有勁。這本書相對於《資料探勘導論》來說會稍微難一點,如果你對自己沒有信心,可以先看看《資料探勘導論》這本書。
《統計學習方法》是一本完全偏理論的書籍,包含了很多演算法的推理過程,如knn演算法、貝葉斯演算法、決策樹演算法、支援向量機演算法等,這些推理對讀者的數學知識要求比較高,如線性代數、微積分、概率論等。如果你能夠靜下心來對整本書的推理進行一遍梳理(哪怕是抄一遍),我相信你一定會受益匪淺,對資料探勘的理解會更加深刻。
其他學習資源
除了上面所提及的書本(幾乎每本書我都看了至少兩遍),網路上還有更多的習資源,如視訊網站、論壇、部落格、社群等。接下來我跟大家介紹幾個我常去的免費資源:
統計之都:https://cosx.org/,裡面有非常豐富的高質量文章,包含資料探勘、視覺化、統計學、分析報告等;
統計之都論壇:https://d.cosx.org/,如果你有學習上的疑問,你可以在論壇上提問,熱心的網友也會給出他們的答案;同樣,你也可以看別人提出的問題,嘗試回答或檢視別人的回覆,進一步提高自己的R語言技能;
R語言官網:https://www.r-project.org/,官網中有一些不錯的學習手冊,同時也會定期更新R語言包,截止到寫稿目前已有11,899個第三方包,使用R真的就是站在巨人的肩膀上;
經管之家:http://bbs.pinggu.org/,網站中有專門R語言論壇,其性質跟統計之都論壇相似,可以互動,相互學習;當然該網站還有其他學習資源,如SAS、計量經濟論壇、Python論壇等;
中國統計網:http://www.itongji.cn/cms/article/index,網站中有非常多的好文,包含資料運營、資料分析、資料探勘、乾貨分享等欄目;
Github官網:https://github.com/,在這個網站上你可以查到很多別人做過的專案案例,含有R語言程式碼,通過一步步學習,能夠提高R語言程式設計技能 ;
Kaggle官網:https://www.kaggle.com/,這是一個提供資料探勘比賽的網站,你既可以檢視別人提交的作頁,也可以通過報名比賽來提高自己的實戰能力;
儘管有如此多的優秀學習資料,但不要貪杯,在學習過程中一定要各個擊破(一本一本的用心看,用心記,用心敲程式碼),系統學習。如果你想學好R語言這個工具,千萬不要著急,基礎很重要,否則基礎剛學一半就去看高階的或看別人的比賽程式碼,我相信你還會被打回原形。而且學習還是一個堅持的過程,堅持記得學習;堅持寫寫心得;堅持將每一個知識點串起來嘗試替代你最拿手的工具(如Excel,SPSS等)。加油!“革命尚未成功,同志仍需努力!”
OK,到此就分享的差不多了,我在學習R語言的過程中,看書是一方面,另一方面要通過書籍中的知識點去想想我會在哪些場景下去使用,怎樣使用;同時,通過檢視大量的文章(論壇,部落格)來學習別人所分享內容的思想、步驟和結論。作為資料分析或挖掘工作者,技能是一方面,另一方面是關於如何培養好自己的分析思維,畢竟技術這個東西是很容易替代的,而思維才是屬於自己的,才是自己有別於其他人的地方。
本次分享中,所提及的所有書籍我都已經整理好,如果你需要的話,歡迎關注我的公眾號(lsxxx2011)或(每天進步一點點2015),並回覆“R語言書籍”,即可獲得下載連結。歡迎更多的朋友能夠與小編一起學習,互相監督,取長補短,最終達到自己理想的目標狀態。