Execute R Script

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Führt ein R-Skript aus einem Machine Learning Studio -Experiment (klassisches) Experiment aus.

Kategorie: R-Sprachmodule

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Execute R Script-Modul in Machine Learning Studio (klassisch) verwenden, um R-Code in Ihren Experimenten aufzurufen und auszuführen.

Durch hinzufügen von R-Code zu diesem Modul können Sie eine Vielzahl von angepassten Aufgaben ausführen, die in Studio (klassisch) nicht verfügbar sind. Beispiel:

  • Erstellen benutzerdefinierter Datentransformationen
  • Verwenden Ihrer eigenen Metriken zum Auswerten von Vorhersagen
  • Erstellen von Modellen mithilfe von Algorithmen, die nicht als eigenständige Module in Studio (klassisch) implementiert sind

R-Versionen, die in Studio (klassisch) unterstützt werden

Studio (klassisch) unterstützt sowohl die typische Verteilung von R, die von CRAN verfügbar ist, als auch Microsoft R Open (MRO), die alle Basis-R-Pakete sowie die Revo-Pakete enthält.

Sie können angeben, welche Version von R in einem Experiment verwendet werden soll. Sie können jedoch keine andere Version von R in Ihrem Arbeitsbereich installieren.

Es wird empfohlen, zu bestimmen, welche Pakete Sie benötigen, bevor Sie eine Verteilung von R auswählen. Einige Pakete sind nicht sowohl mit CRAN R als auch mit Microsoft R Open kompatibel.

Hinweis

Derzeit ist das Create R Model-Modul auf bestimmte Versionen von R beschränkt. Wenn Sie daher ein benutzerdefiniertes R-Modell in Ihrem Experiment verwenden, müssen alle Execute R Script-Module im gleichen Experiment auch dieselbe R-Version verwenden. Suchen Sie die unterstützte R-Version im folgenden Artikel, R-Pakete, die von Machine Learning Studio (klassisch) unterstützt werden.

Unterstützte R-Pakete

Die R-Umgebung in Machine Learning verfügt bereits über 500 R-Pakete. Natürlich werden nicht alle standardmäßig geladen, aber Sie können sie einfach als Teil Ihres R-Codes laden.

Um eine Liste aller aktuellen Pakete abzurufen, fügen Sie den folgenden Code zu einem Execute R Script-Modul hinzu, und führen Sie das Modul aus.

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

In diesem Thema werden die Pakete aufgeführt, die in Machine Learning unterstützt werden, und deren Kompatibilität mit CRAN R und Microsoft R Open finden Sie unter R-Pakete, die von Machine Learning Studio (klassisch) unterstützt werden.

Installieren neuer R-Pakete

Sie installieren neue R-Pakete in Ihrem Arbeitsbereich mithilfe des Execute R Script-Moduls . Die Pakete müssen im ZIP-Format hochgeladen werden. Wenn Ihr Experiment in eine Azure-Laufzeitumgebung geladen wird, werden die Pakete entpackt und in der R-Umgebung in Ihrem Experimentarbeitsbereich hinzugefügt. Weitere Informationen finden Sie unter Installieren neuer R-Pakete

Pakete, die entpackt wurden, werden nicht im Arbeitsbereich beibehalten, wenn das Experiment nicht ausgeführt wird. Aus diesem Grund müssen alle zusätzlichen R-Pakete, die Sie verwenden möchten, in Ihrem Arbeitsbereich oder im Azure-Speicher im ZIP-Format verfügbar sein.

Pakete können nicht über separate Instanzen des Execute R Script-Moduls hinweg freigegeben werden, da jedes Modul möglicherweise zur Laufzeit in einen anderen Container geladen wird. Sie können jedoch R-Objekte zwischen Modulen freigeben, indem Sie sie als Datasets anzeigen. Weitere Informationen finden Sie unter Pass R-Objekte zwischen Modulen.

Beispielexperimente

