Bagikan melalui


Buat Model R

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Membuat model R menggunakan sumber daya kustom

Kategori: Transformasi / Manipulasi Data

Catatan

Berlaku untuk: Pembelajaran Mesin Studio (klasik) saja

Modul drag-and-drop serupa tersedia di Azure Machine Learning desainer.

Ringkasan Modul

Artikel ini menjelaskan cara menggunakan modul Create R Model di Pembelajaran Mesin Studio (klasik), untuk membuat model yang tidak terlatih dari skrip R.

Anda dapat mendasarkan model pada pelajar mana pun yang termasuk dalam paket R di lingkungan Pembelajaran Mesin.

Setelah membuat model, Anda dapat menggunakan Train Model untuk melatih model pada himpunan data, seperti pelajar lainnya di Pembelajaran Mesin. Model terlatih dapat diteruskan ke Score Model untuk menggunakan model untuk membuat prediksi. Model terlatih kemudian dapat disimpan, dan alur kerja penilaian dapat dipublikasikan sebagai layanan web.

Peringatan

Saat ini tidak mungkin untuk lulus hasil skor dari model R untuk Mengevaluasi Model atau Cross-Validate Model. Jika Anda perlu mengevaluasi model, Anda dapat menulis skrip R kustom dan menjalankannya menggunakan modul Execute R Script .

Selain menggunakan Create R Model untuk menyimpan dan menggunakan kembali modul R kustom, Anda dapat membuat implementasi sendiri dari proses pemodelan dan manajemen data menggunakan R, mengunggah file dalam format zip ke ruang kerja Anda, dan kemudian mendaftarkan paket sebagai modul khusus. Untuk informasi selengkapnya, lihat Modul R Kustom.

Cara mengonfigurasi Create R Model

Penggunaan modul ini membutuhkan pengetahuan menengah atau ahli tentang R. Modul ini mendukung penggunaan setiap pelajar yang termasuk dalam paket R yang sudah diinstal di Pembelajaran Mesin.

Sampel dari Azure AI Gallery ini mengimplementasikan pengklasifikasi Naïve Bayes dua kelas dengan menggunakan paket populer e1070 : + Create R Model. Sebaiknya salin contoh ke ruang kerja Anda dan ikuti.

  1. Tambahkan modul ini ke eksperimen Anda: Buat Model R, Model Kereta Api, Model Skor.

  2. Di panel PropertiCreate R Model, sediakan skrip berikut:

    • Skrip Trainer R: Skrip R yang Anda sediakan di sini digunakan untuk melatih model. Saat Anda menjalankan eksperimen, eksperimen tersebut disebarkan ke modul Model Kereta Api .

    • Skrip Scorer R: Skrip R yang Anda berikan pada input ini hanya untuk mencetak gol. saat Anda menjalankan eksperimen, eksperimen tersebut disebarkan ke modul Model Skor .

  3. Percobaan sampel juga mencakup modul Execute Python Script , yang digunakan untuk memplot grafik untuk evaluasi model. Modul ini opsional saat menerbitkan ke layanan web tetapi berguna saat mengembangkan eksperimen.

    • Untuk melihat bagan dari skrip Python, klik kanan modul Python, pilih Perangkat Python, dan pilih Visualisasikan.
    • Untuk melihat metrik model saja, klik kanan modul Python, pilih Python Dataset, dan pilih Visualisasikan.

    Untuk kode dalam modul Python opsional, lihat modul Python untuk evaluasi model.

Skrip pelatihan

Contoh berikut menunjukkan jenis kode yang mungkin Anda gunakan dalam skrip Trainer R.

Skrip ini memuat paket R, membuat model menggunakan pelajar dari paket, dan mengonfigurasi kolom fitur dan label menggunakan konstanta dan fungsi yang telah ditentukan yang disediakan dalam Create R Model.

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)
  • Baris pertama memuat paket R, e1071, yang berisi algoritma pengklasifikasi Naïve Bayes yang ingin kita gunakan. Karena ini adalah salah satu paket yang sudah diinstal sebelumnya di lingkungan Pembelajaran Mesin, Anda tidak perlu mengunduh atau menginstal paket.

  • Baris berikutnya mendapatkan kolom fitur dan kolom label dari himpunan data, dan menggabungkannya menjadi bingkai data R baru yang diberi nama 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)
    
  • Perhatikan penggunaan fungsi yang telah ditentukan ini:

    • get.label.columns() mengembalikan kolom yang dipilih sebagai label kelas dalam modul Model Kereta Api .

    • get.feature.columns()memilih kolom yang ditetapkan sebagai fitur dalam himpunan data.

      Secara default, semua kolom kecuali kolom label dianggap sebagai fitur di Studio (klasik). Oleh karena itu, untuk menandai kolom tertentu sebagai fitur, gunakan Edit Metadata, atau pilih satu set kolom dalam skrip R.

    • get.feature.column.names(dataset) mendapatkan nama kolom fitur dari himpunan data.

  • Nama-nama dari himpunan data gabungan ditetapkan sebagai nama untuk kolom di train.data, dan nama Class sementara dibuat untuk kolom label.

    names(train.data) <- c(feature.names, "Class")
    
  • Baris terakhir dari kode mendefinisikan algoritma pengklasifikasi Naïve Bayes sebagai fungsi dari variabel (fitur) dan hasil (label) dalam train.data bingkai data.

    model <- naiveBayes(Class ~ ., train.data)
    
  • Sepanjang pembuatan model, pelatihan, dan skrip penilaian, Anda harus menggunakan nama modelvariabel .

