Freigeben über


Create R Model

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.

Erstellt ein R-Modell mithilfe von benutzerdefinierten Ressourcen.

Kategorie: Datentransformation/-bearbeitung

Hinweis

Gilt 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 Modul R-Modell erstellen in Machine Learning Studio (klassisch) verwenden, um ein untrainiertes Modell aus einem R-Skript zu erstellen.

Sie können das Modell auf grundlage jedes Lernmodells erstellen, das in einem R-Paket in der Machine Learning ist.

Nachdem Sie das Modell erstellt haben, können Sie das Modell mit Train Model (Modell trainieren) wie jeder andere Lerner in diesem Machine Learning. Das trainierte Modell kann an Score Model übergeben werden, um es zum Treffen von Vorhersagen zu verwenden. Anschließend können Sie das trainierte Modell speichern und den Bewertungsworkflow als Webdienst veröffentlichen.

Warnung

Derzeit ist es nicht möglich, die bewerteten Ergebnisse eines R-Modells an Evaluate Model oderCross-Validate Model zu übergeben. Wenn Sie ein Modell auswerten müssen, können Sie ein benutzerdefiniertes R-Skript schreiben und es mit dem Modul Execute R Script ausführen.

Zusätzlich zum Erstellen eines R-Modells zum Speichern und wiederververnennen von benutzerdefinierten R-Modulen können Sie ihre eigene Implementierung eines Modellierungs- und Datenverwaltungsprozesses mithilfe von R erstellen, die Dateien im ZIP-Format in Ihren Arbeitsbereich hochladen und das Paket dann als benutzerdefiniertes Modul registrieren. Weitere Informationen finden Sie unter Benutzerdefinierte R-Module.

Konfigurieren von "R-Modell erstellen"

Die Verwendung dieses Moduls erfordert Zwischen- oder Expertenkenntnisse in R. Das Modul unterstützt die Verwendung beliebiger Lernmodule, die in den R-Paketen enthalten sind, die bereits in Machine Learning.

Dieses Beispiel aus dem Azure KI-Katalog implementiert einen naiven Naive Bayes-Klassifizierer e1070 mit zwei Klassen, indem das beliebte Paket verwendet wird: + R-Modell erstellen. Es wird empfohlen, das Beispiel in Ihren Arbeitsbereich zu kopieren und die Anweisungen zu befolgen.

  1. Fügen Sie Ihrem Experiment die folgenden Module hinzu: R-Modell erstellen, Modell trainieren, Modellbewertung.

  2. Geben Sie im Bereich Eigenschaften von R-Modell erstellen die folgenden Skripts an:

    • Trainer R-Skript: Das R-Skript, das Sie hier bereitstellen, wird zum Trainieren des Modells verwendet. Wenn Sie das Experiment ausführen, wird es im Modul Train Model bereitgestellt.

    • Scorer R-Skript: Das R-Skript, das Sie für diese Eingabe bereitstellen, ist nur für die Bewertung. Wenn Sie das Experiment ausführen, wird es im Modul Score Model bereitgestellt.

  3. Das Beispielexperiment enthält auch das Modul Execute Python Script , das zum Zeichnen von Diagrammen für die Modellauswertung verwendet wird. Dieses Modul ist optional, wenn es in einem Webdienst veröffentlicht wird, aber beim Entwickeln des Experiments nützlich ist.

    • Klicken Sie zum Anzeigen der Diagramme aus dem Python-Skript mit der rechten Maustaste auf das Python-Modul, wählen Sie Python-Gerät und dann Visualisieren aus.
    • Um nur die Modellmetriken anzuzeigen, klicken Sie mit der rechten Maustaste auf das Python-Modul, wählen Sie Python-Dataset und dann Visualisieren aus.

    Den Code im optionalen Python-Modul finden Sie unter Python-Modul für die Modellauswertung.

Trainingsskript

Im folgenden Beispiel wird der Codetyp veranschaulicht, den Sie im Trainer R-Skript verwenden können.

Dieses Skript lädt ein R-Paket, erstellt ein Modell mithilfe eines Learners aus dem Paket und konfiguriert die Feature- und Bezeichnungsspalten mithilfe der vordefinierten Konstanten und Funktionen, die unter Erstellen eines R-Modells bereitgestellt werden.