Es gibt viele Beispiele für benutzerdefiniertes R-Skript im Azure AI-Katalog:

  • Schülerleistung: Verwendet benutzerdefiniertes R-Skript, um die Ergebnisse von Auswertungen für mehrere Modelle in einem einzigen Dataset zu kombinieren. In diesem Beispiel wird außerdem R-Code im Modul Execute R Script verwendet, um 16 zeitabhängige Spalten zu berechnen.

  • Brustkrebs: Verwendet benutzerdefinierten Code im Execute R Script-Modul , um positive Beispiele zu replizieren und Metriken zu kombinieren.

  • Zeitreihenvorhersage: In diesem Beispiel wird Execute R Script verwendet, um benutzerdefinierte Metriken zu generieren, und kombiniert sie dann mithilfe des Moduls "Zeilen hinzufügen " in eine einzelne Tabelle.

Konfigurieren von Execute R Script

Um das Modul Execute R Script zu konfigurieren, stellen Sie eine Reihe von optionalen Eingaben und den R-Code bereit, der im Arbeitsbereich ausgeführt werden soll.

Sie können auch Dateien hinzufügen, die zusätzlichen R-Code enthalten, wenn Sie sie in einer ZIP-Archivdatei für die Anlage zur Skriptbündeleingabe vorbereiten.

Um weitere Pakete zu installieren, fügen Sie sie in die zipped-Archivdatei ein.

  1. Fügen Sie Ihrem Experiment das Modul Execute R Script hinzu. Sie finden dieses Modul in Machine Learning Studio (klassisch), in der Gruppe R Language Modules.

  2. Stellen Sie eine Verbindung mit allen Eingaben her, die vom Skript benötigt werden. Eingaben können Daten, R-Pakete, die Sie ihrem Arbeitsbereich im ZIP-Dateiformat hinzugefügt haben, und zusätzlichen R-Code enthalten.

    • Dataset1: Die erste Eingabe ist der Ort, an dem Sie Ihr Hauptdatensatz anfügen (optional). Das Eingabedatenset muss als CSV-, TSV- oder ARFF-Datei formatiert werden, oder Sie können ein Machine Learning Dataset verbinden.

    • Dataset2: Die zweite Eingabe (optional) unterstützt das Hinzufügen eines zweiten Datasets. Dieses Dataset muss auch als CSV-, TSV- oder ARFF-Datei formatiert werden, oder Sie können ein Machine Learning Dataset verbinden.

    • Skriptbündel: Die dritte Eingabe, die optional ist, verwendet eine Datei im .ZIP Format. Die ZIP-Datei kann mehrere Dateien und Dateitypen enthalten. Das ZIP-Archiv kann z. B. R-Code in einer Skriptdatei enthalten, R-Objekte für die Verwendung durch das Skript, ein R-Paket, das selbst im .ZIP Format enthalten war, oder Datasets in einem der unterstützten Formate.

  3. Geben Sie R-Skript in das Textfeld "R Skript " ein. Dies ist die einfachste Möglichkeit, mit den Datasets auf den Eingabeknoten zu arbeiten.

    Um Ihnen bei den ersten Schritten zu helfen, wird das Textfeld R Script mit dem folgenden Beispielcode vorgefüllt, den Sie bearbeiten oder ersetzen können.

    # 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"); 
    

    Weitere Informationen zur Verwendung von Eingaben und Schreiben in Ausgabe finden Sie in R-Codebeispielen in diesem Thema.

    Hinweis

    R-Code, der in externen Tools ausgeführt wird, benötigt möglicherweise kleine Änderungen, die in einem Azure ML Experiment ausgeführt werden. Beispielsweise müssen Eingabedaten, die Sie im CSV-Format bereitstellen, explizit in ein Dataset konvertiert werden, bevor Sie sie in Ihrem Code verwenden können. Daten- und Spaltentypen, die in der R-Sprache verwendet werden, unterscheiden sich auch auf verschiedene Weise von den daten- und Spaltentypen, die in Machine Learning verwendet werden. Einzelheiten finden Sie im Abschnitt Technische Hinweise.
    Das Ausführen des R-Skriptmoduls wird in einer Sandkastenumgebung ausgeführt, es wird nicht empfohlen, HTTP/SQL Verbindungen in diesem Modul einzurichten.

  4. Random Seed (Zufälliger Startwert): Geben Sie einen Wert ein, der in der R-Umgebung als zufälliger Startwert verwendet werden soll. Dieser Parameter entspricht dem Aufrufen von set.seed(value) im R-Code.

  5. R-Version: Wählen Sie die Version von R aus, die im Arbeitsbereich geladen werden soll.

    • CRAN R 3.1.0: Die Umfassende R Archive Network-Website ist das Repository für die Open Source R-Sprache. Weitere Informationen finden Sie auf der CRAN-Website.

    • Microsoft R Open 3.2.2: MRO ist die erweiterte Verteilung von R von Microsoft Corporation. Es ist eine Open Source Plattform basierend auf dem Open Source R-Modul und vollständig kompatibel mit allen R-Paketen, Skripts und Anwendungen, die mit derselben Version von R arbeiten. MrO bietet jedoch eine verbesserte Leistung im Vergleich zur Standard-R-Verteilung aufgrund seiner Verwendung von leistungsstarken, multithreadierten mathematischen Bibliotheken. Weitere Informationen finden Sie unter Microsoft R Open.

    • Sie können keine andere Version von R in Ihrem Arbeitsbereich installieren.

    • Machine Learning unterstützt mehrere Versionen von R, aber nur eine Version kann in jedem Experiment verwendet werden.

  6. Führen Sie das Experiment aus, oder wählen Sie das Skriptmodul "Ausführen" aus, und klicken Sie auf "Ausführen".

