Partager via


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.

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.

  1. Ajoutez ces modules à votre expérience : créer un modèle R, former un modèle, noter le modèle.

  2. 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 .

  3. 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 nom Class 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é

Voir aussi

Exécuter un script R
Modules linguistiques R