2017年4月4日 星期二

R User Group 的 Machine Learning for Beginners (三月)

三月另一個開始的活動,是R User Group 辦的Machine Learning for Beginners。共四堂,暫時上了一半,雖然不幸收工前總有意外,兩次都錯過了開頭的部份,還好有source code 看著理解,和對基本的統計總算仍有概念,

第一堂主是R 的數據處理。主要用"tidyverse"套件包,"tidyverse"是打包了一組有著共同資料形態和'API'設計,方便一齊使用的套件。透過"tidyverse"處理這些套件的 install (core + select) 和 load (core)的工序。當晚用到的主要指令包括來自 "magritti" 的 piping operator %>%,可以將一個output當做另一個指令的1st input,這個比起要括號配對括號的寫法的確方便很多。另外,還有來自 "dplyr" 的6個指令,包括'select', 'filter', 'arrange', 'mutate', 'group_by', 'summarise' 。在dataframe的數據處理上算十分方便。還有n, top_n, tally等一起使用。之後我把這用在處理問卷資料上已比去年方便得多了。
  • select: 根據給定的變數名稱選擇column
  • filter: 根據設定的條件做篩選row
  • arrange: 根據選定的變數內容做排列
  • mutate: 根據給定的值賦予新變數,或是變更舊變數
  • group_by: 根據給定變數做group,以銜接summarise
  • summarise: 資料整併

這些專門處理dataframe的數據,tidyverse有一個叫lubridate的套件處理日期時間,但另一方面自己所仍要找尋xts, zoo 等財務上時間序列的處理方法。見到有另一個"tidyquant"的套件,大概之後可以一試。

"tidyverse"的介紹和教學可以到:
  1. https://blog.rstudio.org/2016/09/15/tidyverse-1-0-0/
  2. http://r4ds.had.co.nz/model-basics.html

第2堂是統計的regression modelling。

首先是用 lm() 做的linear regression 和 categorical regression, 當然也有相關的數式、交互作用、轉換,和繪圖等。然後有用crossv_kfold將數據斬件,示範overfitting。和glmnet去對overfitting 的自變數做penalty。背後的理論大都是統計學會包括的事,不過有了R就更方便去實際運用了。我猜現在大學裡也不應該再會是教SAS/SPSS 作主流吧?

另一個更大得著,大概是看到如何用Rmd這種 R markdown檔做報告,還加裝了plotly (因而也要更新ggplot2)。開始時在按RStudio的Knit鍵製作pdf時,總是最後會出現Error,說找不到某些檔案。解決方法是按以下這篇的去安裝MacTex (我選的是小巧版的BasicTex),之後在terminal加裝缺少了的 framed

R Markdown Notes - Installing MacText 2013+ on OS X
http://dmcglinn.github.io/quant_methods/lessons/rmarkdown_notes.html

使用方面有分一般的文字、R chunk、和一些格式上的指令:
R Markdown 速查表
https://www.rstudio.com/wp-content/uploads/2015/03/rmarkdown-chinese.pdf

重要是可以透過R Markdown將R的結果,結合報告的一般段落文字,輸出成不同檔案,例如 "output: beamer_presentation: default" 輸出成當晚演示用的PDF。其他輸出可以去參考:

  • HTML: "html_document"
  • PDF: "pdf_document_format"
  • MS Word: "word_document"
  • Beamer:  "beamer_presentation"
  • HTML5 Slide: "ioslides_presentation"

R Markdown
http://rmarkdown.rstudio.com/


沒有留言:

張貼留言