Ergebnisse

Das Modul kann mehrere Ausgaben zurückgeben.

  • Um ein Dataset zurückzugeben, sollte Der R-Code einen einzelnen R data.frame zurückgeben.
  • Sie können Bilder im R-Grafikgerät anzeigen, das im Machine Learning Studio -Protokollbereich (klassisch) angezeigt wird.
  • Um Bilder beizubehalten, können Sie sie in eine Datei schreiben oder in ein tabellarisches Format serialisieren.
  • Sie können Objekte in Ihrem Arbeitsbereich speichern.
  • Standardmeldungen und -fehler aus R werden im Protokoll des Moduls zurückgegeben.

(1) Ergebnisdatensatz

Diese Ausgabe enthält den Datenrahmen, der vom R-Code im Modul generiert wird.

Sie können nur einen Datenrahmen ausgeben. Andere tabellarische Objekte müssen mithilfe von R-Funktionen in einen Datenrahmen konvertiert werden. Die Datenrahmenausgabe durch den R-Code des Moduls wird automatisch in das interne Datentabellenformat konvertiert.

  • Um zu überprüfen, ob das zurückgegebene Objekt mit Studio (klassisch) kompatibel ist, verwenden is.data.frameSie die Verwendung, die True zurückgeben muss.

  • Um andere R-Objekte zurückzugeben, probieren Sie die Serialisierung des Objekts in ein Bytearray, oder verwenden Sie eine Funktion, die die gewünschten Daten als data.frame zurückgibt.

(2) R-Gerät

Das R-Gerät unterstützt sowohl die Konsolenausgabe (Standardausgabe als auch Standardfehler) und die Anzeige von PNG-Grafiken mithilfe des R-Dolmetschers.

  • Um Nachrichten anzuzeigen, die an die R-Konsole gesendet werden (Standardausgabe und Standardfehler), klicken Sie mit der rechten Maustaste auf das Modul, nachdem sie ausgeführt wurde, wählen Sie R-Gerät aus, und wählen Sie " Visualisieren" aus.

  • Um Grafiken anzuzeigen, die auf dem R-Geräteport generiert wurden, klicken Sie mit der rechten Maustaste auf das Modul, nachdem sie ausgeführt wurde, wählen Sie R-Gerät aus, und wählen Sie " Visualisieren" aus.

