五分鐘入門R與Python—使用情境與資源分享

2023/07/26閱讀時間約 5 分鐘
raw-image

資料分析工具百百種,有容易操作資料、視覺化的BI工具、常用於各領域的分析模型套裝軟體等等,但對於想做資料分析、資料科學的人,「程式語言」可以說是現今不可或缺的能力,而R與Python則可以稱為資料科學領域最熱門的兩個程式語言。

關於R與Python的差異,許多文章都已詳細探討,這篇文章主要想分享自己在資料分析過程中使用兩者的情境,並分享學習過程中好用的資源

.使用情境

R—適合做統計建模與視覺化

就個人經驗,我認為R語言適合用於統計計算建模與視覺化,因為R語言語法更接近統計學中使用的符號和表達,因此在做統計建模時,相較Python寫起來更直觀,呈現結果也比較接近常見的樣式。另外,R的另一個強項就是「資料視覺化」,因為程式語言的高度彈性,讓R在進行資料視覺化時可以客製化加上任何想要的東西,並有參數可以調整位置、樣式、顏色、大小等等。

在使用上,R語言另一個最吸引我的點,就是若使用R Studio,有執行的變數與Data都會呈現在旁邊,可以點開看資料的樣態,也可以看變數究竟是什麼,這一點在操作上很方便。

R在統計跟資料視覺化有豐富的packages,列舉幾個常用的如下。

  • 資料清洗與處理:dplyr、tidyr(資料清洗與整理)、readr(數據讀取)、data.table(data frame以外的選擇,有許多好用的資料處理方法)
  • 資料視覺化:ggplot2、lattice
  • 統計建模與計量經濟學:stats(統計模型和函數)、lm、glm、plm(一些線性模型)
  • 時間序列分析:forecast、tseries
  • 機器學習:caret(分類和迴歸模型)、randomForest(隨機森林演算法)、rpart(決策樹演算法)、e1071(支持向量機演算法)、xgboost(梯度提升樹演算法)
  • 自然語言處理與文本數據:tm(文本挖掘與自然語言處理)、quanteda(文本分析)
  • 網絡爬蟲:rvest(網頁抓取與解析)

更多詳細介紹可參考「R語言常用好用套件紀錄」

Python—適合做深度學習、流程自動化

Python有大量用於資料科學的模組,如NumPy、Pandas、Matplotlib、Scikit-learn等。此外,Python還有非常多其他模組的支持,使其在各個領域都有強大的功能,例如機器學習、深度學習、NLP、網站開發、網路爬蟲、使用者介面等。

Python強大的地方在於廣大的資源,並且有相較R語言還要優秀的效能,例如,可以寫多端緒(multi-thread)、用GPU執行等。因為其方便性,愈來愈多人投入開發,因此在深度學習、AI領域中,Python是開發者的最佳選項之一,若是要做AI,Python是不二選擇。

Python 的資料分析模組:

  • 資料處理: NumPy、SciPy、Pandas
  • 資料視覺化: Matplotlib、Seaborn、 Plotly
  • 統計建模:Statsmodels、Prophet
  • 機器學習:SciKit-Learn、xgboost、lightgbm
  • 深度學習: TensorFlow、Pytorch、Keras
  • 自然語言與文本資料處理: NLTK、Gensim
  • 網站開發:Django、Flask
  • 網路爬蟲: Request、beatifulsoup、Scrapy
  • GUI:Tkinter、PyQt

.資源分享

R

  1. R 資料科學與統計:很棒的網頁,從R的安裝開始一步步教學,包括R語言的資料型態、函式、資料處理等。
  2. R for Data Science:這個網站是英文版的免費資源,中文版的可以參考中文版書籍(R資料科學),如果有一些R的基礎後,再看這本書會收穫滿滿。本書聚焦在tidyverse這個R套件集合,清楚了介紹了R語言進行資料分析的所有必要步驟,從資料輸入(import)、資料清洗(tidy)、資料轉換(transform)、視覺化(visualise)、建模(model)到利用R Markdown來撰寫詮釋(communicate)。推薦本書的原因,是他除了有詳細解釋tidyverse如何在實務上使用,也有提供練習題可以直接操作,一番學習下來,對於資料科學的流程便瞭若指掌!

資料來源:R for Data Science

資料來源:R for Data Science

Python

  1. ccClub:ccClub是一個每年都會招生的Python社群,只要繳保證金,若全程參加就可以退,是很適合Python初學者參加的課程。而它們也有網站和Medium,上面的連結是Medium,入門者可以從第0講開始看,是文字版的,一邊看一邊練習,省時又有效,可以快速掌握Python的基本概念和語言邏輯。
  2. Coursera商管程式設計:商管程式設計是台大的課程,這堂課很適合商管的人學Python,還有許多練習題可以做,照著課程走,除了學習基礎外,也可以學到如何用基礎程式設計實現一些有趣的功能,是學起來很有成就感的一門課!
  3. 蔡炎龍--成為python數據分析達人的第一門課:這個課程從Python基礎概念、資料處理(Pandas)到機器學習建模。我認為適合已經有基礎訓練的人,因為老師講的東西很多,課程數量較多,但是都蠻實用的,如果有掌握基礎功後再上課會比較上手。

.總結

除了上面的分享外,現今在生成式AI崛起下,學習程式、撰寫程式又多了一條捷徑,下一篇文章,我會介紹如何用AI幫助學習程式語言。其實,不管是R、Python或是其他程式語言,在網路上幾乎都有豐富的學習資源,學好的訣竅無他,便是不斷汲取新知與實作練習

Fann
Fann
生長在農村,大學後在都市打滾。大學就讀會計系雙主修社會學系,研究所讀農業經濟,喜歡分析所以接觸了程式,也對科技應用於各種問題的解決深感興趣,試圖用科技為生活找尋解方。在這裡記錄跨領域學習的歷程與收穫,分享學習資源,或偶爾書寫工作或生活的點滴。
留言0
查看全部
發表第一個留言支持創作者!