Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Machine Learning tasarımcı işlem hattınızda R kodu çalıştırmak için R Betiği Yürüt bileşeninin nasıl kullanılacağı açıklanmaktadır.
R ile, mevcut bileşenler tarafından desteklenmeyen görevleri gerçekleştirebilirsiniz, örneğin:
- Özel veri dönüştürmeleri oluşturma
- Tahminleri değerlendirmek için kendi ölçümlerinizi kullanma
- Tasarımcıda tek başına bileşenler olarak uygulanmamış algoritmaları kullanarak model oluşturma
R sürümü desteği
Azure Machine Learning tasarımcısı R'nin CRAN (Kapsamlı R Arşiv Ağı) dağıtımını kullanır. Şu anda kullanılan sürüm CRAN 3.5.1'dir.
Desteklenen R paketleri
R ortamı 100'den fazla paketle önceden yüklenmiştir. Tam liste için Önceden Yüklenmiş R paketleri bölümüne bakın.
Yüklenen paketleri görmek için aşağıdaki kodu herhangi bir Execute R Script bileşenine de ekleyebilirsiniz.
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
dataframe1 <- data.frame(installed.packages())
return(list(dataset1=dataframe1, dataset2=dataframe2))
}
Not
İşlem hattınız önceden yüklenmiş listede olmayan paketlere ihtiyaç duyan birden çok Execute R Script bileşeni içeriyorsa, paketleri her bileşene yükleyin.
R paketlerini yükleme
Ek R paketleri yüklemek için yöntemini kullanın install.packages() . Her R Betiği Yürüt bileşeni için paketler yüklenir. Bunlar diğer R Betiği Yürüt bileşenleri arasında paylaşılmaz.
Not
Betik paketinden R paketinin yüklenmesi önerilmez. Paketleri doğrudan betik düzenleyicisine yüklemeniz önerilir.
gibi install.packages("zoo",repos = "https://cloud.r-project.org")paketleri yüklerken CRAN deposunu belirtin.
Uyarı
Excute R Betiği bileşeni, JAVA gerektiren paket ve qdap C++ gerektiren paket gibi drc yerel derleme gerektiren paketlerin yüklenmesini desteklemez. Bunun nedeni, bu bileşenin yönetici olmayan izinlerle önceden yüklenmiş bir ortamda yürütülmesidir.
Tasarımcı bileşenleri Ubuntu üzerinde çalıştığından, Windows için önceden oluşturulmuş paketleri yüklemeyin. Bir paketin windows üzerinde önceden oluşturulmuş olup olmadığını denetlemek için CRAN'a gidip paketinizde arama yapabilir, işletim sisteminize göre bir ikili dosya indirebilir ve AÇIKLAMA dosyasında Yerleşik: bölümünü işaretleyebilirsiniz. Aşağıda bir örnek verilmiştir:
Bu örnekte Hayvanat Bahçesi'nin nasıl yükleneceği gösterilmektedir:
# R version: 3.5.1
# The script MUST contain a function named azureml_main,
# which is the entry point for this component.
# Note that functions dependent on the X11 library,
# such as "View," are not supported because the X11 library
# is not preinstalled.
# The entry point function MUST have two input arguments.
# If the input port is not connected, the corresponding
# dataframe argument will be null.
# Param<dataframe1>: a R DataFrame
# Param<dataframe2>: a R DataFrame
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
if(!require(zoo)) install.packages("zoo",repos = "https://cloud.r-project.org")
library(zoo)
# Return datasets as a Named List
return(list(dataset1=dataframe1, dataset2=dataframe2))
}
Not
Bir paketi yüklemeden önce, yükleme işlemini yinelemek için paketin zaten var olup olmadığını denetleyin. Yüklemeleri yinelemek web hizmeti isteklerinin zaman aşımına neden olabilir.
Kayıtlı veri kümesine erişim
Çalışma alanınızdaki kayıtlı veri kümelerine erişmek için aşağıdaki örnek koda başvurabilirsiniz:
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
run = get_current_run()
ws = run$experiment$workspace
dataset = azureml$core$dataset$Dataset$get_by_name(ws, "YOUR DATASET NAME")
dataframe2 <- dataset$to_pandas_dataframe()
# Return datasets as a Named List
return(list(dataset1=dataframe1, dataset2=dataframe2))
}
R Betiğini Yürüt'i yapılandırma
R Betiği Yürüt bileşeni, başlangıç noktası olarak örnek kod içerir.
Tasarımcıda depolanan veri kümeleri, bu bileşenle birlikte yüklendiğinde otomatik olarak bir R veri çerçevesine dönüştürülür.
İşlem hattınıza R Betiği Yürüt bileşenini ekleyin.
Betiğin ihtiyaç duyduğu tüm girişleri bağlayın. Girişler isteğe bağlıdır ve veri ve ek R kodu içerebilir.
Veri Kümesi1: İlk girişe olarak
dataframe1başvurun. Giriş veri kümesi CSV, TSV veya ARFF dosyası olarak biçimlendirilmelidir. İsterseniz bir Azure Machine Learning veri kümesini bağlayabilirsiniz.Dataset2: İkinci girişe olarak
dataframe2başvurun. Bu veri kümesinin csv, TSV veya ARFF dosyası ya da Azure Machine Learning veri kümesi olarak da biçimlendirilmesi gerekir.Betik Paketi: Üçüncü giriş .zip dosyaları kabul eder. Sıkıştırılmış bir dosya birden çok dosya ve birden çok dosya türü içerebilir.
R betiği metin kutusuna geçerli R betiğini yazın veya yapıştırın.
Not
Betiğinizi yazarken dikkatli olun. Bildirilmemiş değişkenler veya raporlanmayan bileşenler veya işlevler kullanma gibi söz dizimi hataları olmadığından emin olun. Bu makalenin sonunda önceden yüklenmiş paket listesine daha fazla dikkat edin. Listelenmeyen paketleri kullanmak için betiğinize yükleyin.
install.packages("zoo",repos = "https://cloud.r-project.org")bunun bir örneğidir.Başlamanıza yardımcı olması için R Betiği metin kutusu, düzenleyebileceğiniz veya değiştirebileceğiniz örnek kodla önceden doldurulur.
# R version: 3.5.1 # The script MUST contain a function named azureml_main, # which is the entry point for this component. # Note that functions dependent on the X11 library, # such as "View," are not supported because the X11 library # is not preinstalled. # The entry point function MUST have two input arguments. # If the input port is not connected, the corresponding # dataframe argument will be null. # Param<dataframe1>: a R DataFrame # Param<dataframe2>: a R DataFrame azureml_main <- function(dataframe1, dataframe2){ print("R script run.") # If a .zip file is connected to the third input port, it's # unzipped under "./Script Bundle". This directory is added # to sys.path. # Return datasets as a Named List return(list(dataset1=dataframe1, dataset2=dataframe2)) }Bu bağımsız değişkenler işlevde kullanılmasa bile giriş noktası işlevinin ve giriş bağımsız değişkenlerine
Param<dataframe1>Param<dataframe2>sahip olması gerekir.Not
R Betiği Yürüt bileşenine geçirilen verilere ve
dataframe1olarakdataframe2başvurulur. Bu, Azure Machine Learning tasarımcısından farklıdır (tasarımcı başvurusu olarakdataset1,dataset2). Betiğinizde giriş verilerine doğru başvuruldığından emin olun.Not
Mevcut R kodunun tasarımcı işlem hattında çalıştırılması için küçük değişiklikler gerekebilir. Örneğin, CSV biçiminde sağladığınız giriş verileri, kodunuzda kullanabilmeniz için önce açıkça bir veri kümesine dönüştürülmelidir. R dilinde kullanılan veri ve sütun türleri de tasarımcıda kullanılan veri ve sütun türlerinden bazı açılardan farklılık gösterir.
Betiğiniz 16 KB'tan büyükse, CommandLine'ın 16597 karakter sınırını aşması gibi hatalardan kaçınmak için Betik Paketi bağlantı noktasını kullanın.
- Betiği ve diğer özel kaynakları bir zip dosyasına paketleyin.
- Zip dosyasını dosya veri kümesi olarak stüdyoya yükleyin.
- Veri kümesi bileşenini tasarımcı yazma sayfasının sol bileşen bölmesindeki Veri Kümeleri listesinden sürükleyin.
- Veri kümesi bileşenini R Betiği Yürüt bileşeninin Betik Paketi bağlantı noktasına bağlayın.
Betik paketinde betiği kullanmak için örnek kod aşağıda verilmiştir:
azureml_main <- function(dataframe1, dataframe2){ # Source the custom R script: my_script.R source("./Script Bundle/my_script.R") # Use the function that defined in my_script.R dataframe1 <- my_func(dataframe1) sample <- readLines("./Script Bundle/my_sample.txt") return (list(dataset1=dataframe1, dataset2=data.frame("Sample"=sample))) }Rastgele Tohum için, R ortamının içinde rastgele tohum değeri olarak kullanılacak bir değer girin. Bu parametre R kodunda çağırmaya
set.seed(value)eşdeğerdir.İşlem hattını gönderin.
Sonuçlar
R Betiği yürütme bileşenleri birden çok çıkış döndürebilir, ancak R veri çerçeveleri olarak sağlanmalıdır. Tasarımcı, diğer bileşenlerle uyumluluk için veri çerçevelerini otomatik olarak veri kümelerine dönüştürür.
R'den standart iletiler ve hatalar bileşenin günlüğüne döndürülür.
R betiğinde sonuçları yazdırmanız gerekiyorsa, yazdırılan sonuçları bileşenin sağ panelindeki Çıkışlar+günlükler sekmesinin altında 70_driver_log bulabilirsiniz.
Örnek betikler
Özel R betikleri kullanarak işlem hattınızı genişletmenin birçok yolu vardır. Bu bölümde ortak görevler için örnek kod sağlanır.
Giriş olarak R betiği ekleme
R Betiği Yürüt bileşeni, giriş olarak rastgele R betik dosyalarını destekler. Bunları kullanmak için, .zip dosyasının bir parçası olarak çalışma alanınıza yüklemeniz gerekir.
Çalışma alanınıza R kodu içeren bir .zip dosyası yüklemek için Veri kümeleri varlık sayfasına gidin. Veri kümesi oluştur'u ve ardından Yerel dosyadan ve Dosya veri kümesi türü seçeneğini belirleyin.
Sıkıştırılmış dosyanın sol bileşen ağacındaki Veri Kümeleri kategorisinin altındaki Veri Kümelerim'de göründüğünü doğrulayın.
Veri kümesini Betik Paketi giriş bağlantı noktasına bağlayın.
.zip dosyasındaki tüm dosyalar işlem hattı çalışma zamanında kullanılabilir.
Betik paketi dosyası bir dizin yapısı içeriyorsa, yapı korunur. Ancak ,/Script Bundle dizinini yola eklemek için kodunuzu değiştirmeniz gerekir.
Veri işleme
Aşağıdaki örnekte giriş verilerini ölçeklendirme ve normalleştirme gösterilmektedir:
# R version: 3.5.1
# The script MUST contain a function named azureml_main,
# which is the entry point for this component.
# Note that functions dependent on the X11 library,
# such as "View," are not supported because the X11 library
# is not preinstalled.
# The entry point function MUST have two input arguments.
# If the input port is not connected, the corresponding
# dataframe argument will be null.
# Param<dataframe1>: a R DataFrame
# Param<dataframe2>: a R DataFrame
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
# If a .zip file is connected to the third input port, it's
# unzipped under "./Script Bundle". This directory is added
# to sys.path.
series <- dataframe1$width
# Find the maximum and minimum values of the width column in dataframe1
max_v <- max(series)
min_v <- min(series)
# Calculate the scale and bias
scale <- max_v - min_v
bias <- min_v / dis
# Apply min-max normalizing
dataframe1$width <- dataframe1$width / scale - bias
dataframe2$width <- dataframe2$width / scale - bias
# Return datasets as a Named List
return(list(dataset1=dataframe1, dataset2=dataframe2))
}
.zip dosyasını giriş olarak okuma
Bu örnek, .zip dosyasındaki bir veri kümesiniN R Betiği Yürüt bileşenine giriş olarak nasıl kullanılacağını gösterir.
- Veri dosyasını CSV biçiminde oluşturun ve mydatafile.csv olarak adlandırın.
- bir .zip dosyası oluşturun ve CSV dosyasını arşive ekleyin.
- Sıkıştırılmış dosyayı Azure Machine Learning çalışma alanınıza yükleyin.
- Sonuçta elde edilen veri kümesini R Betiği Yürüt bileşeninizin ScriptBundle girişine bağlayın.
- Sıkıştırılmış dosyadan CSV verilerini okumak için aşağıdaki kodu kullanın.
azureml_main <- function(dataframe1, dataframe2){
print("R script run.")
mydataset<-read.csv("./Script Bundle/mydatafile.csv",encoding="UTF-8");
# Return datasets as a Named List
return(list(dataset1=mydataset, dataset2=dataframe2))
}
Satırları çoğaltma
Bu örnekte, örneği dengelemek için veri kümesindeki pozitif kayıtların nasıl çoğaltılması gösterilmektedir:
azureml_main <- function(dataframe1, dataframe2){
data.set <- dataframe1[dataframe1[,1]==-1,]
# positions of the positive samples
pos <- dataframe1[dataframe1[,1]==1,]
# replicate the positive samples to balance the sample
for (i in 1:20) data.set <- rbind(data.set,pos)
row.names(data.set) <- NULL
# Return datasets as a Named List
return(list(dataset1=data.set, dataset2=dataframe2))
}
R Betiği Yürütme bileşenleri arasında R nesneleri geçirme
İç serileştirme mekanizmasını kullanarak R Betiği Yürüt bileşeninin örnekleri arasında R nesneleri geçirebilirsiniz. Bu örnekte, adlı A R nesnesini iki Execute R Script bileşeni arasında taşımak istediğiniz varsayılır.
İşlem hattınıza ilk R Betiği Yürüt bileşenini ekleyin. Ardından R Betiği metin kutusuna aşağıdaki kodu girerek bileşenin çıkış veri tablosunda bir sütun olarak serileştirilmiş bir nesne
Aoluşturun:azureml_main <- function(dataframe1, dataframe2){ print("R script run.") # some codes generated A serialized <- as.integer(serialize(A,NULL)) data.set <- data.frame(serialized,stringsAsFactors=FALSE) return(list(dataset1=data.set, dataset2=dataframe2)) }Tamsayı türüne açık dönüştürme işlemi, serileştirme işlevi verileri tasarımcının desteklemediği R
Rawbiçiminde çıkış yaptığı için yapılır.R Betiği Yürüt bileşeninin ikinci bir örneğini ekleyin ve önceki bileşenin çıkış bağlantı noktasına bağlayın.
Giriş verileri tablosundan
Ametin kutusuna aşağıdaki kodu yazın.azureml_main <- function(dataframe1, dataframe2){ print("R script run.") A <- unserialize(as.raw(dataframe1$serialized)) # Return datasets as a Named List return(list(dataset1=dataframe1, dataset2=dataframe2)) }
Önceden yüklenmiş R paketleri
Şu anda aşağıdaki önceden yüklenmiş R paketleri kullanılabilir:
| Paket | Sürüm |
|---|---|
| şifre istemek | 1.1 |
| iddia et ki | 0.2.1 |
| geri aktarımlar | 1.1.4 |
| temel | 3.5.1 |
| base64enc | 0.1-3 |
| BH | 1.69.0-1 |
| bağlayıcı | 0.1.1 |
| bindrcpp | 0.2.2 |
| bit seviyesi işlemleri | 1.0-6 |
| başlatma | 1.3-22 |
| süpürge | 0.5.2 |
| çağıran | 3.2.0 |
| şapka işareti | 6.0-84 |
| caTools | 1.17.1.2 |
| hücresayacı | 1.1.0 |
| sınıf | 7.3-15 |
| CLI | 1.1.0 |
| küçük resim | 0.6.0 |
| küme | 2.0.7-1 |
| codetools | 0.2-16 |
| renk alanı | 1.4-1 |
| derleyicisi | 3.5.1 |
| Crayon | 1.3.4 |
| Curl | 3.3 |
| veri tablosu | 1.12.2 |
| veri kümeleri | 3.5.1 |
| DBİ | 1.0.0 |
| dbplyr | 1.4.1 |
| düzenlemek | 0.6.19 |
| dplyr | 0.7.6 |
| e1071 | 1.7-2 |
| değerlendir | 0,14 |
| hayran kitlesi | 0.4.0 |
| dışlanmışlar | 0.3.0 |
| foreach döngüsü | 1.4.4 |
| yabancı | 0.8-71 |
| Fs | 1.3.1 |
| gdata | 2.18.0 |
| Generics | 0.0.2 |
| ggplot2 | 3.2.0 |
| glmnet | 2.0-18 |
| tutkal | 1.3.1 |
| Gower | 0.2.1 |
| gplots | 3.0.1.1 |
| grafikler | 3.5.1 |
| grDevices | 3.5.1 |
| Kılavuz | 3.5.1 |
| gtablo | 0.3.0 |
| tabureler | 3.8.1 |
| liman | 2.1.0 |
| daha yüksek | 0.8 |
| Hms | 0.4.2 |
| HTML araçları | 0.3.6 |
| httr | 1.4.0 |
| İpred | 0.9-9 |
| Yineleyicilerde | 1.0.10 |
| jsonlite | 1.6 |
| KernSmooth | 2.23-15 |
| örgü örme | 1.23 |
| Etiketleme | 0,3 |
| kafes | 0.20-38 |
| lav | 1.6.5 |
| lazyeval | 0.2.2 |
| Lubridate (R programlama dilinde tarih ve zaman işlemleri için kullanılan bir paket) | 1.7.4 |
| magrittr | 1.5 |
| işaretleme | 1 |
| KÜTLE | 7.3-51.4 |
| Matris | 1.2-17 |
| yöntemler | 3.5.1 |
| mgcv | 1.8-28 |
| Mıme | 0,7 |
| ModelMetrics | 1.2.2 |
| modelleyici | 0.1.4 |
| munsell | 0.5.0 |
| nlme | 3.1-140 |
| nnet | 7.3-12 |
| numDeriv | 2016.8-1.1 |
| OpenSSL | 1.4 |
| paralel | 3.5.1 |
| sütun | 1.4.1 |
| pkgconfig | 2.0.2 |
| plogr | 0.2.0 |
| plyr | 1.8.4 |
| prettyunits | 1.0.2 |
| ProcessX | 3.3.1 |
| prodlim | 2018.04.18 |
| ilerleme | 1.2.2 |
| Ps | 1.3.0 |
| purrr | 0.3.2 |
| dörtlü | 1.5-7 |
| quantmod | 0.4-15 |
| R6 | 2.4.0 |
| randomForest algoritması | 4.6-14 |
| RColorBrewer | 1.1-2 |
| Rcpp | 1.0.1 |
| RcppRoll | 0.3.0 |
| Okuyucu | 1.3.1 |
| readxl (Excel dosyalarını okuma kütüphanesi) | 1.3.1 |
| yemek tarifleri | 0.1.5 |
| Rövanş | 1.0.1 |
| tekrar üretilebilir örnek | 0.3.0 |
| yeniden şekillendirme2 | 1.4.3 |
| yeniden düzenleme | 1.12 |
| rlang | 0.4.0 |
| rmarkdown | 1.13 |
| ROCR | 1.0-7 |
| rpart (R dilinde sınıflandırma veya regresyon modelleri için kullanılan bir paket) | 4.1-15 |
| rstudioapi | 0,1 |
| rvest | 0.3.4 |
| Terazi | 1.0.0 |
| seçici | 0.4-1 |
| uzamsal | 7.3-11 |
| Splines | 3.5.1 |
| KAREM | 2017.10-1 |
| Istatistik | 3.5.1 |
| istatistikler4 | 3.5.1 |
| string | 1.4.3 |
| dizeleyici | 1.3.1 |
| beka | 2.44-1.1 |
| Sistem | 3.2 |
| tcltk (grafik kullanıcı arabirimi için bir programlama dili kütüphanesi) | 3.5.1 |
| tibble | 2.1.3 |
| derleyici | 0.8.3 |
| tidyselect | 0.2.5 |
| tidyverse | 1.2.1 |
| zamanTarih | 3043.102 |
| tinytex | 0,13 |
| araçlar | 3.5.1 |
| tseries | 0.10-47 |
| TTR | 0.23-4 |
| utf8 | 1.1.4 |
| Yardımcılar | 3.5.1 |
| vctr'lar | 0.1.0 |
| viridisLite | 0.3.0 |
| bıyık | 0.3-2 |
| birlikte | 2.1.2 |
| xfun | 0.8 |
| xml2 | 1.2.0 |
| metinler | 0.11-2 |
| yaml (YAML veri formatı) | 2.2.0 |
| zeallot | 0.1.0 |
| hayvanat bahçesi | 1.8-6 |
Sonraki adımlar
Bkz. Azure Machine Learning için kullanılabilen bileşenler kümesi.