R 語言模組

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

本文列出支援執行 R 程式碼的機器學習 Studio (傳統) 中的模組。 這些模組可讓您更輕鬆地在生產環境中發行 R 模型,並使用 R 語言社區的體驗來解決真實世界的問題。

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

本文也說明在 Machine Language Studio 中使用 R (傳統) 的一般需求,並列出已知的問題和秘訣。

模組清單

R 語言模組類別包含下列模組:

使用 R 的需求

在機器學習 Studio 中使用 R 腳本 (傳統) 之前,請注意下列需求:

  • 如果您匯入使用 CSV 或其他格式的資料,則無法從 R 程式碼直接以 CSV 格式讀取資料。 相反地,在使用資料集做為 R 模組的輸入之前,請先使用 [ 轉換成資料集 ] 來準備資料。

  • 當您附加任何機器學習資料集做為 R 模組的輸入時,資料集會自動載入至 r 工作區,作為具有變數名稱資料集的資料框架。

    不過,您可以在 R 腳本中定義其他資料框架,或變更預設資料集變數的名稱。

  • R 模組會在私用工作區的受保護和隔離的環境中執行。 在您的工作空間內,您可以建立資料框架和變數供多個模組使用。

    不過,您無法從不同的工作區載入 R 資料框架,或讀取在不同工作區中建立的變數,即使該工作區已在 Azure 會話中開啟也是一樣。 此外,您無法使用具有 JAVA 相依性的模組,或需要直接網路存取的模組。

R 評分工作的優化

機器學習 Studio (傳統) 和工作區環境中的 R 執行包含兩個主要元件。 一個元件會協調腳本的執行,另一個則提供高速的資料存取和評分。 評分元件經過優化,可提升擴充性和效能。

因此,機器學習 Studio 中的 R 工作區 (傳統) 也支援兩種評分工作,每個工作都針對不同需求進行優化。 當您建立實驗時,您通常會使用每個檔案的評分。 當您以 web 服務的一部分進行評分時,通常會使用要求回應服務 (RR) 進行非常快速的評分。

R 套件和版本支援

機器學習 Studio (傳統) 包含500以上最受歡迎的 R 套件。 您可以選取的 R 套件取決於您為實驗選取的 R 版本:

  • CRAN R
  • Microsoft R Open (MRO 3.2.2 或 MRO 3.4.4)

每當您建立實驗時,您都必須針對實驗中的所有模組,選擇要在其上執行的單一 R 版本。

每個版本的套件清單

如需機器學習中目前支援的套件清單,請參閱機器學習支援的 R 套件

您也可以將下列程式碼新增至實驗中的 [ 執行 R 腳本 ] 模組,然後執行它以取得包含套件名稱和版本的資料集。 請務必在模組屬性中設定 R 版本,以針對您想要的環境產生正確的清單。

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

重要

Machine Language Studio 中支援的套件 (傳統) 經常變更。 如果您對 R 套件是否受支援有任何疑問,請使用提供的 R 程式碼範例來取得目前環境中的完整套件清單。

使用 R 語言擴充實驗

有許多方法,您可以使用自訂 R 指令碼,或藉由新增 R 封裝,來擴充您的經驗。 以下是一些可協助您入門的概念:

  • 使用 R 程式碼來執行自訂數學運算。 例如,有可以解微分方程式、產生隨機數字或執行 Monte Carlo 模擬的 R 封裝。

  • 對資料套用自訂轉換。 例如,您可以使用 R 封裝在時間序列資料上執行插補,或執行語言分析。

  • 使用不同的資料來源。 R 腳本模組支援一組額外的輸入,其中可包含壓縮格式的資料檔案。 您可以使用壓縮的資料檔案,以及針對這類資料來源所設計的 R 套件,將階層式資料壓平合併成一般資料表格。 您也可以使用這些從 Excel 和其他檔案格式讀取資料。

  • 使用自訂計量進行評估。 例如,您可以匯入 R 封裝,然後套用其計量,而不是使用 評估中提供的函式。

下列範例示範如何在實驗中安裝新套件和使用自訂 R 程式碼的整體程式。

使用 R 分割資料行

有時候,資料需要大量的操作才能擷取特徵。 假設您有一個文字檔,其中包含識別碼,後面接著 values 和 notes,全都以空格分隔。 或者,假設您的文字檔包含電腦 Language Studio (傳統) 不支援的字元。

有數個 R 封裝可針對這類工作提供特殊函式。 Splitstackshape 程式庫封裝包含數個實用的函式來分割多個資料行,即使每個資料行都有不同的分隔符號也是如此。

下列範例說明如何安裝所需的封裝,以及分割資料行。 您會將此程式碼加入至「 執行 R 腳本 」模組。

#install dependent packages  
install.packages("src/concat.split.multiple/data.table_1.9.2.zip", lib=".", repos = NULL, verbose = TRUE)  
(success.data.table <- library("data.table", lib.loc = ".", logical.return = TRUE, verbose = TRUE))  
  
install.packages("src/concat.split.multiple/plyr_1.8.1.zip", lib=".", repos = NULL, verbose = TRUE)  
(success.plyr <- library("plyr", lib.loc = ".", logical.return = TRUE, verbose = TRUE))  
  
install.packages("src/concat.split.multiple/Rcpp_0.11.2.zip", lib=".", repos = NULL, verbose = TRUE)  
(success.Rcpp <- library("Rcpp", lib.loc = ".", logical.return = TRUE, verbose = TRUE))  
  
install.packages("src/concat.split.multiple/reshape2_1.4.zip", lib=".", repos = NULL, verbose = TRUE)  
(success.reshape2 <- library("reshape2", lib.loc = ".", logical.return = TRUE, verbose = TRUE))  
  
#install actual packages  
install.packages("src/concat.split.multiple/splitstackshape_1.2.0.zip", lib=".", repos = NULL, verbose = TRUE)  
(success.splitstackshape <- library("splitstackshape", lib.loc = ".", logical.return = TRUE, verbose = TRUE))  
  
#Load installed library  
library(splitstackshape)  
  
#Use library method to split & concat  
data <- concat.split.multiple(maml.mapInputPort(1), c("TermsAcceptedUserClientIPAddress", "EmailAddress"), c(".", "@"))  
  
#Print column names to console  
colnames(data)  
  
#Redirect data to output port  
maml.mapOutputPort("data")  

其他資源

從本教學課程開始,說明如何建立自訂 R 模組:

本文詳細討論兩個計分引擎之間的差異,並說明當您將實驗部署為 web 服務時,您可以選擇評分方法:

Azure AI 資源庫中的實驗示範如何建立可進行定型、評分和評估的自訂 R 模組:

本文(發佈于 R-博主)會示範如何在機器學習中建立您自己的評估方法:

更多關於 R 的說明

此網站提供可讓您依關鍵字搜尋的套件分類清單:

有關其他 R 程式碼範例和 R 和它的應用程式的說明,請參閱這些資源:

另請參閱