Beispielsweise wird das folgende Bild von nur wenigen Zeilen R-Code generiert.

Example word cloud

Sie finden diese und verwandte Beispiele im Azure AI-Katalog.

  • Zum Speichern von Bildern, die vom Execute R Script-Modul generiert werden, klicken Sie mit der rechten Maustaste auf das Bild, und speichern Sie eine lokale Kopie. Sie können auch einen Aufruf an eine der R-Grafikgerätefunktionen verwenden, um die Bilddatei in das Azure-Blobspeicherkonto zu schreiben, das dem Experiment zugeordnet ist, wie in diesem Beispiel beschrieben.

Beispiel-R-Skripts und R-Tipps

Es gibt viele Möglichkeiten, wie Sie Ihr Experiment mithilfe eines benutzerdefinierten R-Skripts erweitern können. In diesem Abschnitt finden Sie Beispielcode für einige allgemeine Aufgaben.

Hinzufügen eines R-Skripts als Eingabe

Das Execute R Script-Modul unterstützt die Verwendung beliebiger R-Skriptdateien als Eingaben, sofern sie vorab vorbereitet und im Rahmen der ZIP-Datei in Ihren Arbeitsbereich hochgeladen werden.

  1. Um eine ZIP-Datei mit R-Code in Ihren Arbeitsbereich hochzuladen, klicken Sie auf New (Neu), dann auf Dataset und wählen anschließend From local file (Aus lokaler Datei) und die Option Zip file (ZIP-Datei) aus.

  2. Nachdem Sie das zipped-Paket in Studio (klassisch) hochgeladen haben, stellen Sie sicher, dass die zippede Datei in der Liste "Gespeicherte Datasets " verfügbar ist, und verbinden Sie dann das Dataset mit dem SkriptBündeleingabeport .

  3. Wenn Ihre komprimierte Datei ein R-Paket enthält, das nicht bereits in Machine Learning Studio (klassisch) installiert ist, müssen Sie das R-Paket als Teil des benutzerdefinierten Codes im Execute R Script-Modul installieren. Alle Dateien in der ZIP-Datei sind während der Laufzeit des Experiments verfügbar.

    Wenn die Script Bundle-Datei eine Verzeichnisstruktur enthält, bleibt die Struktur erhalten. Sie müssen ihren Code jedoch ändern, um den Verzeichnissrc auf den Pfad vorzuladen.

Generieren von Bildern, Modellen und anderen Objekten

Wenn Sie ein Bild oder ein anderes beliebiges R-Objekt generieren müssen, können Sie sie in ein Bytearray serialisieren und dann als Data.frame wie in diesem Beispiel gezeigt:

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

Graph Datenframes aus der https://igraph.org/r/ Bibliothek unterstützen keine Serialisierung als Datenrahmen. Verwenden Sie stattdessen die Funktion im igraph Paket, um die get.data.frame Rand- und Vertexinformationen in einen Datenrahmen zu setzen.

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

Anschließend können Sie das Graphobjekt als data.frame zurückgeben, das Sie aus dem Execute R Script-Modul abrufen können.

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

Lesen von Eingaben und Schreibzugriff in die Ausgabe

Im folgenden Beispiel wird veranschaulicht, wie Eingabe- und Ausgabeports verwendet werden. Er liest die Eingabedaten als Tabelle und fügt eine Kopie der Tabelle an sich an, wobei die Größe der Tabelle effektiv verdoppelt wird. Das Ergebnis wird dann an den Ausgabeport gesendet.

# 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");  

Lesen einer ZIP-Datei als Eingabe

