Udostępnij za pośrednictwem


Wykonywanie skryptu języka R

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Wykonuje skrypt języka R z eksperymentu Machine Learning Studio (klasycznego)

Kategoria: Moduły języka R

Uwaga

Dotyczy: tylko Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób używania modułu Execute R Script (Wykonywanie skryptu języka R) w programie Machine Learning Studio (klasycznym) w celu wywoływania i uruchamiania kodu języka R w eksperymentach.

Dodając kod języka R do tego modułu, można wykonywać różne dostosowane zadania, które nie są dostępne w programie Studio (wersja klasyczna). Przykład:

  • Tworzenie niestandardowych przekształceń danych
  • Używanie własnych metryk do oceniania przewidywań
  • Tworzenie modeli przy użyciu algorytmów, które nie są implementowane jako moduły autonomiczne w programie Studio (wersja klasyczna)

Wersje języka R obsługiwane w programie Studio (wersja klasyczna)

Program Studio (wersja klasyczna) obsługuje zarówno typową dystrybucję języka R, która jest dostępna w sieci CRAN, jak i Microsoft R Open (MRO), która obejmuje wszystkie podstawowe pakiety języka R oraz pakiety Revo.

Możesz określić wersję języka R do użycia w eksperymencie. Nie można jednak zainstalować żadnej innej wersji języka R w obszarze roboczym.

Zalecamy określenie pakietów potrzebnych przed wybraniem dystrybucji języka R. Niektóre pakiety nie są zgodne zarówno z językiem CRAN R, jak i Microsoft R Open.

Uwaga

Obecnie moduł Create R Model (Tworzenie modelu języka R ) jest ograniczony do określonej wersji języka R. W związku z tym, jeśli używasz niestandardowego modelu języka R w eksperymencie, wszystkie moduły Execute R Script w tym samym eksperymencie muszą również używać tej samej wersji języka R. Znajdź obsługiwaną wersję języka R w następującym artykule Pakiety języka R obsługiwane przez program Machine Learning Studio (wersja klasyczna).

Obsługiwane pakiety języka R

Środowisko języka R w Machine Learning ma już zainstalowane ponad 500 pakietów R. Oczywiście nie wszystkie są ładowane domyślnie, ale można je łatwo załadować w ramach kodu języka R.

Aby uzyskać listę wszystkich bieżących pakietów, dodaj następujący kod do modułu Execute R Script (Wykonywanie skryptu języka R ) i uruchom moduł .

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

