R 教學

R 專業證照 (5)

教學目標

通過「Exam 70-773: Analyzing Big Data with Microsoft R」考試科目的心得分享,此篇為學習筆記。

重點概念

首先最近利用平日的通勤時間和假日的休息時間準備 Microsoft R 的今天參加「Exam 70-773: Analyzing Big Data with Microsoft R」的考試科目順利以 800 多分通過,同時因為之前已經取得「Microsoft Certified Solutions Associate: SQL 2016 Database Development」證照,所以就能夠取得「Microsoft Certified Solutions Expert: Data Management and Analytics」證照,終於提早完成今年所設立的目標之一。

Microsoft Certified Solutions Expert: Data Management and Analytics

接著若我們要考取「Exam 70-773: Analyzing Big Data with Microsoft R」科目,則建議先熟讀以下官方文件,考題很多是考基本觀念,尤其是什麼情境下要使用哪一個 RevoScaleR 的函數最適當,至於要熟讀哪些官方文件,主要有十篇文件非常重要,分別為:

  1. Explore R-to-RevoScaleR
  2. Import & transform data
  3. Visualize & analyze data
  4. Compute context for script execution in Machine Learning Server
  5. Distributed and parallel computing in Machine Learning Server
  6. Compute context options for R Server on HDInsight
  7. Creating multiple models using rxExecBy
  8. How-to guides for data analysis and operationalization
  9. rxPredict: Predicted Values and Residuals for rxLinMod, rxLogit, and rxGlm
  10. Estimating Decision Tree Models

再來若我們看文件覺得無聊,則建議先看「Cert Exam Prep: Exam 70-773: Analyzing Big Data with Microsoft R」線上影片,這可利用通勤的時間觀看,雖然內容非常基本,但是能夠了解考題方向,以利回頭閱讀官方文件。

最後若我們想要進行實作練習則建議下載 Microsoft R Client 工具按照官方網站進行實作練習,或者加入 edX 的「Analyzing Big Data with Microsoft R」線上課程,並且利用通勤的時間觀看影片,其課程設計是每播完影片就會有一頁重點整理的文件,以利我們觀看完影片之後加深印象。此外建議完成所有練習題和實驗,因為我是完成之後才去考,多少應該有些幫助才對,只是線上課程的考題只有四個選項,但是證照考試的選項不只四個,需要特別注意。

總結「Exam 70-773: Analyzing Big Data with Microsoft R」的考試科目比 SQL Server 2016 簡單許多,但還是要熟讀官方文件和觀看官方影片,以及動手寫寫 RevoScaleR 函數加深記憶,以及深入了解參數的定義之後,再去考會比較容易通過。

相關資源

R 專業證照 (4)

教學目標

初步了解 RevoScaleR 函數進行資料轉換的基本概念,此篇為學習筆記。

重點概念

首先載入初始資料集通常是資料處理工作的第一步,此時我們會透過 RevoScaleR 函數進行資料轉換,其中主要有兩種資料轉換方法,分別為:

  1. 外部函數。
  2. 內部轉換。

接著 RevoScaleR 函數引用外部函數,主要會透過參數進行引用,目前引用外部函數的參數請參考下表。

參數 使用
transforms 主要是資料轉換的公式。
rowSelection 主要是篩選目前資料框中資料列。
function 主要是使用基本的 R 函數。
transformFunc 主要是資料轉換的函數。
transformVars 主要是傳送變數列表傳送給外部轉換函數。
transformObjects 主要是指定資料轉換的物件列表。
transformPackages 主要是指定資料轉換的套件列表。
transformEnvir 主要是用於資料轉換使用者定義環境。

再來 RevoScaleR 函數並非全部皆支援內部轉換,目前支援內部轉換的函數請參考下表。

函數 使用案例
rxDataStep 透過資料轉換建立資料子集或變數。
rxImport 透過資料轉換建立資料框或 XDF 檔案。
rxSummary 透過資料轉換進行資料的統計匯總資訊。
rxLinMod 透過資料轉換建立線性回歸資料集中的使用變數。
rxLogit 透過資料轉換建立邏輯回歸資料集中的使用變數。
rxCube 透過資料轉換應用於變數之間關係的比較資訊。

