Create R Model
Important
Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.
À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.
- Consultez les informations sur le déplacement des projets de machine learning de ML Studio (classique) à Azure Machine Learning.
- En savoir plus sur Azure Machine Learning.
La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.
Crée un modèle de R à l'aide de ressources personnalisées
Catégorie : transformation/manipulation des données
Notes
s’applique à: Machine Learning Studio (classic) uniquement
Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.
Vue d’ensemble du module
cet article explique comment utiliser le module créer un modèle r dans Machine Learning Studio (classic) pour créer un modèle non formé à partir d’un script R.
vous pouvez baser le modèle sur n’importe quel apprenant inclus dans un package R dans l’environnement Machine Learning.
Après avoir créé le modèle, vous pouvez utiliser train Model pour effectuer l’apprentissage du modèle sur un jeu de données, comme n’importe quel autre apprenant dans machine learning. Le modèle formé peut être transmis au module Score Model pour utiliser le modèle afin d’effectuer des prédictions. Le modèle formé peut ensuite être enregistré et le workflow de notation publié en tant que service web.
Avertissement
Actuellement, il n’est pas possible de passer les résultats notés d’un modèle R pour évaluer le modèle ou effectuer la validation croisée du modèle. Si vous devez évaluer un modèle, vous pouvez écrire un script R personnalisé et l’exécuter à l’aide du module exécuter le script r .
En plus d’utiliser l’outil créer un modèle r pour enregistrer et réutiliser des modules r personnalisés, vous pouvez créer votre propre implémentation d’un processus de modélisation et de gestion des données à l’aide de R, télécharger les fichiers au format zippé dans votre espace de travail, puis enregistrer le package en tant que module personnalisé. Pour plus d’informations, consultez modules R personnalisés.
Comment configurer créer un modèle R
L’utilisation de ce module nécessite une connaissance intermédiaire ou expert de R. Le module prend en charge l’utilisation de tout apprentissage inclus dans les packages R déjà installés dans Machine Learning.
Cet exemple du Azure ai Gallery implémente un classifieur Naïve Bayes à deux classes à l’aide du package célèbre e1070
: + Create R Model. Nous vous recommandons de copier l’exemple dans votre espace de travail et de suivre la procédure.
Ajoutez ces modules à votre expérience : créer un modèle R, former un modèle, noter le modèle.
Dans le volet Propriétés de Create R Model, fournissez les scripts suivants :
Script rde l’instructeur : le script r que vous fournissez ici est utilisé pour l’apprentissage du modèle. Lorsque vous exécutez l’expérience, elle est déployée dans le module former le modèle .
Script r du score: le script r que vous fournissez sur cette entrée est réservé au calcul de score. Lorsque vous exécutez l’expérience, elle est déployée dans le module noter le modèle .
L’exemple d’expérience inclut également le module exécuter le script Python , qui est utilisé pour tracer des graphiques pour l’évaluation du modèle. Ce module est facultatif lors de la publication sur un service Web, mais utile lors du développement de l’expérience.
- Pour afficher les graphiques à partir du script Python, cliquez avec le bouton droit sur le module Python, sélectionnez appareil python, puis sélectionnez visualiser.
- Pour afficher uniquement les métriques du modèle, cliquez avec le bouton droit sur le module Python, sélectionnez jeu de données python, puis sélectionnez visualiser.
Pour obtenir le code dans le module python facultatif, consultez module Python pour l’évaluation du modèle.
Script d’entraînement
L’exemple suivant illustre le type de code que vous pouvez utiliser dans le script Rde l’instructeur.
Ce script charge un package R, crée un modèle à l’aide d’un apprenant à partir du package et configure les colonnes de fonctionnalités et d’étiquettes à l’aide des constantes et fonctions prédéfinies fournies dans Create R Model.
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)
La première ligne charge le package R, e1071, qui contient l'algorithme de classifieur Naïve Bayes que nous souhaitons utiliser. étant donné qu’il s’agit de l’un des packages préinstallés dans l’environnement Machine Learning, vous n’avez pas besoin de télécharger ou d’installer le package.
Les lignes suivantes récupèrent les colonnes de fonctionnalités et la colonne d’étiquette du DataSet, et les combinent dans une nouvelle trame de données R nommée
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)
Notez l’utilisation des fonctions prédéfinies suivantes :
get.label.columns()
retourne la colonne sélectionnée comme étiquette de classe dans le module former le modèle .get.feature.columns()
sélectionne les colonnes qui ont été désignées en tant que fonctionnalités dans le jeu de données.Par défaut, toutes les colonnes à l’exception de la colonne d’étiquette sont considérées comme des fonctionnalités de Studio (Classic). Par conséquent, pour marquer des colonnes spécifiques en tant que fonctionnalités, utilisez modifier les métadonnéesou sélectionnez un ensemble de colonnes dans le script R.
get.feature.column.names(dataset)
Obtient les noms des colonnes de fonctionnalités à partir du DataSet.
Les noms du dataset combiné sont désignés comme les noms des colonnes dans
train.data
et un nomClass
temporaire est créé pour la colonne étiquette.names(train.data) <- c(feature.names, "Class")
La dernière ligne du code définit l’algorithme de classifieur Naïve Bayes comme une fonction des variables (fonctionnalités) et des résultats (étiquettes) dans la
train.data
trame de données.model <- naiveBayes(Class ~ ., train.data)
Dans les scripts de création, d’apprentissage et de notation des modèles, vous devez utiliser le nom
model
de la variable.
Script de scoring
Le code suivant illustre le type de code R que vous fournissez dans le script r du score.
library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
La première ligne charge le package.
La deuxième ligne calcule les probabilités prédites pour le jeu de données de notation à l’aide du modèle formé du script de formation, désigné par le nom de variable requis,
model
.La troisième ligne applique un seuil de 0,5 aux probabilités lors de l'attribution des étiquettes de classe prévue.
La dernière ligne combine les étiquettes de classe et les probabilités dans la trame de données de sortie,
scores
.La trame de données qui est transmise au module noter le modèle doit avoir le nom
scores
.
Script d’évaluation python facultatif
L’exemple d’expérience de la Azure AI Gallery inclut le script Python suivant, utilisé pour générer des métriques et des graphiques pour l’évaluation du modèle.
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,
Publier le flux de travail du modèle R personnalisé en tant que service Web
Après avoir exécuté l’expérience, vous pouvez publier l’expérience complète en tant que service Web.
pour obtenir des instructions mises à jour sur la création d’un service web à partir d’une expérience Studio (classique), consultez étape 5 de la procédure pas à pas : déployer le service web Machine Learning
Par défaut, le service web attend que toutes les colonnes d'entrée de données d'apprentissage soient fournies, y compris la colonne d'étiquette. Vous pouvez ajouter une instance de Select Columns dans un jeu de données entre la source de données d’entrée et le module noter le modèle pour exclure l’étiquette que vous essayez de prédire.
Notes techniques
Le module créer un modèle r prend en charge l’utilisation de cran R uniquement. Vous ne pouvez pas sélectionner une autre version de R ou utiliser Microsoft R Open.
Le modèle est mis en cache après la première exécution du module et le module n'est pas appelé dans les exécutions suivantes jusqu'à ce qu'une modification soit apportée aux scripts d'entrée. Veuillez prendre ce comportement en considération si vos scripts R utilisent l'une des fonctions suivantes :
- Fonctions qui génèrent des nombres aléatoires
- Fonctions qui génèrent des nombres aléatoires
- Autres fonctions non-déterministes
Les modèles R personnalisés créés avec ce module ne peuvent pas être utilisés avec ces modules :
Les modèles R n'effectuent pas automatiquement la normalisation des fonctionnalités de données catégorielles ni la gestion des valeurs manquantes. La gestion de ces variables doit être effectuée dans les scripts R de formation et de score.
Tableau des fonctions prédéfinies
Usage | Description |
---|---|
get.feature.columns(dataset) |
Obtient toutes les colonnes de fonctionnalités. |
get.label.column(dataset, label.type=TrueLabelType) |
Obtient la colonne d'étiquette, selon le type. Consultez la section Constantes pour obtenir la liste des types disponibles. |
get.label.column.names(dataset) |
Obtient les noms de toutes les colonnes d'étiquettes. |
get.label.column.name(dataset, label.type=TrueLabelType) |
Obtient le nom de la colonne d'étiquette, selon le type. Consultez la section Constantes pour obtenir la liste des types disponibles. |
get.label.column.types(dataset) |
Obtient les types de toutes les colonnes d'étiquettes. |
get.feature.column.names(dataset) |
Obtient les noms de toutes les colonnes de fonctionnalités. |
dataset < - set.score.column(dataset, score.type, column.name) |
Définit la colonne de score, selon un type. Consultez la section Constantes pour obtenir la liste des types disponibles. |
dataset < - set.feature.channel(dataset, channel.name, column.names) |
Définit le canal de fonctionnalités, selon un nom. Consultez la section Constantes pour obtenir la liste des noms disponibles. |
Tableau des constantes prédéfinies
Constante | Description |
---|---|
TrueLabelType | Type de colonne d'étiquette True |
ScoredLabelType | Type de colonne d'étiquette noté |
RawScoreType | Type de colonne de score brut |
CalibratedScoreType | Type de colonne de score étalonné |
ScoredProbabilitiesMulticlassColumnTypePattern | Modèle pour préparer le type de colonne des probabilités notées pour un classifieur multiclasse |
BayesianLinearRegressionScoresFeatureChannel | Nom du canal de fonctionnalités avec des scores de régression linéaire bayésienne |
BinaryClassificationScoresFeatureChannel | Nom du canal de fonctionnalités avec des scores de classification binaire |
MulticlassClassificationScoresFeatureChannel | Nom du canal de fonctionnalités avec des scores de classification multiclasse |
OrdinalRegressionScoresFeatureChannel | Nom du canal de fonctionnalités avec des scores de régression ordinale |
RegressionScoresFeatureChannel | Nom du canal de fonctionnalités avec des scores de régression |
Exemples
Pour obtenir des exemples supplémentaires sur l’utilisation de ce module dans Machine Learning des expériences, consultez la Azure ai Gallery.
Entrées attendues
Nom | Type | Description |
---|---|---|
Script R du formateur | Script | Script R qui prend un jeu de données comme entrée et génère un modèle non formé. |
Script R de l'évaluateur | Script | Script R qui prend un modèle et un jeu de données comme entrée et génère les scores spécifiés dans le script. |
Sorties
Nom | Type | Description |
---|---|---|
Modèle | Interface ILearner | Modèle non formé |