In diesem Beispiel wird veranschaulicht, wie Sie in zippedem Format ein Dataset Machine Learning Studio (klassisch) hinzufügen und dann die Daten als Eingabe zum Execute R Script-Modul verwenden.

  1. Erstellen Sie die Datendatei im CSV-Format, und nennen Sie sie „mydatafile.csv“.
  2. Erstellen Sie eine .ZIP Datei, und fügen Sie der CSV-Datei das Archiv hinzu.
  3. Hochladen die zippede Datei in Ihren Machine Learning Arbeitsbereich wie hier beschrieben: Entpacken Sie zipped Datasets.
  4. Verbinden Sie das resultierende Dataset mit der ScriptBundle-Eingabe Ihres Moduls Execute R Script. Mit anderen Worten, entpacken Sie es noch nicht!
  5. Lesen Sie mithilfe des folgenden Codes die CSV-Daten aus der zippedierten Datei. Geben Sie die Codierung an, die bei Bedarf in der Datendatei verwendet wird, um später Fehler zu vermeiden.
mydataset=read.csv("src/newdata.csv",encoding="UTF-8");  
nrow(mydataset);  
ncol(mydataset);  
# Map new dataset to the first output port  
maml.mapOutputPort("mydataset");  

Hinweis

Alle an das Execute R Script-Modul übergebenen Daten werden in das Format für die data.frame Verwendung mit Ihrem R-Code konvertiert. Dies gilt für alle Daten, die mit Machine Learning DataTable format kompatibel sind, einschließlich CSV-Dateien, ARFF-Dateien usw.

Replizieren von Zeilen

In diesem Beispiel wird gezeigt, wie Sie die positiven Beispiele in einem Dataset durch einen Faktor von 20 replizieren, um das Beispiel zu ausgleichen.

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")  

Aufrufen eines benutzerdefinierten Lerners basierend auf dem Arules-Paket

Sie können neue R-Pakete in Ihren Machine Learning Arbeitsbereich installieren, indem Sie sie als .ZIP Datei hochladen, wie hier beschrieben. Im folgenden Code wird veranschaulicht, wie Sie das hochgeladene Paket verwenden.

  1. Angenommen, die arulesarulesViz Pakete wurden bereits dem Arbeitsbereich hinzugefügt.

  2. Verbinden die hochgeladene .ZIP Datei an den dritten Eingabeport des Execute R Script-Moduls.

  3. Verwenden Sie im Textfeld R-Skript folgendes, um den von dem R-Sprachpaket Arulesbereitgestellten A priori-Zuordnungsregeln-Algorithmus aufzurufen und den Lerner in einer Marktkorbanalyseaufgabe anzuwenden.

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)

Rufen Sie einen benutzerdefinierten Naïve Bayes-Lerner auf

In diesem Beispiel wird gezeigt, wie Sie eine R-Bibliothek aufrufen, die nicht in Studio (klassisch) enthalten ist.

  1. Hochladen eine zippedierte Datei, die die e1071 Bibliothek in Ihrem Arbeitsbereich enthält.

  2. Verbinden die hochgeladene .ZIP Datei an den dritten Eingabeport des Execute R Script-Moduls.

  3. Verwenden Sie im Textfeld "R Script " den folgenden Code, um den Lerner naïve Bayes zu implementieren.

    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)    
    

Rufen Sie einen benutzerdefinierten Naïve Bayes-Scorer auf

Wenn Sie über ein vorhandenes Modell verfügen, das von der Bibliothek erstellt wurde, können Sie einen benutzerdefinierten Scorer aufrufen, der von der e1071e1071 Bibliothek bereitgestellt wird.

Um die Bewertung in einer separaten Instanz des Execute R Script-Moduls auszuführen, müssen Sie jedoch die zippede Datei bereitstellen, die die e1071 Bibliothek als Eingabe für das Bewertungsmodul enthält, und die Bibliothek laden. Das liegt daran, dass jedes Modul unabhängig in einem Container ausgeführt wird.

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

Alle R-Module, die in einem einzelnen Experiment enthalten sind, müssen dieselbe Version der R-Laufzeit verwenden. Sie können keine Versionen von R kombinieren, z. B. die Verwendung von CRANR in einem Modul und Microsoft R Open in einem anderen.