最後外部函數能夠的提高複雜性和重複性的應用,但是內部轉換卻更容易進行處理。所謂外部函數主要是在外部函數中提供資料操作的指令,然後由 RevoScaleR 函數進行引用,而內部轉換主要是透過函數的參數進行資料的轉換。

總結我們主要可以透過 RevoScaleR 函數根據資料管理和分析的使用者需求選擇適當外部函數或內部轉換進行資料的轉換。

相關資源

R 專業證照 (3)

教學目標

初步了解 XDF 檔案的基本概念,此篇為學習筆記。

重點概念

首先所謂 XDF 檔案主要是機器學習伺服器中的持久性資料儲存的原生檔案格式,其全名為 External Data Frame,也就是外部資料框,並且主要有三個優點,分別為:

  1. 壓縮:主要應用於檔案寫入磁碟時。
  2. 欄儲存:主要應用於高效能率讀寫變數資料操作。
  3. 模組化:主要應用於資料存取和管理,以利我們能夠處理巨量資料。

此外 XDF 檔案並非僅用於統計分析和資料探勘,更能夠當資料較大或較複雜時,XDF 檔案能夠提供高穩定性。

接著我們主要透過 RevoScaleR 中的 rxImport 函數將外部資料傳送至機器學習伺服器,預設情況下,rxImport 會將資料載入至記憶體中的資料框中,但是若有指定 outFile 參數則將會建立一個 XDF 檔案。此時我們先在 Windows 平台安裝 Microsoft R Client 應用程式,並且執行以下指令就能夠將將 CSV 檔案格式的資料建立為 XDF 檔案格式,其中 mySourceData 變數主要是 inData 參數值指定來源檔案,myNewXdf 變數主要是 outFile 參數值指定目的檔案,並且透過 rxImport 函數指定 inData 參數和 outFile 參數建立 XDF 檔案。

1
2
3
mySourceData <- file.path("C:/Data/titanic.csv")
myNewXdf <- file.path("C:/Data/titanic.xdf")
rxImport(inData = mySourceData , outFile = myNewXdf)
1
Rows Read: 887, Total Rows Processed: 887, Total Chunk Time: 0.010 seconds

再來我們主要透過 RevoScaleR 中的 rxGetInfo 函數取的 XDF 檔案資訊,其中傳回的資訊主要包預先計算的中繼資料、觀察值、變數、壓縮、…等資訊。

1
rxGetInfo(myNewXdf, getVarInfo = TRUE)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
File name: C:\Data\titanic.xdf 
Number of observations: 887
Number of variables: 8
Number of blocks: 1
Compression type: zlib
Variable information:
Var 1: Survived, Type: integer, Low/High: (0, 1)
Var 2: Pclass, Type: integer, Low/High: (1, 3)
Var 3: Name, Type: character
Var 4: Sex, Type: character
Var 5: Age, Type: numeric, Storage: float32, Low/High: (0.4200, 80.0000)
Var 6: Siblings/Spouses Aboard, Type: integer, Low/High: (0, 8)
Var 7: Parents/Children Aboard, Type: integer, Low/High: (0, 6)
Var 8: Fare, Type: numeric, Storage: float32, Low/High: (0.0000, 512.3292)

最後我們更能透過 RevoScaleR 中的 rxDataStep 函數將 XDF 檔案中的資料載入至記憶體中的資料框,以利進行資料分析與管理,其中我們主要會使用 rowSelection 參數過濾資料列和 varsToKeep 參數過濾資料欄。

1
2
3
myTitanicData <- rxDataStep(inData=myNewXdf, 
rowSelection = Age > 18,
varsToKeep = c("Survived", "Name", "Sex","Age"))

總結若我們要透過 RevoScaleR 進行巨量的資料管理和分析,則會透過 rxImport 函數建立 XDF 檔案格式的資料進行管理,或者當需要應用時透過 rxDataStep 函數將 XDF 檔案中的資料載入至記憶體中的資料框進行分析。

相關資源

R 專業證照 (2)

教學目標

初步了解 RevoScaleR 的基本概念,此篇為學習筆記。

重點概念