library(e1071)
features <- get.feature.columns(dataset)
labels   <- as.factor(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)
  • Die erste Zeile lädt das R-Paket {1>e1071<1}, das den Naïve Bayes-Klassifizierungsalgorithmus enthält, den wir verwenden möchten. Da dies eines der Pakete ist, die in der Machine Learning-Umgebung vorinstalliert sind, müssen Sie das Paket nicht herunterladen oder installieren.

  • Die nächsten Zeilen erhalten die Featurespalten und die Bezeichnungsspalte aus dem Dataset und kombinieren sie in einem neuen R-Datenrahmen mit dem Namen train.data:

    features <- get.feature.columns(dataset)   
    labels <- as.factor(get.label.column(dataset))   
    train.data <- data.frame(features, labels)
    feature.names <- get.feature.column.names(dataset)
    
  • Beachten Sie die Verwendung dieser vordefinierten Funktionen:

    • get.label.columns() gibt die Spalte zurück, die im Modul Train Model als Klassenbezeichnung ausgewählt ist.

    • get.feature.columns()wählt die Spalten aus, die als Features im Dataset festgelegt wurden.

      Standardmäßig werden alle Spalten außer der Bezeichnungsspalte als Features in Studio (klassisch) betrachtet. Um bestimmte Spalten als Features zu markieren, verwenden Sie daher Edit Metadata (Metadaten bearbeiten), oder wählen Sie eine Gruppe von Spalten im R-Skript aus.

    • get.feature.column.names(dataset) ruft Funktionsspaltennamen aus dem Dataset ab.

  • Die Namen aus dem kombinierten Dataset werden als Namen für Spalten in train.dataClass festgelegt, und für die Bezeichnungsspalte wird ein temporärer Name erstellt.

    names(train.data) <- c(feature.names, "Class")
    
  • In der letzten Codezeile wird der Naive Bayes-Klassifizierungsalgorithmus als Funktion der Variablen (Features) und Ergebnisse (Bezeichnungen) im Datenrahmen train.data definiert.

    model <- naiveBayes(Class ~ ., train.data)
    
  • Während der erstellungs-, trainings- und bewertungsskripts des Modells müssen Sie den Variablennamen verwenden model.

„Scoring script“ (Bewertungsskript)

Der folgende Code veranschaulicht den Typ von R-Code, den Sie im Scorer R-Skript bereitstellen würden.

library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
  • Die erste Zeile lädt das Paket.

  • Die zweite Zeile berechnet die vorhergesagten Wahrscheinlichkeiten für das Bewertungs-Dataset mithilfe des trainierten Modells aus dem Trainingsskript, das durch den erforderlichen Variablennamen festgelegt wird. model

  • Die dritte Zeile wendet beim Zuweisen der vorhergesagten Klassenbezeichnungen einen Schwellenwert von 0,5 auf Wahrscheinlichkeiten an.

  • Die letzte Zeile kombiniert die Klassenbezeichnungen und Wahrscheinlichkeiten im ausgegebenen Datenrahmen scores.

  • Der Datenrahmen, der an das Modul Score Model übergeben wird, muss den Namen haben scores.

Optionales Python-Evaluierungsskript

Das Beispielexperiment in der Azure KI-Katalog enthält das folgende Python-Skript, das zum Generieren von Metriken und Diagrammen für die Modellauswertung verwendet wird.

def azureml_main(dataframe):
    import matplotlib
    matplotlib.use("agg")
    
    from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, roc_curve
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    scores = dataframe.ix[:, ("Class", "classes", "probabilities")]
    ytrue = scores["Class"]
    ypred = np.array([float(val) for val in scores["classes"]])    
    probabilities = scores["probabilities"]
    
    accuracy, precision, recall, auc = \
    accuracy_score(ytrue, ypred),\
    precision_score(ytrue, ypred),\
    recall_score(ytrue, ypred),\
    roc_auc_score(ytrue, probabilities)
    
    metrics = pd.DataFrame();
    metrics["Metric"] = ["Accuracy", "Precision", "Recall", "AUC"];
    metrics["Value"] = [accuracy, precision, recall, auc]

# Plot ROC Curve
    fpr, tpr, thresholds = roc_curve(ytrue, probabilities)
    fig = plt.figure()
    axis = fig.gca()
    axis.plot(fpr, tpr, linewidth=8)
    axis.grid("on")
    axis.set_xlabel("False positive rate")
    axis.set_ylabel("True positive rate")
    axis.set_title("ROC Curve")
    fig.savefig("roc.png")

    return metrics,

Veröffentlichen des benutzerdefinierten R-Modellworkflows als Webdienst

Nachdem Sie das Experiment ausgeführt haben, können Sie das vollständige Experiment als Webdienst veröffentlichen.

Aktualisierte Anweisungen zum Erstellen eines Webdiensts aus einem (klassischen) Studio-Experiment finden Sie unter Exemplarische Vorgehensweise Schritt 5: Bereitstellen des Machine Learning Webdiensts.

