Vytvoření modelu R
Důležité
Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.
Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).
- přečtěte si informace o přesunu projektů strojového učení z ML Studio (classic) do Azure Machine Learning.
- přečtěte si další informace o Azure Machine Learning.
Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.
Vytvoří model R s použitím vlastních prostředků.
Kategorie: transformace nebo manipulace s daty
Poznámka
platí pro: jenom Machine Learning Studio (classic)
podobné moduly přetažení jsou k dispozici v návrháři Azure Machine Learning.
Přehled modulu
tento článek popisuje, jak pomocí modulu vytvořit Model R v aplikaci Machine Learning Studio (classic) vytvořit nevýukový Model ze skriptu jazyka r.
model můžete založit na jakémkoli učení, které je součástí balíčku R v prostředí Machine Learning.
Po vytvoření modelu můžete použít model výuky pro výuku modelu pro datovou sadu, jako je jakékoli jiné informace v Machine Learning. Vyškolený model může být předán modelu skóre pro použití modelu k vytvoření předpovědi. Vyškolený model se pak dá uložit a pracovní postup bodování je možné publikovat jako webovou službu.
Upozornění
V současné době není možné předat výsledky skóre modelu R k vyhodnocení modelu nebo modelu křížového ověřování. Pokud potřebujete vyhodnotit model, můžete napsat vlastní skript R a spustit ho pomocí modulu spuštění skriptu jazyka r .
Kromě použití modelu r k uložení a opětovnému použití vlastních modulů r můžete vytvořit vlastní implementaci modelování a procesu správy dat pomocí R, nahrajte soubory ve formátu ZIP do svého pracovního prostoru a pak balíček zaregistrovat jako vlastní modul. Další informace najdete v tématu vlastní moduly R.
Jak nakonfigurovat vytváření modelů R
Použití tohoto modulu vyžaduje mezilehlé nebo odborné znalosti jazyka R. Modul podporuje použití všech informací, které jsou součástí balíčků R, které jsou už nainstalované v Machine Learning.
Tato ukázka z Azure AI Gallery implementuje Bayes třídění naive pomocí oblíbeného e1070
balíčku: + vytvořit model R. Doporučujeme zkopírovat příklad do svého pracovního prostoru a postupovat podle.
Přidejte tyto moduly do experimentu: Vytvoření modelu R, výukovéhomodelu a modelu skóre.
V podokně vlastnosti v části Vytvoření modelu Rzadejte tyto skripty:
Skript Trainer r: skript r, který tady zadáte, se používá ke výukě modelu. Když spustíte experiment, nasadí se do modulu vlak model .
Skript r pro hodnocení: skript r, který zadáte na tomto vstupu, je určen pouze pro bodování. Při spuštění experimentu je nasazen do modulu určení skóre modelu .
Vzorový experiment zahrnuje také modul spuštění skriptu Pythonu , který se používá k vykreslení grafů pro vyhodnocení modelu. Tento modul je nepovinný při publikování do webové služby, ale užitečný při vývoji experimentu.
- Pokud chcete zobrazit grafy ze skriptu Pythonu, klikněte pravým tlačítkem myši na modul Pythonu, vyberte zařízení Pythona vyberte vizualizovat.
- Pokud chcete zobrazit jenom metriky modelu, klikněte pravým tlačítkem myši na modul Pythonu, vyberte datová sada Pythonua vyberte vizualizovat.
Kód v volitelném modulu Pythonu naleznete v tématu modul Python pro vyhodnocení modelu.
Školicí skript
Následující příklad ukazuje typ kódu, který můžete použít ve skriptu Trainer R.
Tento skript načte balíček R, vytvoří model pomocí naučku z balíčku a nakonfiguruje sloupce funkce a popisek pomocí předdefinovaných konstant a funkcí, které jsou k dispozici v modelu Create 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)
První řádek načte balíček R, e1071, který obsahuje algoritmus třídění Bayes Naive, který chceme použít. vzhledem k tomu, že se jedná o jeden z balíčků předinstalovaných v prostředí Machine Learning, nemusíte tento balíček stahovat ani instalovat.
Další řádky získá sloupce funkce a sloupec popisek z datové sady a sloučí je do nového datového rámce R s názvem
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)
Všimněte si použití těchto předdefinovaných funkcí:
get.label.columns()
Vrátí sloupec, který je vybrán jako popisek třídy v modulu vlakového modelu .get.feature.columns()
vybere sloupce, které byly označeny jako funkce v datové sadě.Ve výchozím nastavení se všechny sloupce s výjimkou sloupce popisek považují za funkce v Studio (Classic). Chcete-li proto označit konkrétní sloupce jako funkce, použijte možnost Upravit metadatanebo vyberte sadu sloupců v rámci skriptu jazyka R.
get.feature.column.names(dataset)
Získá názvy sloupců funkcí z datové sady.
Názvy z kombinované datové sady jsou označeny jako názvy sloupců v
train.data
a pro sloupec Label se vytvoří dočasný názevClass
.names(train.data) <- c(feature.names, "Class")
Poslední řádek kódu definuje algoritmus třídění Naive Bayes jako funkci proměnných (funkcí) a výsledků (popisků) v
train.data
datovém rámečku.model <- naiveBayes(Class ~ ., train.data)
V průběhu vytváření, školení a vyhodnocování skriptů v modelu je nutné použít název
model
proměnné.
Skript bodování
Následující kód ilustruje typ kódu R, který byste zadali ve skriptu jazyka r pro skóre.
library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
První řádek načte balíček.
Druhý řádek vypočítá předpovězené pravděpodobnosti pro datovou sadu pomocí školicího modelu ze školicího skriptu, který je určen požadovaným názvem
model
proměnné.Třetí řádek aplikuje prahovou hodnotu 0,5 na pravděpodobnost při přiřazování předpokládaných popisků třídy.
Poslední řádek kombinuje popisky a pravděpodobnosti třídy do výstupního datového rámce
scores
.Datový rámec, který se předává modulu skóre modelu , musí mít název
scores
.
Volitelný skript pro vyhodnocení Pythonu
Vzorový experiment v Azure AI Gallery obsahuje následující skript Pythonu, který se používá ke generování metrik a grafů pro vyhodnocení modelu.
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,
Publikování vlastního pracovního postupu modelu R jako webové služby
Po spuštění experimentu můžete celý experiment publikovat jako webovou službu.
aktualizované pokyny k vytvoření webové služby z experimentu studia (classic) najdete v tématu krok 5: nasazení webové služby Machine Learning.
Ve výchozím nastavení webová služba očekává, že jsou všechny vstupní sloupce ze školicích dat, včetně sloupce popisku. Můžete přidat instanci vybraných sloupců v datové sadě mezi vstupním zdrojem dat a modulem modelu skóre , abyste vyloučili popisek, který se pokoušíte odhadnout.
Technické poznámky
Modul Create r model podporuje pouze použití Cran R. Nemůžete vybrat jinou verzi jazyka R nebo použít Microsoft R Open.
Model se uloží do mezipaměti po prvním spuštění modulu a modul se v dalších spuštěních nespustí, dokud nebudou provedeny žádné změny ve vstupních skriptech. Vezměte v úvahu toto chování, pokud skripty jazyka R používají některou z následujících možností:
- Funkce, které generují náhodná čísla
- Funkce, které generují náhodná čísla
- Jiné nedeterministické funkce
Vlastní modely R vytvořené pomocí tohoto modulu nejde použít s těmito moduly:
Modely R neprovádějí automatickou normalizaci funkcí kategorií dat nebo zpracování chybějících hodnot. Zpracování takových proměnných by se mělo provádět v rámci školicích a vyhodnocovacích skriptů R.
Tabulka předem definovaných funkcí
Využití | Description |
---|---|
get.feature.columns(dataset) |
Načte všechny sloupce funkcí. |
get.label.column(dataset, label.type=TrueLabelType) |
Získá sloupec popisku s daným typem. Seznam dostupných typů naleznete v části konstanty . |
get.label.column.names(dataset) |
Získá názvy všech sloupců popisku. |
get.label.column.name(dataset, label.type=TrueLabelType) |
Získá název sloupce popisku, který je daným typem. Seznam dostupných typů naleznete v části konstanty . |
get.label.column.types(dataset) |
Získá typy všech sloupců popisku. |
get.feature.column.names(dataset) |
Získá názvy všech sloupců funkce. |
dataset < - set.score.column(dataset, score.type, column.name) |
Nastaví sloupec skóre pro daný typ. Seznam dostupných typů naleznete v části konstanty . |
dataset < - set.feature.channel(dataset, channel.name, column.names) |
Nastaví kanál funkcí s daným názvem. Seznam dostupných názvů najdete v části konstanty . |
Tabulka předem definovaných konstant
Konstanta | Description |
---|---|
TrueLabelType | Typ sloupce s popiskem true |
ScoredLabelType | Typ sloupce popisku s skóre |
RawScoreType | Typ sloupce nezpracovaných skóre |
CalibratedScoreType | Typ sloupce kalibrovaného skóre |
ScoredProbabilitiesMulticlassColumnTypePattern | Vzorek pro přípravu typu sloupce pravděpodobnosti skóre pro třídění více tříd |
BayesianLinearRegressionScoresFeatureChannel | Název kanálu funkcí s skóre bayesovského rozhodování lineární regrese |
BinaryClassificationScoresFeatureChannel | Název kanálu funkce s skóre binární klasifikace |
MulticlassClassificationScoresFeatureChannel | Název kanálu funkcí s výsledky klasifikace s více třídami |
OrdinalRegressionScoresFeatureChannel | Název kanálu funkcí se skóre pořadí regrese |
RegressionScoresFeatureChannel | Název kanálu funkcí s skóre regrese |
Příklady
Další příklady použití tohoto modulu v experimentech pro strojové učení najdete v Azure AI Gallery.
Očekávané vstupy
Název | Typ | Description |
---|---|---|
Skript Trainer R | Skript | Skript R, který přebírá datovou sadu jako vstup a výstup nevýukového modelu. |
Skript R pro hodnocení | Skript | Skript R, který jako vstup převezme model a datovou sadu a vypíše skóre zadané ve skriptu. |
Výstupy
Název | Typ | Description |
---|---|---|
Modelování | Rozhraní ILearner | Nevlakový model |