Megosztás a következőn keresztül:


R-modell létrehozása

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Egyéni erőforrásokat használó R-modellt hoz létre

Kategória: Adatátalakítás /-manipuláció

Megjegyzés

A következőkre vonatkozik: Machine Learning Studio (klasszikus)

Hasonló húzással használható modulok érhetők el Azure Machine Learning tervezőben.

A modul áttekintése

Ez a cikk azt ismerteti, hogyan használható az R-modell létrehozása modul a Machine Learning Studióban (klasszikus) egy nem korlátozott modell R-szkriptből való létrehozásához.

A modellt bármely olyan tanulóra alapozhatja, aki az R-csomagban található a Machine Learning környezetben.

A modell létrehozása után a Train Model (Modell betanítása) használatával betaníthatja a modellt egy adatkészleten, ahogy a modell többi tanulója Machine Learning. A betanított modell a Score Model (Modell pontozása) pontozása számára is átveheti, hogy a modell alapján előrejelzéseket készítsen. A betanított modell menthető, a pontozási munkafolyamat pedig közzétehető webszolgáltatásként.

Figyelmeztetés

Jelenleg nem lehet átadni egy R-modell pontozási eredményeit a Modell kiértékelése vagy a Kereszt-ellenőrzés típusú modellnek. Ha ki kell értékelnie egy modellt, írhat egyéni R-szkriptet, és futtathatja azt az R-szkript végrehajtása modullal .

Amellett, hogy az R-modell létrehozása használatával mentheti és újra felhasználhatja az egyéni R-modulokat, létrehozhatja a modellezési és adatkezelési folyamat saját implementációját az R használatával, feltöltheti a fájlokat tömörített formátumban a munkaterületre, majd egyéni modulként regisztrálhatja a csomagot. További információ: Egyéni R-modulok.

Az R-modell létrehozása konfigurálása

A modul használatához az R középhaladó vagy szakértő ismerete szükséges. A modul minden olyan tanuló használatát támogatja, amely megtalálható a modulban már telepített R-Machine Learning.

Ez a minta a Azure AI Gallery egy kétosztályos Nacitve Bayes-osztályozót e1070 implementál a népszerű csomaggal: + R-modell létrehozása. Javasoljuk, hogy másolja a példát a munkaterületre, és kövesse a következőt.

  1. Adja hozzá a következő modulokat a kísérlethez: R-modell létrehozása, Modell betanítás, Modell pontozása.

  2. Az R-modell létrehozása panel Tulajdonságok panelen adja meg a következő szkripteket:

  3. A mintakísérlet tartalmazza a Python-szkript végrehajtása modult is, amely a modellértékeléshez használt gráfok ábrázolására használható. Ez a modul nem kötelező, amikor közzéten egy webszolgáltatást, de hasznos lehet a kísérlet fejlesztése során.

    • A Python-szkript diagramjainak megtekintéséhez kattintson a jobb gombbal a Python-modulra, válassza a Python-eszköz, majd a Képi megjelenítés lehetőséget.
    • Ha csak a modellmetrikákat kell megtekintenie, kattintson a jobb gombbal a Python-modulra, válassza a Python-adatkészlet, majd a Képi megjelenítés lehetőséget.

    A választható Python-modulban található kódért lásd: Python-modul modellértékeléshez.

Betanító szkript

Az alábbi példa az oktató R-szkriptben használható kódtípust mutatja be.

Ez a szkript betölt egy R-csomagot, létrehoz egy modellt a csomag egyik tanulója segítségével, és konfigurálja a jellemző- és címkeoszlopokat az R-modell létrehozása által biztosított előre meghatározott állandók és függvények használatával.

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)
  • Az első sor betölti az E1071 R-csomagot, amely a használni kívánt Naéve Bayes-osztályozó algoritmust tartalmazza. Mivel ez az egyik előre telepített csomag a Machine Learning környezetben, nem kell letöltenie vagy telepítenie a csomagot.

  • A következő sorok lekértük a funkcióoszlopokat és a címkeoszlopot az adatkészletből, és egy nevű új R-adatkeretben egyesítjük őket 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)
    
  • Figyelje meg az alábbi előre definiált függvények használatát:

    • get.label.columns() A a Modell betanítása modulban osztálycímkeként kiválasztott oszlopot adja vissza.

    • get.feature.columns()kiválasztja az adatkészletben funkcióként megjelölt oszlopokat.

      Alapértelmezés szerint a címkeoszlop kivételével minden oszlop a Studio (klasszikus) funkcióinak számít. Ezért ha adott oszlopokat jellemzőkként szeretné megjelölni, használja a Metaadatok szerkesztése lehetőséget, vagy válasszon ki egy oszlopkészletet az R-szkriptben.

    • get.feature.column.names(dataset) lekért funkcióoszlop-neveket az adatkészletből.

  • A kombinált adatkészletből train.dataszármazó nevek a oszlopainak neveként vannak megcímkézve, és létrejön egy ideiglenes név a Class címkeoszlop számára.

    names(train.data) <- c(feature.names, "Class")
    
  • A kód utolsó sorában a Naldve Bayes-osztályozó algoritmus az adatkeret változói (jellemzői) és kimenetei (címkéi) train.data függvényeként van definiálva.

    model <- naiveBayes(Class ~ ., train.data)
    
  • A modell létrehozása, betanítása és pontozása során a változó nevét kell használnia model.

Pontozó szkript

