Create R Model
Importante
Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.
A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).
- Vedere leinformazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni sulle Azure Machine Learning.
La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.
Crea un modello R usando risorse personalizzate
Categoria: Trasformazione/Manipolazione dei dati
Nota
Si applica a: Machine Learning Studio (versione classica)
Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.
Panoramica del modulo
Questo articolo descrive come usare il modulo Create R Model (Crea modello R) in Machine Learning Studio (versione classica) per creare un modello senza training da uno script R.
È possibile basare il modello su qualsiasi apprendimento incluso in un pacchetto R nell'Machine Learning virtuale.
Dopo aver creato il modello, è possibile usare Train Model (Training modello) per eseguire il training del modello su un set di dati, come qualsiasi altro strumento Machine Learning. Il modello con training può essere passato a Score Model per usare il modello per eseguire stime. Il modello con training può quindi essere salvato e il flusso di lavoro per l'assegnazione dei punteggi può essere pubblicato come servizio Web.
Avviso
Attualmente non è possibile passare i risultati con punteggio di un modello R a Evaluate Model o Cross-Validate Model. Se è necessario valutare un modello, è possibile scrivere uno script R personalizzato ed eseguirlo usando il modulo Execute R Script (Esegui script R).
Oltre a usare Il modello R per salvare e usare di nuovo i moduli R personalizzati, è possibile creare un'implementazione personalizzata di un processo di modellazione e gestione dei dati usando R, caricare i file in formato compresso nell'area di lavoro e quindi registrare il pacchetto come modulo personalizzato. Per altre informazioni, vedere Moduli R personalizzati.
Come configurare La creazione di un modello R
L'uso di questo modulo richiede una conoscenza intermedia o esperta di R. Il modulo supporta l'uso di qualsiasi strumento di apprendimento incluso nei pacchetti R già installati in Machine Learning.
Questo esempio della Azure AI Gallery implementa un classificatore Naive Bayes a due classi usando il pacchetto e1070
comune: + Create R Model (+ Crea modello R). È consigliabile copiare l'esempio nell'area di lavoro e seguire la procedura.
Aggiungere questi moduli all'esperimento: Create R Model(Crea modello R), Train Model (Training modello), Score Model (Punteggio modello).
Nel riquadro Proprietà di Crea modello R specificare gli script seguenti:
Script R di training: lo script R fornito qui viene usato per eseguire il training del modello. Quando si esegue l'esperimento, questo viene distribuito nel modulo Train Model (Training modello).
Script R per il punteggio: lo script R fornito in questo input è solo per l'assegnazione dei punteggi. Quando si esegue l'esperimento, questo viene distribuito nel modulo Score Model (Punteggio modello).
L'esperimento di esempio include anche il modulo Execute Python Script (Esegui script Python ), usato per tracciare i grafici per la valutazione del modello. Questo modulo è facoltativo durante la pubblicazione in un servizio Web, ma è utile quando si sviluppa l'esperimento.
- Per visualizzare i grafici dallo script Python, fare clic con il pulsante destro del mouse sul modulo Python, selezionare Dispositivo Python e selezionare Visualizza.
- Per visualizzare solo le metriche del modello, fare clic con il pulsante destro del mouse sul modulo Python, selezionare Python Dataset (Set di dati Python) e selezionare Visualize (Visualizza).
Per il codice nel modulo Python facoltativo, vedere Modulo Python per la valutazione del modello.
Script di training
L'esempio seguente illustra il tipo di codice che è possibile usare nello script R di Trainer.
Questo script carica un pacchetto R, crea un modello usando uno strumento di apprendimento dal pacchetto e configura le colonne di caratteristiche ed etichette usando le costanti e le funzioni predefinite fornite in Creare un modello R.
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 prima riga carica il pacchetto R, e1071, che contiene l'algoritmo di classificazione Naïve Bayes che si desidera usare. Poiché si tratta di uno dei pacchetti preinstallati nell'ambiente Machine Learning, non è necessario scaricare o installare il pacchetto.
Le righe seguenti ottengono le colonne delle caratteristiche e la colonna etichetta dal set di dati e le combinano in un nuovo frame di dati R denominato
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)
Si noti l'uso di queste funzioni predefinite:
get.label.columns()
restituisce la colonna selezionata come etichetta di classe nel modulo Train Model .get.feature.columns()
seleziona le colonne designate come caratteristiche nel set di dati.Per impostazione predefinita, tutte le colonne ad eccezione della colonna etichetta sono considerate funzionalità in Studio (versione classica). Pertanto, per contrassegnare colonne specifiche come funzionalità, usare Modifica metadati o selezionare un set di colonne all'interno dello script R.
get.feature.column.names(dataset)
ottiene i nomi delle colonne delle caratteristiche dal set di dati.
I nomi del set di dati combinato vengono designati come nomi per le colonne in
train.data
eClass
viene creato un nome temporaneo per la colonna etichetta.names(train.data) <- c(feature.names, "Class")
La riga finale del codice definisce l'algoritmo di classificazione Naive Bayes come funzione delle variabili (caratteristiche) e dei risultati (etichette)
train.data
nel frame di dati.model <- naiveBayes(Class ~ ., train.data)
Nel corso degli script di creazione, training e assegnazione dei punteggi del modello, è necessario usare il nome della variabile
model
.
Scoring script (Script di assegnazione punteggi)
Il codice seguente illustra il tipo di codice R che è necessario fornire nello script Scorer R.
library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
La prima riga carica il pacchetto.
La seconda riga calcola le probabilità stimate per il set di dati di assegnazione dei punteggi usando il modello con training dallo script di training, designato dal nome della variabile richiesta,
model
.La terza riga applica una soglia di 0,5 alle probabilità durante l'assegnazione delle etichette di classe stimate.
La riga finale combina le etichette di classe e le probabilità nel frame di dati di output
scores
.Il frame di dati che viene passato al modulo Score Model deve avere il nome
scores
.
Script di valutazione Python facoltativo
L'esperimento di esempio nella Azure AI Gallery include lo script Python seguente, usato per generare metriche e grafici per la valutazione del modello.
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,
Pubblicare il flusso di lavoro del modello R personalizzato come servizio Web
Dopo aver eseguito l'esperimento, è possibile pubblicare l'esperimento completo come servizio Web.
Per istruzioni aggiornate su come creare un servizio Web da un esperimento di Studio (versione classica), vedere Passaggio 5 della procedura dettagliata: Distribuire il Machine Learning Web
Per impostazione predefinita, il servizio Web prevede che vengano fornite tutte le colonne di input dei dati di training, inclusa la colonna di etichetta. È possibile aggiungere un'istanza di Select Columns in Dataset tra l'origine dati di input e il modulo Score Model per escludere l'etichetta che si sta tentando di stimare.
Note tecniche
Il modulo Create R Model (Crea modello R ) supporta solo l'uso di CRAN R. Non è possibile selezionare un'altra versione di R o usare Microsoft R Open.
Il modello viene memorizzato nella cache dopo la prima esecuzione del modulo e quest'ultimo non viene richiamato nelle esecuzioni successive fino a quando non vengono apportate modifiche negli script di input. Considerare questo comportamento se gli script R usano uno o più dei seguenti tipi di elementi:
- Funzioni che generano numeri casuali
- Funzioni che generano numeri casuali
- Altre funzioni non deterministiche
I modelli R personalizzati creati con questo modulo non possono essere usati con questi moduli:
- Tune Model Hyperparameters (Ottimizza iperparametri del modello)
- Cross-Validate Model
- One-vs-All Multiclass
- Ordinal Regression
I modelli R non eseguono automaticamente la normalizzazione delle funzioni dei dati categorici né gestiscono i valori mancanti. La gestione di tali variabili deve essere eseguita all'interno degli script R di training e assegnazione dei punteggi.
Tabella delle funzioni predefinite
Utilizzo | Descrizione |
---|---|
get.feature.columns(dataset) |
Ottiene tutte le colonne di funzione. |
get.label.column(dataset, label.type=TrueLabelType) |
Ottiene la colonna di etichetta, dato il tipo. Per un elenco dei tipi disponibili, vedere la sezione Costanti. |
get.label.column.names(dataset) |
Ottiene i nomi di tutte le colonne di etichetta. |
get.label.column.name(dataset, label.type=TrueLabelType) |
Ottiene il nome della colonna di etichetta, dato il tipo. Per un elenco dei tipi disponibili, vedere la sezione Costanti. |
get.label.column.types(dataset) |
Ottiene i tipi di tutte le colonne di etichetta. |
get.feature.column.names(dataset) |
Ottiene i nomi di tutte le colonne di funzione. |
dataset < - set.score.column(dataset, score.type, column.name) |
Imposta la colonna di punteggio, dato un tipo. Per un elenco dei tipi disponibili, vedere la sezione Costanti. |
dataset < - set.feature.channel(dataset, channel.name, column.names) |
Imposta il canale di funzione, dato un nome. Per un elenco dei nomi disponibili, vedere la sezione Costanti. |
Tabella delle costanti predefinite
Costante | Descrizione |
---|---|
TrueLabelType | Tipo di colonna di etichetta true |
ScoredLabelType | Tipo di colonna di etichetta con punteggi |
RawScoreType | Tipo di colonna con punteggi non elaborati |
CalibratedScoreType | Tipo di colonna con punteggi calibrati |
ScoredProbabilitiesMulticlassColumnTypePattern | Modello per preparare il tipo di colonna con probabilità con punteggi per il classificatore multiclasse |
BayesianLinearRegressionScoresFeatureChannel | Nome del canale di funzione con punteggi di regressione lineare bayesiana |
BinaryClassificationScoresFeatureChannel | Nome del canale di funzione con punteggi di classificazione binaria |
MulticlassClassificationScoresFeatureChannel | Nome del canale di funzione con punteggi di classificazione multiclasse |
OrdinalRegressionScoresFeatureChannel | Nome del canale di funzione con punteggi di regressione ordinale |
RegressionScoresFeatureChannel | Nome del canale di funzione con punteggi di regressione |
Esempio
Per altri esempi su come usare questo modulo negli esperimenti di Machine Learning, vedere il Azure AI Gallery.
Input previsti
Nome | Tipo | Descrizione |
---|---|---|
Trainer R script | Script | Script R che accetta un set di dati come input e restituisce un modello senza training. |
Scorer R script | Script | Script R che accetta un modello e un set di dati come input e restituisce i punteggi specificati nello script. |
Output
Nome | Tipo | Descrizione |
---|---|---|
Modellare | ILearner interface | Modello senza training |
Vedi anche
Execute R Script (Esegui script R)
Moduli del linguaggio R