Schreiben einer Grafikdatei

Obwohl Studio (klassisch) die Anzeige von PNG-Dateien mithilfe des R-Geräteausgabeports unterstützt, möchten Sie möglicherweise die Ergebnisse als PDF-Datei in einem Blob in Azure Storage generieren, um die Berichterstellung zu verwenden.

In diesem Beispiel wird veranschaulicht, wie Sie das Execute R-Skript verwenden, um ein Diagramm als PDF-Datei zu generieren.

  1. Fügen Sie dem Experiment das Execute R-Skript hinzu.

  2. Erstellen Sie die grundlegende PDF-Datei als Teil Ihres R-Skripts, und geben Sie die Base64-codierte Zeichenfolge der PDF-Datei aus dem Execute R Script-Modul zurück.

    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. Übergeben Sie diese Ausgabe an ein Exportdatenmodul , und speichern Sie die Binärwerte im Azure-Blobspeicher.

Übergeben von R-Objekten zwischen Execute R Script-Modulen

Sie können R-Objekte zwischen Instanzen des Moduls Execute R Script übergeben, indem Sie den internen Serialisierungsmechanismus verwenden. Bei diesem Beispiel wird davon ausgegangen, dass Sie das R-Objekt mit dem Namen A zwischen zwei Execute R Script-Modulen verschieben möchten.

  1. Fügen Sie dem Experiment das erste Execute R Script-Modul hinzu, und geben Sie den folgenden Code im Textfeld R Script ein, um ein serialisiertes Objekt A als Spalte in der Ausgabedatentabelle des Moduls zu erstellen:

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

    Die explizite Konvertierung in ganzzahliger Art ist erforderlich, da die Serialisierungsfunktion Daten im R-Format Raw ausgibt, die von Machine Learning nicht unterstützt wird.

  2. Fügen Sie eine zweite Instanz des Moduls Execute R Script hinzu, und verbinden Sie sie mit dem Ausgangsport des vorherigen Moduls.

  3. Geben Sie den folgenden Code in das Textfeld R Script ein, um das Objekt A aus der Eingabedatentabelle zu extrahieren.

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

Installieren neuer R-Pakete

Sie können R-Pakete hinzufügen, die nicht standardmäßig in Machine Learning installiert sind. Das Hinzufügen neuer Pakete erfordert folgende Schritte:

  • Rufen Sie die Windows Binärdateien für das Paket im zipped-Format ab.
  • Zipieren Sie das gewünschte Paket und alle Abhängigkeiten in eine neue komprimierte Archivdatei mit der .ZIP-Erweiterung.
  • Hochladen die zippede Datei als Dataset für Ihren Arbeitsbereich.
  • Verbinden das neue Dataset im Execute R Script Modul.
  • Installieren Sie das Paket mithilfe des R-Skripts in einem Modul.

