Sdílet prostřednictvím


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

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.

  1. Přidejte tyto moduly do experimentu: Vytvoření modelu R, výukovéhomodelu a modelu skóre.

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

  3. 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ázev Class .

    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

Viz také

Spouštění skriptů R
Moduly jazyka R