Skrip penskoran

Kode berikut mengilustrasikan jenis kode R yang akan Anda berikan dalam skrip Scorer R.

library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
  • Baris pertama memuat paket.

  • Baris kedua menghitung probabilitas yang diprediksi untuk dataset penilaian dengan menggunakan model terlatih dari skrip pelatihan, yang ditentukan oleh nama variabel yang diperlukan, model.

  • Baris ketiga menerapkan ambang batas 0,5 untuk probabilitas saat menetapkan label kelas yang diprediksi.

  • Baris terakhir menggabungkan label kelas dan probabilitas ke dalam bingkai data output, scores.

  • Bingkai data yang diteruskan ke modul Model Skor harus memiliki nama scores.

Skrip evaluasi Python opsional

Eksperimen sampel di Azure AI Gallery mencakup skrip Python berikut, yang digunakan untuk menghasilkan metrik dan bagan untuk evaluasi model.

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,

Menerbitkan alur kerja model R kustom sebagai layanan web

Setelah Anda menjalankan eksperimen, Anda dapat mempublikasikan eksperimen lengkap sebagai layanan web.

Untuk petunjuk terbaru tentang cara membuat layanan web dari eksperimen Studio (klasik), lihat Panduan Langkah 5: Menyebarkan layanan web Pembelajaran Mesin

Secara default, layanan web mengharapkan semua kolom input dari data pelatihan yang akan disediakan, termasuk kolom label. Anda dapat menambahkan instans Pilih Kolom dalam Himpunan Data antara sumber data input dan modul Model Skor untuk mengecualikan label yang ingin Anda prediksi.

Catatan teknis

  • Modul Create R Model hanya mendukung penggunaan CRAN R. Anda tidak dapat memilih versi R lain, atau menggunakan Microsoft R Open.

  • Model ini di-cache setelah menjalankan modul pertama dan modul tidak dipanggil dalam menjalankan berikutnya sampai perubahan dalam skrip input dilakukan. Harap pertimbangkan perilaku ini jika skrip R Anda menggunakan salah satu hal berikut:

    • Fungsi yang menghasilkan angka acak
    • Fungsi yang menghasilkan angka acak
    • Fungsi nondeterministik lainnya
  • Model R kustom yang dibuat dengan modul ini tidak dapat digunakan dengan modul-modul ini:

  • Model R tidak secara otomatis melakukan normalisasi fitur data kategoris atau menangani nilai yang hilang. Penanganan variabel tersebut harus dilakukan dalam pelatihan dan penilaian skrip R.

Tabel fungsi yang telah ditentukan sebelumnya

Penggunaan Deskripsi
get.feature.columns(dataset) Mendapatkan semua kolom fitur.
get.label.column(dataset, label.type=TrueLabelType) Mendapatkan kolom label, diberi tipe.

Lihat bagian Konstanta untuk daftar jenis yang tersedia.
get.label.column.names(dataset) Mendapatkan nama semua kolom label.
get.label.column.name(dataset, label.type=TrueLabelType) Mendapatkan nama kolom label, diberi tipe.

Lihat bagian Konstanta untuk daftar jenis yang tersedia.
get.label.column.types(dataset) Mendapatkan jenis semua kolom label.
get.feature.column.names(dataset) Mendapatkan nama semua kolom fitur.
dataset < - set.score.column(dataset, score.type, column.name) Mengatur kolom skor, diberi tipe.

Lihat bagian Konstanta untuk daftar jenis yang tersedia.
dataset < - set.feature.channel(dataset, channel.name, column.names) Mengatur saluran fitur, diberi nama.

Lihat bagian Konstanta untuk daftar nama yang tersedia.

Tabel konstanta yang telah ditentukan sebelumnya

Terus-menerus Deskripsi
TrueLabelType Tipe kolom label true
ScoredLabelType Tipe kolom label yang dinilai
RawScoreType Tipe kolom skor mentah
DikalibrasiScoreType Tipe kolom skor yang dikalibrasi
ScoredProbabilitiesMulticlassColumnTypePattern Pola untuk menyiapkan tipe kolom probabilitas yang dinilai untuk pengklasifikasi multiclass
BayesianLinearRegressionScoresFeatureChannel Nama saluran fitur dengan skor regresi linier Bayesian
BinaryClassificationScoresFeatureChannel Nama saluran fitur dengan skor klasifikasi biner
MulticlassClassificationScoresFeatureChannel Nama saluran fitur dengan skor klasifikasi multiclass
OrdinalRegressionScoresFeatureChannel Nama saluran fitur dengan skor regresi ordinal
RegressionScoresFeatureChannel Nama saluran fitur dengan skor regresi

Contoh

Untuk contoh tambahan tentang cara menggunakan modul ini dalam eksperimen pembelajaran mesin, lihat Galeri AI Azure.

Input yang diharapkan

Nama Jenis Deskripsi
Skrip Trainer R Skrip Skrip R yang mengambil himpunan data sebagai input dan mengeluarkan model yang tidak terlatih.
Skrip Pencetak gol R Skrip Skrip R yang mengambil model dan himpunan data sebagai input dan mengeluarkan skor yang ditentukan dalam skrip.

Output

Nama Jenis Deskripsi
Model Antarmuka ILearner Model yang tidak terlatih

Lihat juga

Jalankan skrip R
Modul Bahasa R