W tym temacie wymieniono pakiety obsługiwane w Machine Learning oraz ich zgodność z językiem CRAN R i Microsoft R Open, zobacz R Packages Supported by Machine Learning Studio (classic)( Pakiety języka R obsługiwane przez program Machine Learning Studio (wersja klasyczna).

Instalowanie nowych pakietów języka R

Nowe pakiety języka R można zainstalować w obszarze roboczym przy użyciu modułu Execute R Script (Wykonywanie skryptu języka R ). Pakiety muszą zostać przekazane w formacie zip. Po załadowaniu eksperymentu do środowiska uruchomieniowego platformy Azure pakiety są rozpakowane i dodawane do środowiska języka R w obszarze roboczym eksperymentu. Aby uzyskać więcej informacji, zobacz How to install new R packages (Jak zainstalować nowe pakiety języka R)

Pakiety, które zostały rozpakowane , nie są utrwalane w obszarze roboczym, gdy eksperyment nie jest uruchomiony. Z tego powodu wszelkie dodatkowe pakiety języka R, które mają być używane, muszą być dostępne w obszarze roboczym lub w usłudze Azure Storage w formacie zip.

Nie można udostępniać pakietów między oddzielnymi wystąpieniami modułu Execute R Script (Wykonywanie skryptu języka R ), ponieważ każdy moduł może zostać załadowany do innego kontenera w czasie wykonywania. Można jednak udostępniać obiekty języka R między modułami, ujawniając je jako zestawy danych. Aby uzyskać więcej informacji, zobacz Przekazywanie obiektów języka R między modułami.

Przykładowe eksperymenty

Istnieje wiele przykładów niestandardowego skryptu języka R w galerii sztucznej inteligencji platformy Azure:

  • Wydajność uczniów: używa niestandardowego skryptu języka R do łączenia wyników ocen dla wielu modeli w jeden zestaw danych. W tym przykładzie użyto również kodu języka R w module Execute R Script (Wykonywanie skryptu języka R ) do obliczenia 16 kolumn zależnych od czasu.

  • Rak piersi: używa niestandardowego kodu w module Execute R Script (Wykonywanie skryptu języka R ) do replikowania pozytywnych przykładów i łączenia metryk.

  • Prognozowanie szeregów czasowych: w tym przykładzie użyto wykonywania skryptu języka R do generowania metryk niestandardowych, a następnie łączy je w jedną tabelę przy użyciu modułu Dodawanie wierszy .

Jak skonfigurować wykonywanie skryptu języka R

Aby skonfigurować moduł Execute R Script (Wykonywanie skryptu języka R ), należy podać zestaw opcjonalnych danych wejściowych i kod języka R, który ma zostać uruchomiony w obszarze roboczym.

Możesz również dodać pliki zawierające dodatkowy kod języka R, jeśli przygotujesz je w skompresowanym pliku archiwum do załącznika do danych wejściowych pakietu skryptów .

Aby zainstalować dodatkowe pakiety, dołącz je do spakowanego pliku archiwum.

  1. Dodaj moduł Execute R Script (Wykonywanie skryptu języka R ) do eksperymentu. Ten moduł można znaleźć w programie Machine Learning Studio (wersja klasyczna) w grupie Moduły językowe języka R.

  2. Połączenie wszelkie dane wejściowe wymagane przez skrypt. Dane wejściowe mogą obejmować dane, pakiety języka R dodane do obszaru roboczego w formacie pliku zip i dodatkowy kod języka R.

    • Dataset1: pierwsze dane wejściowe to miejsce, w którym dołączasz główny zestaw danych (opcjonalnie). Wejściowy zestaw danych musi być sformatowany jako plik CSV, TSV lub ARFF albo można połączyć Machine Learning zestaw danych.

    • Zestaw danych2: drugie dane wejściowe (opcjonalne) obsługują dodawanie drugiego zestawu danych. Ten zestaw danych musi być również sformatowany jako plik CSV, TSV lub ARFF albo można połączyć Machine Learning zestaw danych.

    • Pakiet skryptów: trzecie dane wejściowe, które są opcjonalne, pobiera plik w formacie .ZIP. Spakowany plik może zawierać wiele plików i wiele typów plików. Na przykład spakowane archiwum może zawierać kod języka R w pliku skryptu, obiekty języka R do użycia przez skrypt, pakiet języka R, który został uwzględniony w formacie .ZIP lub zestawy danych w jednym z obsługiwanych formatów.

  3. Wpisz skrypt języka R w polu tekstowym Skrypt języka R . Jest to najprostszy sposób pracy z zestawami danych w węzłach wejściowych.

    Aby ułatwić rozpoczęcie pracy, pole tekstowe Skrypt języka R jest wstępnie wypełniane następującym przykładowym kodem, który można edytować lub zastąpić.

    # Map 1-based optional input ports to variables
    dataset1 <- maml.mapInputPort(1) # class: data.frame
    dataset2 <- maml.mapInputPort(2) # class: data.frame
    
    # Contents of optional Zip port are in ./src/
    # source("src/yourfile.R");
    # load("src/yourData.rdata");
    
    # Sample operation
    colnames(dataset2) <- c(dataset1['nombre_columna'])$nombre_columna;
    data.set = dataset2;
    
    # You'll see this output in the R Device port.
    # It'll have your stdout, stderr and PNG graphics device(s).   
    
    # Select data.frame to be sent to the output Dataset port
    maml.mapOutputPort("data.set"); 
    

    Aby uzyskać więcej informacji na temat używania danych wejściowych i zapisywania w danych wyjściowych, zobacz Przykłady kodu języka R w tym temacie.

    Uwaga

    Kod języka R, który działa prawidłowo w narzędziach zewnętrznych, może wymagać niewielkich zmian do uruchomienia w eksperymencie usługi Azure ML. Na przykład dane wejściowe podane w formacie CSV powinny zostać jawnie przekonwertowane na zestaw danych przed użyciem ich w kodzie. Typy danych i kolumn używane w języku R różnią się również na kilka sposobów od typów danych i kolumn używanych w Machine Learning. Aby uzyskać szczegółowe informacje, zobacz sekcję Informacje techniczne .
    Wykonanie modułu skryptu języka R jest uruchomione w piaskownicy środowiska języka R. Nie zaleca się konfigurowania połączeń HTTP/SQL w tym module.

  4. Inicjator losowy: wpisz wartość, która ma być używana w środowisku języka R jako losowa wartość inicjowania. Ten parametr jest odpowiednikiem wywołania set.seed(value) w kodzie języka R.

  5. Wersja języka R: wybierz wersję języka R do załadowania w obszarze roboczym.

    • CRAN R 3.1.0: Kompleksowa witryna internetowa sieci Web archiwum języka R jest repozytorium języka open source R. Aby uzyskać więcej informacji, zobacz witrynę sieci Web CRAN.

    • Microsoft R Open 3.2.2: MRO to rozszerzona dystrybucja R firmy Microsoft Corporation. Jest to platforma open source oparta na aucie open source R i w pełni zgodna ze wszystkimi pakietami języka R, skryptami i aplikacjami, które współpracują z tą samą wersją języka R. Jednak funkcja MRO zapewnia lepszą wydajność w porównaniu ze standardową dystrybucją języka R ze względu na użycie bibliotek matematycznych o wysokiej wydajności i wielowątkowych. Aby uzyskać więcej informacji, zobacz Microsoft R Open.

    • Nie można zainstalować żadnej innej wersji języka R w obszarze roboczym.

    • Machine Learning obsługuje wiele wersji języka R, ale w dowolnym eksperymencie można używać tylko jednej wersji.

  6. Uruchom eksperyment lub wybierz moduł Execute R Script (Wykonaj skrypt języka R) i kliknij pozycję Run selected (Uruchom).

Wyniki

Moduł może zwrócić wiele danych wyjściowych.

  • Aby przywrócić zestaw danych, kod języka R powinien zwrócić pojedynczą ramkę data.frame języka R.
  • Obrazy można wyświetlać na urządzeniu graficznym języka R, które jest wyświetlane w obszarze dziennika Machine Learning Studio (wersja klasyczna).
  • Aby utrwalać obrazy, można je zapisać w pliku lub serializować w formacie tabelarycznym.
  • Możesz zapisywać obiekty w obszarze roboczym.
  • Komunikaty standardowe i błędy z języka R są zwracane do dziennika modułu.

(1) Zestaw danych wyników

Te dane wyjściowe zawierają ramkę danych, która jest generowana przez kod języka R w module.

Można wyświetlić tylko jedną ramkę danych. Inne obiekty tabelaryczne muszą być konwertowane na ramkę danych przy użyciu funkcji języka R. Ramka danych wyjściowych kodu języka R modułu jest automatycznie konwertowana na wewnętrzny format tabeli danych .

  • Aby sprawdzić, czy zwrócony obiekt jest zgodny z programem Studio (klasycznym), użyj is.data.framepolecenia , który musi zwrócić wartość True.

  • Aby zwrócić inne obiekty języka R, spróbuj serializować obiekt w tablicy bajtów lub użyć funkcji zwracającej żądane dane jako data.frame.

(2) Urządzenie R

Urządzenie języka R obsługuje zarówno dane wyjściowe konsoli (standardowe dane wyjściowe i standardowy błąd) oraz wyświetlanie grafiki PNG przy użyciu interpretera języka R.

  • Aby wyświetlić komunikaty wysyłane do konsoli języka R (standardowe dane wyjściowe i błąd standardowy), kliknij prawym przyciskiem myszy moduł po zakończeniu działania, wybierz pozycję Urządzenie języka R i wybierz pozycję Wizualizuj.

  • Aby wyświetlić grafikę wygenerowaną na porcie urządzenia języka R, kliknij prawym przyciskiem myszy moduł po zakończeniu jego działania, wybierz pozycję Urządzenie R i wybierz pozycję Wizualizuj.

Na przykład poniższy obraz jest generowany przez kilka wierszy kodu języka R.

Example word cloud

Te i powiązane przykłady można znaleźć w galerii sztucznej inteligencji platformy Azure.

  • Aby zapisać obrazy wygenerowane przez moduł Execute R Script (Wykonywanie skryptu języka R ), kliknij obraz prawym przyciskiem myszy i zapisz lokalną kopię. Możesz też użyć wywołania do jednej z funkcji urządzenia graficznego języka R, aby zapisać plik obrazu na koncie usługi Azure Blob Storage skojarzonym z eksperymentem, zgodnie z opisem w tym przykładzie.

Przykładowe skrypty języka R i porady dotyczące języka R

Istnieje wiele sposobów rozszerzania eksperymentu przy użyciu niestandardowego skryptu języka R. Ta sekcja zawiera przykładowy kod dla niektórych typowych zadań.

Dodawanie skryptu języka R jako danych wejściowych

Moduł Execute R Script (Wykonywanie skryptu języka R ) obsługuje użycie dowolnych plików skryptów języka R jako danych wejściowych, pod warunkiem, że są one przygotowane z wyprzedzeniem i przekazywane do obszaru roboczego w ramach pliku ZIP.

  1. Aby przekazać plik ZIP zawierający kod języka R do obszaru roboczego, kliknij pozycję Nowy, kliknij pozycję Zestaw danych, a następnie wybierz pozycję Z pliku lokalnego i opcję Plik zip .

  2. Po przekazaniu spakowanego pakietu do programu Studio (klasycznego) sprawdź, czy plik spakowany jest dostępny na liście Zapisane zestawy danych , a następnie połącz zestaw danych z portem wejściowym pakietu skryptów .

  3. Jeśli plik spakowany zawiera pakiet języka R, który nie został jeszcze zainstalowany w programie Machine Learning Studio (klasycznym), musisz zainstalować pakiet języka R w ramach kodu niestandardowego w module Execute R Script (Wykonywanie skryptu języka R). Wszystkie pliki zawarte w pliku ZIP są dostępne w czasie wykonywania eksperymentu.

    Jeśli plik pakietu skryptów zawiera strukturę katalogów, struktura zostanie zachowana. Należy jednak zmienić kod, aby wstępnie otworzyć katalog src na ścieżkę.

Generowanie obrazów, modeli i innych obiektów

Jeśli musisz wygenerować obraz lub dowolny dowolny obiekt języka R, możesz serializować go w tablicy bajtów, a następnie jako ramkę data.frame, jak pokazano w tym przykładzie:

as.data.frame(as.integer(serialize(g,con=NULL)));   

Graph ramek danych z https://igraph.org/r/ biblioteki nie obsługują serializacji jako ramki danych. Zamiast tego użyj get.data.frame funkcji w igraph pakiecie, aby umieścić informacje o krawędzi i wierzchołku w ramce danych.

vertices <- get.data.frame(g, what="vertices")   

Następnie można zwrócić obiekt grafu jako ramkę data.frame, którą można pobrać z modułu Execute R Script (Wykonywanie skryptu języka R ).

edges <- get.data.frame(g, what="edges")  

Odczyt z danych wejściowych i zapisu do danych wyjściowych

W poniższym przykładzie pokazano, jak używać portów wejściowych i wyjściowych. Odczytuje dane wejściowe jako tabelę i dołącza kopię tabeli do siebie, co skutecznie podwaja rozmiar tabeli. Wynik jest następnie wysyłany do portu wyjściowego.

# Map existing dataset to first input port  
dataset1 <- maml.mapInputPort(1) # class: data.frame  
# Concatenate dataset1 to dataset 1  
newdataset = rbind(dataset1, dataset1)  
# Send the combined dataset to the output port  
maml.mapOutputPort("newdataset");  

Odczytywanie pliku ZIP jako danych wejściowych

W tym przykładzie pokazano, jak dodać zestaw danych do programu Machine Learning Studio (wersja klasyczna) w formacie zip, a następnie użyć danych jako danych wejściowych do modułu Execute R Script (Wykonywanie skryptu języka R).

  1. Utwórz plik danych w formacie CSV i nadaj mu nazwę "mydatafile.csv".
  2. Utwórz plik .ZIP i dodaj plik CSV do archiwum.
  3. Przekaż spakowany plik do obszaru roboczego Machine Learning zgodnie z opisem tutaj: Rozpakowywanie spakowanych zestawów danych.
  4. Połączenie wynikowy zestaw danych do danych wejściowych ScriptBundle modułu Execute R Script (Wykonywanie skryptu języka R). Innymi słowy, nie rozpakuj go jeszcze!
  5. Korzystając z poniższego kodu, przeczytaj dane CSV z pliku spakowanego. Określ kodowanie używane w pliku danych w razie potrzeby, aby uniknąć błędów później.
mydataset=read.csv("src/newdata.csv",encoding="UTF-8");  
nrow(mydataset);  
ncol(mydataset);  
# Map new dataset to the first output port  
maml.mapOutputPort("mydataset");  

Uwaga

Wszystkie dane przekazane do modułu Execute R Script (Wykonywanie skryptu języka R ) są konwertowane na data.frame format używany w kodzie języka R. Dotyczy to wszystkich danych zgodnych z DataTable format używanymi przez Machine Learning, w tym plikami CSV, plikami ARFF itd.

Replikowanie wierszy

W tym przykładzie pokazano, jak replikować dodatnie próbki w zestawie danych przez współczynnik 20, aby zrównoważyć próbkę.

dataset <- maml.mapInputPort(1)
data.set <- dataset[dataset[,1]==-1,]  
pos <- dataset[dataset[,1]==1,]  
for (i in 1:20) data.set <- rbind(data.set,pos)  
row.names(data.set) <- NULL
maml.mapOutputPort("data.set")  

Wywoływanie niestandardowego ucznia na podstawie pakietu Arules

Nowe pakiety języka R można zainstalować w obszarze roboczym Machine Learning, przekazując je jako plik .ZIP, zgodnie z opisem tutaj. Poniższy kod pokazuje, jak używać przekazanego pakietu.

  1. Załóżmy, że arules pakiety i arulesViz zostały już dodane do obszaru roboczego.

  2. Połączenie przekazany plik .ZIP do trzeciego portu wejściowego modułu Execute R Script (Wykonywanie skryptu języka R).

  3. W polu tekstowym Skrypt języka R użyj następującego polecenia, aby wywołać algorytm reguł skojarzenia priorytetu dostarczony przez pakiet Arulesjęzyka R i zastosować ucznia w zadaniu analizy koszyka rynkowego.

library("arules")  
library("arulesViz")  
dataset <- read.transactions(file="src/SalesReport.csv", rm.duplicates= TRUE,     format="single",sep=",",cols =c(1,2))
#dataset <- sapply(dataset,as.factor)  
basket <- apriori(dataset,parameter = list(sup = 0.5, conf = 0.9,target="rules"));  
inspect(basket)  
# if this is not NULL i.e. if there are rules
plot(basket)

Wywoływanie niestandardowego ucznia Naiwnego Bayesa

W tym przykładzie pokazano, jak wywołać bibliotekę języka R, która nie jest uwzględniona w programie Studio (wersja klasyczna).

  1. Przekaż spakowany plik zawierający bibliotekę e1071 do obszaru roboczego.

  2. Połączenie przekazany plik .ZIP do trzeciego portu wejściowego modułu Execute R Script (Wykonywanie skryptu języka R).

  3. W polu tekstowym Skrypt języka R użyj następującego kodu, aby zaimplementować ucznia Naiwny Bayes.

    library(e1071)  
    features <- get.feature.columns(dataset)  
    labels   <- get.label.column(dataset)  
    train.data <- data.frame(features, labels)  
    feature.names <- get.feature.column.names(dataset)  
    names(train.data) <- c(feature.names, "Class")  
    model <- naiveBayes(Class ~ ., train.data)    
    

Wywoływanie niestandardowego strzelców Bayesa

Jeśli masz istniejący model utworzony przez e1071 bibliotekę, możesz wywołać niestandardowy moduł scorer dostarczony przez bibliotekę e1071 .

Jednak aby wykonać ocenianie w osobnym wystąpieniu modułu Execute R Script (Wykonywanie skryptu języka R ), należy podać spakowany plik zawierający e1071 bibliotekę jako dane wejściowe modułu oceniania i załadować bibliotekę. Dzieje się tak, ponieważ każdy moduł działa niezależnie w kontenerze.

library(e1071)  
features <- get.feature.columns(dataset)  
scores <- predict(model, features)  

Wszystkie moduły języka R dołączone do jednego eksperymentu muszą używać tej samej wersji środowiska uruchomieniowego języka R. Nie można mieszać wersji języka R, takich jak używanie usługi CRANR w jednym module i microsoft R Open w innym.

Pisanie pliku graficznego

Mimo że program Studio (wersja klasyczna) obsługuje wyświetlanie plików PNG przy użyciu portu wyjściowego urządzenia języka R, możesz wygenerować wyniki jako plik PDF w obiekcie blob na platformie Azure Storage do użycia do raportowania.

W tym przykładzie pokazano, jak użyć skryptu Execute R Script do wygenerowania wykresu jako pliku PDF.

  1. Dodaj skrypt Execute R do eksperymentu.

  2. Utwórz podstawowy plik PDF w ramach skryptu języka R i zwróć ciąg zakodowany w formacie Base64 pliku PDF z modułu Execute R Script (Wykonywanie skryptu języka R ).

    d <- maml.mapInputPort(1)  
    d$dteday <- as.numeric(d$dteday)  
    pdf()  
    plot(d)  
    dev.off()  
    library(caTools)  
    b64ePDF <- function(filename) {  
                maxFileSizeInBytes <- 5 * 1024 * 1024 # 5 MB  
                return(base64encode(readBin(filename, "raw", n = maxFileSizeInBytes)))  
    }  
    
    d2 <- data.frame(pdf = b64ePDF("Rplots.pdf"))  
    
    maml.mapOutputPort("d2");    
    
  3. Przekaż te dane wyjściowe do modułu Eksportuj dane i zapisz wartości binarne w usłudze Azure Blob Storage.

Przekazywanie obiektów języka R między modułami wykonywania skryptu języka R

Obiekty języka R można przekazywać między wystąpieniami modułu Execute R Script (Wykonywanie skryptu języka R ) przy użyciu wewnętrznego mechanizmu serializacji. W tym przykładzie założono, że chcesz przenieść obiekt języka R o nazwie A między dwoma modułami Execute R Script (Wykonywanie skryptu języka R ).

  1. Dodaj pierwszy moduł Execute R Script (Wykonaj skrypt języka R ) do eksperymentu i wpisz następujący kod w polu tekstowym Skrypt języka R , aby utworzyć obiekt serializowany A jako kolumnę w wyjściowej tabeli danych modułu:

    serialized <- as.integer(serialize(A,NULL))  
    data.set <- data.frame(serialized,stringsAsFactors=FALSE)
    maml.mapOutputPort("data.set")
    

    Wymagana jest jawna konwersja na typ liczby całkowitej, ponieważ funkcja serializacji generuje dane w formacie RRaw, który nie jest obsługiwany przez Machine Learning.

  2. Dodaj drugie wystąpienie modułu Execute R Script (Wykonaj skrypt języka R ) i połącz je z portem wyjściowym poprzedniego modułu.

  3. Wpisz następujący kod w polu tekstowym Skrypt języka R , aby wyodrębnić obiekt A z wejściowej tabeli danych.

    dataset <- maml.mapInputPort(1)  
    A <- unserialize(as.raw(dataset$serialized))  
    

Instalowanie nowych pakietów języka R

Pakiety języka R, które nie są instalowane domyślnie w Machine Learning. Dodanie nowych pakietów wymaga następujących kroków:

  • Uzyskaj pliki binarne Windows dla pakietu w formacie spakowany.
  • Spakuj żądany pakiet i wszystkie zależności do nowego skompresowanego pliku archiwum z rozszerzeniem .ZIP.
  • Przekaż plik spakowany jako zestaw danych do obszaru roboczego.
  • Połączenie nowy zestaw danych do modułu Execute R Script (Wykonywanie skryptu języka R).
  • Zainstaluj pakiet przy użyciu skryptu języka R w module.

Poniższa procedura dodaje nowy pakiet wraz z jego zależnościami.

  1. Pobierz plik spakowany dla pakietu, który chcesz zaimportować do Machine Learning. Pamiętaj, aby uzyskać Windows wersję spakowanego pliku.

    Uwaga

    Jeśli masz już wyodrębniony pakiet języka R, którego chcesz użyć w obszarze roboczym, musisz ponownie spakować pakiet lub podać oryginalny plik ZIP, gdy możesz przekazać pakiet R do programu Studio (wersja klasyczna).

  2. Sprawdź, czy istnieją zależności i czy pakiet potrzebuje innych pakietów, które nie znajdują się jeszcze w programie Azure ML Studio (wersja klasyczna), pobierz je w formacie spakowanym i dodaj je do pliku archiwum.

  3. Kliknij prawym przyciskiem myszy plik spakowany dla pakietu, który chcesz przekazać, a także jego zależności, kliknij przycisk Wyślij do, a następnie wybierz folder Skompresowany (spakowany).

    Porada

    Skompresowany folder powinien zawierać co najmniej jeden plik spakowany z pakietem docelowym oraz dodatkowe pliki zip zawierające wymagane pakiety.

  4. Przekaż pojedynczy plik ZIP zawierający wszystkie pakiety (a także dowolne opcjonalne pliki kodu języka R lub pliki danych) do obszaru roboczego programu Studio (wersja klasyczna).

    Chcesz przekazać zestaw danych: kliknij przycisk Nowy, kliknij pozycję Zestaw danych, a następnie wybierz pozycję Z pliku lokalnego i opcję Plik zip .

  5. Otwórz listę Zapisane zestawy danych , kliknij pozycję Moje zestawy danych i sprawdź, czy plik spakowany jest dostępny.

  6. Przeciągnij go do eksperymentu, kliknij prawym przyciskiem myszy zestaw danych, a następnie wybierz pozycję Visualize (Wizualizacja ), aby wyświetlić pliki zawarte w spakowany folder. Nazwy plików widoczne na liście Zawartość to nazwy, do których należy się odwołać podczas instalowania pakietu.

    Załóżmy na przykład, że przekazano plik o nazwie , który zawiera trzy pakiety języka R o nazwie NewRPackage.zip001.zip, 002.zipi 003.zip. Na liście Zestawy danych nazwa zestawu danych to NewRPackage.zip, z zawartością 001.zip, 002.zipi 003.zip.

  7. Połączenie zestaw danych (NewRPackage.zip) do portu wejściowego pakietu skryptów.

    W tym momencie zewnętrzny spakowany folder jest wyodrębniany do piaskownicy obszaru roboczego w ścieżce src. Teraz dostępne są następujące pakiety:

    • src\001.zip
    • src\002.zip
    • src\003.zip
  8. Aby zainstalować pakiety języka R, należy wyodrębnić każdy pakiet z pliku zip, a następnie załadować zawartą bibliotekę.

    Na przykład przy założeniu, że plik src\001.zip zawiera niestandardowy pakiet code001języka R, należy uruchomić następujący skrypt:

    # install R package contained in src\001.zip  
    install.packages("src/001.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code001, lib.loc=".", verbose=TRUE)
    
  9. Powtórz proces instalacji dla wszystkich wymaganych pakietów.

    # install R package contained in src\002.zip  
    install.packages("src/002.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code002, lib.loc=".", verbose=TRUE)  
    # install R package contained in src\003.zip  
    install.packages("src/003.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code003, lib.loc=".", verbose=TRUE)  
    

    Uwaga

    Jeśli istnieją jakiekolwiek zależności między zainstalowanymi wieloma pakietami, najpierw zainstaluj wymagane pakiety lub może wystąpić błąd.

Instalacja wszystkich pakietów języka R musi być wykonywana w ramach eksperymentu, aby upewnić się, że wszystkie wymagane pakiety są uwzględnione w obszarze roboczym wysyłanym do kolejki zadań platformy Azure po wykonaniu eksperymentu.

Pakiety w obszarze roboczym nie są utrwalane po uruchomieniu eksperymentu lub zamknięciu sesji. Jednak wszystkie pakiety przekazane jako pliki zip można szybko wyodrębnić i używać podczas ponownego uruchamiania eksperymentu.

Uwagi techniczne

Optymalizowanie wydajności języka R w programie Studio (wersja klasyczna)

Bieżąca pamięć domyślna to 14 GB. Jeśli próbujesz manipulować bardzo dużymi ramkami danych, możesz napotkać komunikat o błędzie poza pamięcią przy użyciu modułu Execute R Script (Wykonywanie skryptu języka R ).

Aby zwiększyć ilość pamięci używanej przez skrypt języka R, możesz użyć wiersza podobnego do tego na początku skryptu:

memory.limit(56000)  

Kod języka R określony przez użytkownika jest uruchamiany przez 64-bitowy interpreter języka R działający na platformie Azure przy użyciu maszyny wirtualnej A8 z 56 GB pamięci RAM. Aby zwiększyć szybkość kodu języka R, możesz użyć kompilatora just in time podanego w wstępnie zainstalowanym pakiecie kompilatora .

Konwertowanie typów danych między językiem R i programem Studio (wersja klasyczna)

W poniższej tabeli przedstawiono sposób, w jaki typy danych w języku R odpowiadają typom danych w Machine Learning:

Typ języka R Typ studio (klasyczny)
Liczba całkowita Liczba całkowita
Double Double
Complex Complex

Ten typ jest obsługiwany tylko przez podzbiór modułów.
Wartości logiczne Wartość logiczna
Znak Ciąg
Nieprzetworzone Nieobsługiwane
Różnice czasu przedział_czasu
factor podzielone na kategorie
data.frame Dataset

Nie można przekonwertować kolumn typu lists danych w języku R, ponieważ elementy w takich kolumnach potencjalnie mają różne typy i rozmiary. Na przykład następujący prawidłowy kod języka R kończy się niepowodzeniem w przypadku użycia w module Execute R Script (Wykonywanie skryptu języka R ):

data.set <- data.frame(r=I(list(list(1,2,3),list(4,5))))  
maml.mapOutputPort("data.set")  

Konwertowanie wartości daty/godziny

Machine Learning Studio (wersja klasyczna) używa różnych typów daty/godziny niż R. Jeśli analizowane dane zawierają dane daty lub godziny, należy pamiętać o następujących wymaganiach dotyczących konwersji podczas przenoszenia istniejącego kodu języka R do programu Studio (wersja klasyczna):

Konwertowanie z programu Machine Learning Studio (wersja klasyczna) na język R

Kolumny DateTime są konwertowane na wektory POSIXct. Jednak każdy pojedynczy element wektora wynikowego jest liczbą sekund od 1970-01-01T00:00:00.

W tej konwersji nie są wprowadzane żadne korekty strefy czasowej.

Konwertowanie z języka R na studio (wersja klasyczna)

Wektory POSIXct są konwertowane na kolumny DateTime w strefie czasowej UTC.

Na przykład 2011-03-27 01:30:00 PDT zostanie przekonwertowany na 2011-03-27T08:30:00Z, gdzie Z wskazuje, że czas jest w formacie UTC.

Porada

W przypadku korzystania z czasów wewnątrz modułu Execute R Script (Wykonywanie skryptu języka R ) należy jawnie określić sygnatury czasowe. Interpreter języka R hostowany w module Execute R Script (Wykonywanie skryptu języka R ) nie ma dostępu do lokalnych definicji strefy czasowej.

Sieć

Ze względów bezpieczeństwa wszystkie sieci z lub do kodu języka R w module Wykonywanie skryptu języka R są blokowane przez platformę Azure. Ponadto w przypadku bardzo niewielu wyjątków dostęp do portów lokalnych z wykonywania skryptu języka R jest zablokowany.

Równoległego

Obecnie równoległe wykonywanie z wieloma wątkami nie jest obsługiwane.

Oczekiwane dane wejściowe

Nazwa Typ Opis
Zestaw danych1 Tabela danych Wejściowy zestaw danych 1
Zestaw danych2 Tabela danych Wejściowy zestaw danych 2
Pakiet skryptów Zip Zestaw źródeł języka R

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Skrypt języka R Dowolne Streamreader Określ element wskazujący StreamReader źródła skryptów języka R.
Losowe nasion >=0 Liczba całkowita Zdefiniuj losową wartość nasion do użycia w środowisku języka R.

Odpowiednik .\"set.seed(value)\"

Ten parametr jest opcjonalny.

Dane wyjściowe

Nazwa Typ Opis
Zestaw danych wyników Tabela danych Wyjściowy zestaw danych
Urządzenie języka R Tabela danych Dane wyjściowe konsoli i urządzenie graficzne PNG z interpretera języka R

Zobacz też

Moduły języka R
Tworzenie modelu języka R
Kategorie i opisy modułów
Moduły języka Python