R 語言初體驗- 使用於 Azure Machine Learning Studio 中


“R 語言,一種自由軟體程式語言,主要用於統計分析、繪圖及資料探勘。”

維基百科: R 語言

本文將帶您檢視 410 個預裝的 R packages、展示如何直接使用既有的 R script,或直接在 Azure ML 中撰寫、透過 R 作資料清理進而建立預測模型、以及如何極大化 R 語言在「機器學習」上的應用。

使用 Azure ML Studio

微軟所開放出來的「機器學習」工具 Azure ML Studio,可以在任何一種瀏覽器上執行,無需信用卡,登入 Microsoft Account 之後即可免費開始使用: https://studio.azureml.net/

Azure ML Studio 包含 “Execute R Script” 及 “Create R Model” 模組可供使用:

image

檢視預裝的 R packages

目前支援 410 個 CRAM R packages, 包括 plyr and dplyr, car, datasets, HMisc, MASS, Intel Math Kernal Library,及 rpart, nnet, survival, boot 等資料探勘工具。

要檢查哪些預建的 R packages 可供使用,請先開啟一個 Experiment,拉入 “Execute R Script” 模組,並貼入以下命令:

 
data.set<-data.frame(installed.packages()) 
 
maml.mapOutputPort("data.set");

image

按下執行 (Run) 後,點選左下角圈圈並選擇 Visualize,即可看到所有預先安裝的 410 個 R packages:

image

使用 ggplot2 繪圖

開啟一個全新的 Experiment,並拉進 “Adult Census Income Binary Classification dataset”、以及 “Execute R Script” 模組如以下:

image

[小技巧] 善用左上角的 Search 功能,可直接找到這些模組!

其中 “Adult Census Income Binary Classification dataset” 這份普查資料即是我們的資料來源,這份資料收集了 3 萬多人的 age, race, sex 、並標示年薪是否大於 5 萬美金 (50K):

image

點選 “Execute R Script”,鍵入以下命令以匯入 ggplot2 及 data.table:

library(ggplot2)
library(data.table)

接下來我們要用 ggplot2 畫兩張圖:一張是 sex 相對於 income 的長條圖;另一張是 age 相對於 income 的 density graph:

foo = qplot(x=sex, data=dataset1, geom='histogram', fill=income, position='dodge'); print(foo) 
foo = qplot(x=age, data=dataset1, geom='density', alpha=0.5, fill=income); print(foo) 

最後的 R 程式如下:

image

執行 (Run) 之後,點選其右下角小圈選擇 Visuallize,即可見到我們畫的二張圖 (看來是男生賺的多、老的賺的多):

image

image

利用 R 作資料整理

原始資料的各個欄位中,含有許多的 ‘-‘  (dash) 符號,我們可以加入以下命令,將所有的 ‘-‘ 換成 ‘.’ (dot):

names(dataset1) <- 
sub(pattern='-', replacement='.', x=names(dataset1))

再將處理後的資料指定回 “dataset1:

maml.mapOutputPort("dataset1");

最後的 R 程式:

image

執行 (Run) 之後,點選其左下角圈圈選擇 Visualize,即可注意到原本的 ‘-‘ 皆已被替換成 ‘.’:

image

建立預測模型

假設我們想要以 age, sex, race 等資料,來預測其年收入 (income) 是否大於 5 萬美金 (50K)。

預測模型的建立有類似的模式,我們使用 “Two-Class Boosted Decision Tree” 演算法, 再拉入 Split, Train Model, Score Model, Evaluate Model 並連結如下:

image

並記得在 “Train Model” 中選擇我們想預測的欄位: “Income”

image

執行 (Run) 之後,查看 Score Model,即可看到這個模型預測 income 大於 5 萬美金 (50K) 的機率:

image

當然我們也可查看 Evaluate Model,觀察如 ROC 等模型評估數值:

image

發佈為 Web Service

若我們滿意這個預測模型,按下  “CREATE SCORING EXPERIMENT” ,就可自動產出 Web Service ,還會出現一段動畫,將你的模型變成以下:

image

同時提供 C#, Python 及 R 語言的 sample code:

image

極大化 R 程式在 Azure ML 的價值

image

“Excute R Script” 模組不但可接受二組不同的 dataset 作為資料來源,同時也提供 ZIP 的方式作輸入,例如,若有套件並未包含在預裝的 410 CRM packages 當中,即可透過 ZIP 的方式引入。

輸出的方式則如本文範例所示,不但能將結果透過 R Devices (如 ggplot2) 顯示,也能輸出為 dataset 作後續使用。

在 Azure ML 也提供 “Create R Model”,讓您直接應用 R 語言於預測模型建制,包含 Training Model 及 Scoring Model,再進而發佈為 Web Service 供其他人員使用:

image

延伸閱讀:

1. Using R in Azure Machine Learning Studio

2. 本部落格 Machine Learning 系列文章:http://blogs.msdn.com/b/mengtsai/archive/tags/machine+learning/

3. Microsoft Azure 機器學習官方學習網站 (含教學影片及文件): http://azure.microsoft.com/zh-tw/documentation/services/machine-learning/

Comments (0)

Skip to main content