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.
- További információ a gépi tanulási projektek a ML Studióból a klasszikusból a Azure Machine Learning.
- További információ a Azure Machine Learning.
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.
Adja hozzá a következő modulokat a kísérlethez: R-modell létrehozása, Modell betanítás, Modell pontozása.
Az R-modell létrehozása panel Tulajdonságok panelen adja meg a következő szkripteket:
Tréner R-szkript: Az itt ön által itt megírt R-szkript a modell betanításán lesz használva. A kísérlet futtatásakor a rendszer üzembe helyezi azt a Train Model (Modell betanítása) modulban .
Scorer R-szkript: A bemenethez megadott R-szkript csak pontozásra van beprogramozva. A kísérlet futtatásakor a rendszer a Modell pontozása modulban telepíti azt.
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.data
származó nevek a oszlopainak neveként vannak megcímkézve, és létrejön egy ideiglenes név aClass
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 |