Standardmäßig erwartet der Webdienst, dass alle Eingabespalten aus den Trainingsdaten bereitgestellt werden, einschließlich der Bezeichnungsspalte. Sie können eine Instanz von Select Columns in Dataset zwischen der Eingabedatenquelle und dem Modul Score Model hinzufügen, um die Bezeichnung auszuschließen, die Sie vorhersagen möchten.

Technische Hinweise

  • Das Modul R-Modell erstellen unterstützt nur die Verwendung von CRAN R. Sie können keine andere Version von R auswählen oder Microsoft R Open verwenden.

  • Das Modell wird nach der ersten Ausführung des Moduls zwischengespeichert, und das Modul wird bei folgenden Ausführungen nicht mehr aufgerufen, bis Änderungen in Eingabeskripts vorgenommen werden. Bitte berücksichtigen Sie dieses Verhalten, wenn Ihre R-Skripts eines der folgenden Elemente verwenden:

    • Funktionen, die Zufallszahlen generieren
    • Funktionen, die Zufallszahlen generieren
    • Andere nicht deterministische Funktionen
  • Benutzerdefinierte R-Modelle, die mit diesem Modul erstellt wurden, können nicht mit diesen Modulen verwendet werden:

  • R-Modelle führen nicht automatisch Merkmalsnormalisierungen kategorischer Daten durch und verarbeiten keine fehlenden Werte. Die Behandlung solcher Variablen sollte innerhalb des Trainings- und des Bewertungs-R-Skripts erfolgen.

Tabelle mit vordefinierten Funktionen

Verwendung BESCHREIBUNG
get.feature.columns(dataset) Ruft alle Funktionsspalten ab.
get.label.column(dataset, label.type=TrueLabelType) Ruft die Bezeichnungsspalte ab, wenn der Typ angegeben ist.

Eine Liste der verfügbaren Typen finden Sie im Abschnitt Konstanten.
get.label.column.names(dataset) Ruft die Namen aller Bezeichnungsspalten ab.
get.label.column.name(dataset, label.type=TrueLabelType) Ruft den Namen der Bezeichnungsspalte ab, wenn der Typ angegeben ist.

Eine Liste der verfügbaren Typen finden Sie im Abschnitt Konstanten.
get.label.column.types(dataset) Ruft die Typen aller Bezeichnungsspalten ab.
get.feature.column.names(dataset) Ruft die Namen aller Funktionsspalten ab.
dataset < - set.score.column(dataset, score.type, column.name) Legt die Bewertungsspalte fest, wenn ein Typ angegeben ist.

Eine Liste der verfügbaren Typen finden Sie im Abschnitt Konstanten.
dataset < - set.feature.channel(dataset, channel.name, column.names) Legt den Funktionskanal fest, wenn ein Name angegeben ist.

Eine Liste der verfügbaren Namen finden Sie im Abschnitt Konstanten.

Tabelle mit vordefinierten Konstanten

Konstante Beschreibung
TrueLabelType Bezeichnungsspaltentyp True
ScoredLabelType Bezeichnungsspaltentyp Scored
RawScoreType Bewertungsspaltentyp Raw
CalibratedScoreType Bewertungsspaltentyp Kalibriert
ScoredProbabilitiesMulticlassColumnTypePattern Das Muster zur Vorbereitung des Spaltentyps bewerteter Wahrscheinlichkeiten für einen mehrklassigen Klassifizierer
BayesianLinearRegressionScoresFeatureChannel Der Name des Funktionskanals mit linearen Bayes-Regressions-Bewertungen
BinaryClassificationScoresFeatureChannel Der Name des Funktionskanals mit binären Klassifizierungsbewertungen
MulticlassClassificationScoresFeatureChannel Der Name des Funktionskanals mit mehrklassigen Klassifizierungsbewertungen
OrdinalRegressionScoresFeatureChannel Der Name des Funktionskanals mit ordinalen Regressions-Bewertungen
RegressionScoresFeatureChannel Der Name des Funktionskanals mit Regressions-Bewertungen

Beispiele

Weitere Beispiele für die Verwendung dieses Moduls in Machine Learning-Experimenten finden Sie im Azure KI-Katalog.

Erwartete Eingaben

Name Type Beschreibung
Trainer-R-Skript Skript Ein R-Skript, das ein Dataset als Eingabe akzeptiert und ein untrainiertes Modell ausgibt.
Bewerter-R-Skript Skript Ein R-Skript, das ein Modell und ein Dataset als Eingabe akzeptiert und im Skript angegebenen Bewertungen ausgibt.

Ausgaben

Name Type BESCHREIBUNG
Modell ILearner-Schnittstelle Ein untrainiertes Modell

Siehe auch

Ausführen von R-Skripts
R Language Modules