Az alábbi kód bemutatja a Scorer R-szkriptben megírt R-kód típusát.

library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
  • Az első sor betölti a csomagot.

  • A második sor a pontozási adatkészlet előrejelzett valószínűségét számítja ki a betanító szkript betanított modelljével, amelyet a kötelező változónév jelöl. model

  • A harmadik sor 0,5-ös küszöbértéket alkalmaz az előrejelelt osztálycímkék hozzárendelésének valószínűségére.

  • Az utolsó sor a kimeneti adatkeretben egyesíti az osztálycímkéket és a valószínűségeket. scores

  • A Modell pontozása modulnak átadott adatkeretnek a következő néven kell lennie: scores.

Nem kötelező Python-kiértékelési szkript

A modellben található mintakísérlet Azure AI Gallery Python-szkriptet tartalmazza, amely a modellértékelés metrika- és diagramjainak előállítására használható.

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,

Az egyéni R-modell munkafolyamatának közzététele webszolgáltatásként

A kísérlet futtatása után a teljes kísérletet közzéteheti webszolgáltatásként.

A (klasszikus) Studio-kísérletből webszolgáltatás létrehozására vonatkozó frissített utasításokért lásd: Útmutató: 5. lépés: A webszolgáltatás Machine Learning üzembe helyezése

Alapértelmezés szerint a webszolgáltatás elvárja, hogy a betanítás adataiból minden bemeneti oszlopot meg kell adni, beleértve a címkeoszlopot is. A bemeneti adatforrás és a Modell pontozása modul közé felveheti az Adatkészlet oszlopainak kijelölése egy példányát, hogy kizárja az előrejelezni kívánt címkét.

Technikai megjegyzések

  • Az R-modell létrehozása modul csak a CRAN R használatát támogatja. Az R más verzióját nem választhatja ki, és nem használhatja a Microsoft R Openet.

  • A rendszer a modul első futtatása után gyorsítótárazza a modellt, és a későbbi futtatás során nem hívja meg a modult, amíg el nem végez módosításokat a bemeneti szkriptekben. Vegye figyelembe ezt a viselkedést, ha az R-szkriptek a következők valamelyikét használják:

    • Véletlenszerű számokat generáló függvények
    • Véletlenszerű számokat generáló függvények
    • Egyéb nemdeterminisztikus függvények
  • Az ezzel a modullal létrehozott egyéni R-modellek nem használhatók az alábbi modulokkal:

  • Az R-modellek nem hajtják végre automatikusan a kategorikus adatok jellemző normalizálását, és nem kezelik a hiányzó értékeket. Az ilyen változókat a betanítás és az R-szkriptek pontozása során kell kezelni.

Előre definiált függvények táblázata

Használat Description
get.feature.columns(dataset) Lekérte az összes jellemzőoszlopot.
get.label.column(dataset, label.type=TrueLabelType) Lekérte a címkeoszlopot a típus alapján.

Az elérhető típusok listáját a Konstansok című szakaszban láthatja.
get.label.column.names(dataset) Lekérte az összes címkeoszlop nevét.
get.label.column.name(dataset, label.type=TrueLabelType) Lekérte a címkeoszlop nevét a típus alapján.

Az elérhető típusok listáját a Konstansok című szakaszban láthatja.
get.label.column.types(dataset) Lekérte az összes címkeoszlop típusát.
get.feature.column.names(dataset) Lekérte az összes jellemzőoszlop nevét.
dataset < - set.score.column(dataset, score.type, column.name) Beállítja a pontszám oszlopot egy adott típus alapján.

Az elérhető típusok listáját a Konstansok című szakaszban láthatja.
dataset < - set.feature.channel(dataset, channel.name, column.names) Beállítja a funkciócsatornát egy adott névvel.

Az elérhető nevek listáját a Konstansok című szakaszban láthatja.

Előre definiált állandók táblázata

Állandó Description
TrueLabelType Valódi címke oszloptípus
ScoredLabelType Pontozással jelölt címke oszloptípus
RawScoreType Nyers pontszám oszloptípus
CalibratedScoreType A hitelesített pontszám oszloptípusa
ScoredProbabilitiesMulticlassColumnTypePattern A pontozási valószínűségek oszloptípusának többosztályos osztályozóhoz való előkészítésének mintája
BayesianLinearRegressionScoresFeatureChannel A funkciócsatorna neve Bayes-irányú lineáris regressziós pontszámokkal
BinaryClassificationScoresFeatureChannel A funkciócsatorna neve bináris besorolási pontszámokkal
MulticlassClassificationScoresFeatureChannel A funkciócsatorna neve többosztályos besorolási pontszámokkal
OrdinalRegressionScoresFeatureChannel A funkciócsatorna neve sorszám-regressziós pontszámokkal
RegressionScoresFeatureChannel A funkciócsatorna neve regressziós pontszámokkal

Példák

A modul gépi tanulási kísérletekben való használatára vonatkozó további példákért lásd a Azure AI Gallery.

Várt bemenetek

Név Típus Description
Oktató R-szkript Script Egy R-szkript, amely bemenetként egy adatkészletet vesz fel, és egy nem képezett modellt ad vissza.
Scorer R-szkript Script Egy R-szkript, amely bemenetként egy modellt és egy adatkészletet vesz fel, és a szkriptben megadott pontszámokat adja vissza.

Kimenetek

Név Típus Description
Modellezés ILearner interfész Nem korlátozott modell

Lásd még

R-szkript végrehajtása
R nyelvi modulok