R 語言模組
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
本文列出支援執行 R 程式碼的機器學習 Studio (傳統) 中的模組。 這些模組可讓您更輕鬆地在生產環境中發行 R 模型,並使用 R 語言社區的體驗來解決真實世界的問題。
本文也說明在 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 和它的應用程式的說明,請參閱這些資源:
r Project:適用于 r 語言的官方網站。
Rseek: R 資源的搜尋引擎。
R-博主: r 社區中的 blog 匯總。
CRAN: R 封裝的最大存放庫。
快速-r:良好的 r 教學課程。
Bioconductor:生物資訊學中 R 套件的大型存放庫。