Im folgenden Verfahren wird zusammen mit ihren Abhängigkeiten ein neues Paket hinzugefügt.

  1. Laden Sie die zipierte Datei für das Paket herunter, das Sie in Machine Learning importieren möchten. Achten Sie darauf, die Windows Version der zippeden Datei abzurufen.

    Hinweis

    Wenn Sie bereits das R-Paket extrahiert haben, das Sie in Ihrem Arbeitsbereich verwenden möchten, müssen Sie entweder das Paket erneut zippen oder die ursprüngliche ZIP-Datei bereitstellen, wenn Sie das R-Paket in Studio (klassisch) hochladen können.

  2. Suchen Sie nach Abhängigkeiten, und wenn das Paket andere Pakete benötigt, die sich nicht bereits in Azure ML Studio (klassisch) befinden, laden Sie sie im zipped-Format herunter, und fügen Sie sie der Archivdatei hinzu.

  3. Klicken Sie mit der rechten Maustaste auf die komprimierte Datei für das Paket, das Sie hochladen möchten, sowie auf dessen Abhängigkeiten, klicken Sie auf "Senden", und wählen Sie dann " Komprimiert" (zipped) aus.

    Tipp

    Der komprimierte Ordner sollte mindestens eine komprimierte Datei mit dem Zielpaket enthalten und zusätzliche ZIP-Dateien enthalten, die erforderliche Pakete enthalten.

  4. Hochladen die einzelne ZIP-Datei, die alle Pakete (sowie alle optionalen R-Codedateien oder Datendateien) an Ihren Studio-Arbeitsbereich (klassischen) Arbeitsbereich enthält.

    So laden Sie ein Dataset hoch: Klicken Sie auf "Neu", klicken Sie auf "Dataset", und wählen Sie dann "Aus lokaler Datei " und die Option " Zip-Datei " aus.

  5. Öffnen Sie die Liste "Gespeicherte Datasets ", klicken Sie auf "Meine Datasets", und überprüfen Sie, ob die zippede Datei verfügbar ist.

  6. Ziehen Sie es in Ihr Experiment, klicken Sie mit der rechten Maustaste auf das Dataset, und wählen Sie "Visualisieren " aus, um die Dateien anzuzeigen, die im zippeden Ordner enthalten sind. Die Dateinamen, die in der Liste "Inhalt " angezeigt werden, sind die Namen, auf die Sie verweisen müssen, wenn Sie das Paket installieren.

    Angenommen, Sie hatten eine Datei namens hochgeladen, die drei R-Pakete namens NewRPackage.zip001.zip, 002.zipund 003.zip. In der Datasets-Liste wäre NewRPackage.zipder Name des Datasets , mit Inhalt 001.zip, 002.zipund .003.zip

  7. Verbinden das Dataset (NewRPackage.zip) an den Script Bundle-Eingabeport.

    An diesem Punkt wird der äußere ZIP-Ordner in den Arbeitsbereichs-Sandkasten extrahiert, im Pfad src. Sie hätten jetzt die folgenden Pakete zur Verfügung:

    • src\001.zip
    • src\002.zip
    • src\003.zip
  8. Um die R-Pakete zu installieren, extrahieren Sie jedes Paket aus seiner ZIP-Datei, und laden Sie dann die enthaltene Bibliothek.

    Angenommen, die Datei src\001.zip enthält das benutzerdefinierte R-Paket code001, sie würden das folgende Skript ausführen:

    # 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. Wiederholen Sie den Installationsvorgang für alle erforderlichen Pakete.

    # 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)  
    

    Hinweis

    Wenn Abhängigkeiten zwischen mehreren Paketen installiert werden, müssen Sie zuerst erforderliche Pakete installieren oder möglicherweise einen Fehler erhalten.

Die Installation aller R-Pakete muss im Rahmen des Experiments ausgeführt werden, um sicherzustellen, dass alle erforderlichen Pakete im Arbeitsbereich enthalten sind, der an die Azure-Auftragswarteschlange gesendet wird, wenn Ihr Experiment ausgeführt wird.

Pakete in einem Arbeitsbereich werden nach dem Ausführen des Experiments oder nach dem Schließen der Sitzung nicht beibehalten. Alle Pakete, die Sie als komprimierte Dateien hochgeladen haben, können jedoch schnell extrahiert und verwendet werden, wenn Sie das Experiment erneut ausführen.

Technische Hinweise

Optimieren der R-Leistung in Studio (klassisch)

Der aktuelle Standardarbeitsspeicher ist 14 GB. Möglicherweise wird eine "Nicht genügend Arbeitsspeicher"-Fehlermeldung erzeugt, wenn Sie versuchen, sehr große Datenrahmen mithilfe des Moduls Execute R Script zu bearbeiten.

Um die Größe des Arbeitsspeichers zu erhöhen, der von einem R-Skript verwendet wird, können Sie am Anfang des Skripts eine Zeile wie die folgende hinzufügen:

