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.
- Siehe Migrieren zu Azure Machine Learning
- Weitere Informationen zu Azure Machine Learning.
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.
Fügen Sie Ihrem Experiment die folgenden Module hinzu: R-Modell erstellen, Modell trainieren, Modellbewertung.
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.
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.data
Class
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 |