首先 RevoScaleR 主要是機器學習伺服器中專有功能的集合,其主要是用於大規模資料科學實務,對於資料科學家來說,RevoScaleR 能夠為資料提供相關的功能包括匯入、轉換、操作、匯總、視覺化和分析。其中所謂規模主要是代表核心引擎能夠在平行和分散式的檔案系統上針對大型資料集執行任務的能力,同能夠在資料無法載入至記憶體時進行處理。

接著 RevoScaleR 主要為開放源始碼 R 程式語言提供許多增強功能,並且與開放源始碼 R 程式語言兼容,因此解決方案通常是的基本 R 程式語言和 RevoScaleR 函數的組合搭配,其中 RevoScaleR 函數主要會使用 rx 或 Rx 為命名開頭。

再來 RevoScaleR 主要能夠讓資料科學家和開發人員在自行定義腳本中包括 RevoScaleR 函數,或在 R 客戶端上本地執行或在機器學習伺服器上遠端執行解決方案。其中 RevoScaleR 函數分析資料需要三個不同的資訊,分別為:

  1. 需要運算的地方 (運算環境)
  2. 需要使用的資料 (資料來源)
  3. 需要執行的分析 (分析功能)

最後 RevoScaleR 主要能夠的進行資料管理和分析,其主要是提供可以擴展的資料管理和分析的功能,這些函數能夠與記憶體中的資料集一起使用,並且以相同的方式應用於儲硬碟上的巨量資料集,其中包括以下功能,分別為:

  1. 存取外部資料集,像是 SAS、ODBC、CSV、…等。
  2. 有效率的儲存和檢索資料檔案中的資料。
  3. 清理、探索和操作資料。
  4. 快速進行基本的統計分析。

總結 RevoScaleR 能夠讓資料科學家和開發人員以 R 程式語言為基礎進行開發時,能夠直接使用 RevoScaleR 函數針對巨量資料在分散式的平台上進行平行運作。

相關資源

R 專業證照 (1)

教學目標

初步了解使用 Microsoft R 分析巨量資料證照,此篇為學習筆記。

重點概念

首先最近才剛取得 MCSA SQL 2016 Devolpment 專業證照,正在準備下一個考試科目時,發現只要再考取「使用 Microsoft R 分析巨量資料」專業證照的科目,就能夠同時取得 MCSE Data Management and Analytics 專業證照 (今年設定完成的目標之一),且最近有些折扣第一次考試折扣只要 93.75 美金,居然比edX 線上課程「Analyzing Big Data with Microsoft R」取得認證 99 美金還便宜,好像能夠投資一下自己取得 R 專業證照,更進一步複習 R 語言,雖然很久沒有撰寫 R 語言,都在撰寫 Python 語言。

接著使用 Microsoft R 分析巨量資料考試的主要有四個主題,分別為:

  1. 閱讀和探索巨量資料。
  2. 處理巨量資料。
  3. 使用 ScaleR 構建預測模型。
  4. 在不同的環境中使用 R Server。

再來不同的主題針對不同的任務,像是匯總資料、可視化資料、處理資料、管理資料、線性模型、… 等皆有許多函數,請參考下表:

函數名稱 功能說明
rxCrossTabs 計算交叉資料表統計資訊。
rxCube 計算交叉資料表統計資訊。
rxSummary 檢視及彙總資料資訊。
rxQuantile 計算近似分位數。
rxHistogram 繪製直方圖。
rxLinePlot 繪製折線圖。
rxDataStep 處理的資料區塊。
rxSort 針對資料進行排序。
rxMerge 針對重複資料進行合併並刪除。
rxLinMod 產生線性模型。
rxLogit 產生線性邏輯回歸模型。
rxGlm 產生廣義線性回歸模型。
rxTweedie 產生廣義線性回歸模型。
rxDTree 建立分類和回歸決策樹模型。
rxDForest 建立分類和回歸決策森林模型。
rxBTrees 建立隨機 Gradient Boosted 決策樹模型。
rxPredict 計算預測值。
rxExec 執行平行計算。
rxHadoopMR 建立使用 Hadoop 叢集的計算。
rxSpark 建立使用 Spark 叢集的計算。
rxLocalseq 循序建立本機計算內容的物件。
rxLocalParrallel 平行建立本機計算內容的物件。

最後每個函數要如何使用呢? 官方有提供準備考試的影片,感覺還不錯,可以花一個小時觀看,理應會加深印象有所幫助。

相關資源