memory.limit(56000)  

Der vom Benutzer angegebene R-Code wird von einem 64-Bit-R-Dolmetscher ausgeführt, der in Azure mit einem virtuellen A8-Computer mit 56 GB RAM ausgeführt wird. Um die Geschwindigkeit Ihres R-Codes zu erhöhen, können Sie den just-in-time-Compiler verwenden, der im vorinstallierten Compilerpaket bereitgestellt wird.

Konvertieren von Datentypen zwischen R und Studio (klassisch)

In der folgenden Tabelle wird gezeigt, wie die Datentypen in R den Datentypen in Machine Learning entsprechen:

R-Typ Studio (klassischer) Typ
Integer Integer
Double Double
Complex Complex

Dieser Typ wird von nur einer Teilmenge von Modulen unterstützt.
Logisch Boolean
Zeichen String
Raw Nicht unterstützt
Difftime TimeSpan
factor Kategorisch
data.frame dataset

Spalten des Datentyps lists in R können nicht konvertiert werden, da die Elemente in diesen Spalten möglicherweise unterschiedliche Typen und Größen haben. Beispielsweise schlägt der folgende gültige R-Code fehl, wenn im Execute R Script-Modul verwendet wird:

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

Konvertieren von Datumszeitwerten

Machine Learning Studio (klassische) verwendet unterschiedliche Datumszeittypen als R. Wenn die von Ihnen analysierten Daten Datums- oder Uhrzeitdaten enthalten, sollten Sie sich die folgenden Konvertierungsanforderungen beim Portieren vorhandener R-Code in Studio (klassisch) bewusst sein:

Konvertieren von Machine Learning Studio (klassisch) in R

DateTime-Spalten werden in POSIXct-Vektoren konvertiert. Jedes Einzelelement des sich ergebenden Vektors ist jedoch eine Anzahl von Sekunden seit 1970-01-01T00:00:00.

Bei dieser Konvertierung werden keine Zeitzonenanpassungen vorgenommen.

Konvertieren von R in Studio (klassisch)

POSIXct-Vektoren werden in DateTime-Spalten in der UTC-Zeitzone konvertiert.

2011-03-27 01:30:00 PDT wird beispielsweise in 2011-03-27T08:30:00Z konvertiert, wobei Z für die Angabe der Zeit in UTC steht.

Tipp

Bei Verwendung von Zeiten innerhalb des Moduls Execute R Script müssen Sie die Zeitstempel explizit angeben. Der im Modul Execute R Script gehostete R-Interpreter hat keinen Zugriff auf Definitionen lokaler Zeitzonen.

Netzwerk

Aus Sicherheitsgründen werden alle Netzwerkverbindungen/-aktionen aus oder in R-Code in Execute R Script-Modulen von Azure blockiert. Außerdem wird, von wenigen Ausnahmen abgesehen, der Zugriff auf lokale Ports aus dem Modul Execute R Script blockiert.

Parallele Ausführung

Derzeit wird die parallele Ausführung mit mehreren Threads nicht unterstützt.

Erwartete Eingaben

Name type BESCHREIBUNG
Dataset1 Datentabelle Eingabedataset 1
Dataset2 Datentabelle Eingabedatensatz 2
Skriptbündel Zip Satz aus R-Quellen

Modulparameter

Name Range type Standard BESCHREIBUNG
R-Skript Any StreamReader Geben Sie einen StreamReader an, der auf R-Skriptressourcen zeigt.
Random Seed >=0 Integer Definieren eines zufälligen Ausgangswerts zur Verwendung in der R-Umgebung.

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

Dieser Parameter ist optional.

Ausgaben

Name type BESCHREIBUNG
Ergebnisdataset Datentabelle Ausgabedataset
R Device Datentabelle Konsolenausgabe und PNG-Grafikgerät aus dem R-Interpreter

Siehe auch

R Language Modules
Create R Model
Modulkategorien und -beschreibungen
Python-Sprachmodule