Welcome
https://jirlong.gitbook.io/r/
這是台大經濟系資料科學與社會研究、台大新聞所新聞資料分析與視覺化兩門課的課程自學網站。這兩門課的教法是一樣的,基礎模組也是一樣的,唯前者強調資料分析與建模,後者強調視覺化。但在這個網站上,兩者都包含了。
開始你的學習
很簡單,請先到github下載本教學的相關檔案(https://github.com/P4CSS/R4CSS),打開解壓縮後,便可開啟List of videos 逐一觀看Youtube影片。程式檔案和Youtube影片是逐單元搭配的。
你喜歡多看一些文字說明的,可搭配本網站逐漸建置的內容觀看,也是和Youtube教學影片搭配好的。
如果你喜歡更多自學資源的,可以看一下Resources 頁面,裡面推薦了線上互動學習平台Datacamp中與這門課程相輔相成的教學單元,也推薦了網路上可以免費觀看的三本電子書,每本都可以讓你變成R的高手。
初入門怎麼學好程式?
程式碼打越多越熟
本課程目前正在整理程式碼和影片的對應,所以,可能會有影片和程式碼的檔名對不上的狀況。在前半部初階的學習中,我每學期幾乎都會更換範例,但我沒辦法更新影片更新的這麼快。不過,我建議你每一行程式碼都自己打,不見得需要使用老師給的程式碼。而後兩個月的進階內容,程式碼的檔名和內容非常少變動。你直接下載本課程所提供的程式碼便可以執行。
學好程式的「環境機制」
程式的學習像是什麼呢?就像是用英文寫統計一樣。所以,他的學習經驗會跟你學英文和學統計的經驗非常像。如果你過去學英文或統計的經驗是,你告訴自己,英文很重要,對未來很重要,你光告訴自己這很重要你就學得好,那不用看以下內容。
但如果你是個告訴自己學英文很重要,但結果你自評學不好,那麼,這時候你跟自己說,學程式很重要,對未來很重要,那學不好的機率就大。那怎麼辦?那你就要去尋找,自己學好一項技能的美好經驗,或者是別人學好程式的美好經驗。這絕對不會是不斷洗腦自己學程式很重要,而通常是以下的「環境機制」:
找一群人一起學,卡住了就借別人寫的東西來看看,一起寫作業(但是不要抄,有程式自動比對系統)。
找特殊的動機。比方說,有不少人程式寫得嚇嚇叫是因為,他們喜歡寫爬蟲,對於能夠把網路上的東西爬下來非常滿意,寫爬蟲似乎滿足了個人的窺伺欲,或者那種鍵盤監督者的「黑客感」。相當人是因為喜歡寫爬蟲而程式越寫越好。
找喜歡的學習教材。比方說,有人喜歡點選Datacamp的任務,因而越來越強,甚至R和Python都靠Datacamp學起來;有人喜歡看影片,不喜歡上課,只要上課就想睡覺;有人喜歡找人教、有人喜歡看國外的教學影片順便練英文,不管怎樣,符合你喜歡的形式就好。
為何學R?
近年Python在深度學習的發展下似乎成為顯學,不少同學已經接觸過Python,甚至疑問為什麼不上Python而要上R,在此做簡要說明供參考。
R與STATA、SAS、Matlab的學習經驗容易銜接。R原為一統計軟體,Variable-based的R,也更容易與過去統計所學銜接,學過STATA、SAS、Matlab的同學,應該可以無痛銜接。
R是擅長資料分析的語言。Python是個泛用性語言,R則是基於統計概念所衍生的善於做資料分析的語言,除了深度學習外,Python和R相較之下不具有優勢。甚至在深度學習尚未蔚為風行之時,2016、2017年人工智慧學校、人工智慧年會更有「資料科學家應該用R」、「R做分析又快又好」、「有什麼是R做不到的」的說法。
R易於資料想像。在R中,通常會把資料想像為Row X Column的資料表(Data frame),而且從頭到尾幾乎只用這種方式來想像資料。但Python由於是泛用型程式語言,所以各種不同的套件的物件類別均不同,導致初學習者每次學習新的套件都要花時間去理解基礎的物件格式。
R在目前國內外經研所、政治所仍是主流。大部分的R第三方套件都是由經濟學、統計、政治學、社會學等專家所開發。其對於統計檢定的設計和要求也比較符合研究需要。所以,是出國深造或升學的重要工具。
R的職缺著重在資料分析、資料科學。從104上看徵求R與Python的職缺和徵求Python的職缺相較下可以看出,R確實符合資料科學的需求,Python則五花八門,最常見於資訊系統、資料工程、深度學習等。(2020/09/16 retrieved from 104.com)
學會這門課的預期效益如何?
因為本課程幾乎涵蓋了資料分析所需的基本功,因此有不少修過這堂課後,便能夠直接到業界實習、工作、或者成為其研究室的資料分析核心者。足以能夠應付交易分析、使用者分析(顧客關係管理)等業界任務,至於對學界而言,由於內容幾乎與美國頂尖大學如Stanford Political Science或Chicago Computational Social Science相仿,甚至有能力處理中文,因此過去確實成功為不少同學帶來去歐美留學的機會。
如果要與資工競爭工作,還要修什麼課?
與資工競爭是錯誤的概念。資工不等同於資料科學家。資工的學生在學期間會學得網路安全、網路底層傳輸設計、訊號處理、圖像處理、多媒體系統整合、嵌入式系統、音訊處理等專長。這些專長不是社會科學家的專長,他們也不盡然會來做資料科學家的工作,例如趨勢科技的資料科學家就不是由資工背景的學生所組成,而是由統計學家、數學家等所組成,因此,你們要挑戰的是一群和你一樣一開始不會寫程式的人,而不是資工學生。
未來我要修什麼課可以幫助我就業或求學?
如果未來你要直接找工作,我建議的基本修課邏輯是修完「資料科學與社會研究」後,找門Python的課來上,例如管院的商管程式設計、新聞所未來會開的「社會科學程式設計」。有助於拓展職涯。
如果你想當數值型的資料科學家,可以學完本課後,加強統計、線性代數等,就直接應徵工作。但如果你才大三,還有時間修課,可以學完本課後,修管院的「商管程式設計」,再修門機器學習的課程,不見得要深度學習,因為那可能與你無關,你可以挑選非資工或電機的機器學習課程。
如果你喜歡自然語言處理,想當這方面的資料科學家,建議可學完本課後,修新聞所與經濟系合開的「社會科學程式設計」或新聞所的「社群輿論分析」後,選修資工或語言所的自然語言處理或計算語言學,再選修電機系李宏毅所開設的「深度學習與人類語言處理」或資工系陳信希老師開的「自然語言處理」或跨校選修政大黃瀚萱老師所開設的「自然語言處理」課程。
如果未來你想做研究或深造,可以修完本課程後,選修「社會科學程式設計」、「社群輿論分析」、新聞所劉好迪老師「社群媒體與社會網絡分析」等課程,直接有助於幫公事所或政治系的學生找到進階的研究方法,也有助於經濟系的學生開拓不同的分析視野。
Last updated
Was this helpful?