R Modeli Oluşturma

Önemli

Machine Learning Stüdyosu (klasik) desteği 31 Ağustos 2024'te sona erecektir. Bu tarihe kadar Azure Machine Learning'e geçmenizi öneririz.

1 Aralık 2021'den başlayarak artık yeni Machine Learning Stüdyosu (klasik) kaynakları oluşturamayacaksınız. 31 Ağustos 2024'e kadar mevcut Machine Learning Stüdyosu (klasik) kaynaklarını kullanmaya devam edebilirsiniz.

ML Stüdyosu (klasik) belgeleri kullanımdan kaldırılacak ve gelecekte güncelleştirilmeyecektir.

Özel kaynakları kullanarak R modeli oluşturur

Kategori: Veri Dönüştürme / Düzenleme

Not

Uygulama: Machine Learning Studio (yalnızca klasik)

Benzer sürükle ve bırak modülleri tasarımcıda da Azure Machine Learning kullanılabilir.

Modüle genel bakış

Bu makalede, R betiğinden eğitilmemiş bir model oluşturmak için Machine Learning Studio'da (klasik) R Modeli Oluşturma modülünün nasıl kullanımı açıklanmıştır.

Modeli, R paketine dahil edilen tüm öğrenciler için temel Machine Learning.

Modeli oluşturdukktan sonra Modeli Eğit'i kullanarak modeli bir veri kümesinde eğitebilirsiniz. Aynı veri kümesinde eğitim alan diğer Machine Learning. Eğitilen model, tahmin yapmak için modeli kullanmak üzere Modeli Puanla'ya geçirilebilirsiniz. Eğitilen model daha sonra kaydedilebilir ve puanlama iş akışı bir web hizmeti olarak yayımlanır.

Uyarı

Şu anda R modelinin puanlanmış sonuçlarını Modeli Değerlendirme veya Modeli ÇaprazDoğrulama'ya geçmek mümkün değildir. Modeli değerlendirmeye ihtiyacınız varsa özel R betiği yazabilir ve R Betiği Yürütme modülünü kullanarak çalıştırabilirsiniz .

Özel R modüllerini kaydetmek ve yeniden kullanmak için R Modeli Oluştur'a ek olarak, R kullanarak kendi modelleme ve veri yönetimi işlemi uygulamanızı oluşturabilir, dosyaları çalışma alanınıza sıkıştırılmış biçimde yükleyebilir ve ardından paketi özel bir modül olarak kaydedebilirsiniz. Daha fazla bilgi için bkz . Özel R Modülleri.

R Modeli Oluşturma'yi yapılandırma

Bu modülün kullanımı için R hakkında ara veya uzman bilgisi gerekir. Modül, daha önce Machine Learning'da yüklü olan R paketlerine dahil olan tüm Machine Learning.

Azure Yapay Zeka Galerisi örnek , popüler paketi kullanarak iki sınıflı bir Naïve Bayes sınıflandırıcısı e1070uygulayan: + R Modeli Oluştur. Örneği çalışma alanınıza kopyalayıp takip etmenizi öneririz.

  1. Denemenize şu modülleri ekleyin: R Modeli Oluşturma, Modeli Eğit, ModeliPuanla.

  2. R Modeli Oluştur'dakiÖzellikler bölmesinde şu betikleri kullanın:

  3. Örnek deneme, model değerlendirmesi için graflar çizen Python Betiği Yürütme modülünü de içerir. Bu modül bir web hizmetine yayımlarken isteğe bağlıdır ancak denemeyi geliştirme sırasında kullanışlıdır.

    • Python betiğinden grafikleri görüntülemek için Python modülüne sağ tıklayın, Python Cihazı'ı seçin ve Görselleştir'i seçin.
    • Yalnızca model ölçümlerini görüntülemek için Python modülüne sağ tıklayın, Python Veri Kümesi'ne tıklayın ve Görselleştir'iseçin.

    İsteğe bağlı Python modülünde kod için bkz. Model değerlendirmesi için Python modülü.

Eğitim betiği

Aşağıdaki örnek, Eğitimci R betiğinde kullanabileceğiniz kod türünü gösteriyor.

Bu betik bir R paketi yükler, paketten bir öğrenici kullanarak model oluşturur ve R Modeli Oluşturma'da sağlanan önceden tanımlanmış sabitleri ve işlevleri kullanarak özellik ve etiket sütunlarını yapılandırmaktadı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)
  • İlk satır, kullanmak istediğiniz Naïve Bayes sınıflandırıcı algoritmasını içeren E1071 R paketini yükler. Bu, Machine Learning ortamında önceden yüklenmiş paketlerden biri olduğu için paketi indirmeniz veya yüklemenize gerek yok.

  • Sonraki satırlar, veri kümesinden özellik sütunlarını ve etiket sütununu alın ve bunları adlı yeni bir R veri çerçevesinde birleştirir 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)
    
  • Önceden tanımlanmış bu işlevlerin kullanımına dikkat:

    • get.label.columns() , Modeli Eğitin modülünde sınıf etiketi olarak seçilen sütunu döndürür.

    • get.feature.columns(), veri kümesinde özellik olarak belirlenen sütunları seçer.

      Varsayılan olarak, etiket sütunu dışındaki tüm sütunlar Studio'da (klasik) özellikler olarak kabul edilir. Bu nedenle, belirli sütunları özellik olarak işaretlemek için Meta Verileri Düzenle'yi kullanın veya R betiği içinde bir sütun kümesi seçin.

    • get.feature.column.names(dataset) veri kümesinden özellik sütun adlarını alır.

  • Birleştirilmiş veri kümesinden gelen adlar train.data, içinde sütun adları olarak belirlenmiştir ve etiket Class sütunu için geçici bir ad oluşturulur.

    names(train.data) <- c(feature.names, "Class")
    
  • Kodun son satırı Naïve Bayes sınıflandırıcı algoritmasını veri çerçevesindeki değişkenlerin (özelliklerin) ve sonuçların (etiketler) train.data bir işlevi olarak tanımlar.

    model <- naiveBayes(Class ~ ., train.data)
    
  • Model oluşturma, eğitim ve puanlama betikleri boyunca değişken adını kullan gerekir model.

Puanlama betiği

Aşağıdaki kod, Scorer R betiğinde sağ kodunun türünü göstermektedir.

library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
  • İlk satır paketi yükler.

  • İkinci satır, gerekli değişken adı olan tarafından belirlenen eğitim betiğinden eğitilen modeli kullanarak puanlama veri kümesi için tahmin edilen olasılıkları hesaplar model.

  • Üçüncü satır, tahmin edilen sınıf etiketlerini atarken olasılıklara 0,5 eşiği uygular.

  • Son satır, sınıf etiketlerini ve olasılıklarını çıkış veri çerçevesinde birleştirir. scores

  • Modeli Puanla modülüne geçirilen veri çerçevesinin adı olması gerekir scores.

İsteğe bağlı Python değerlendirme betiği

örnek denemesinde Azure Yapay Zeka Galerisi model değerlendirmesi için ölçümler ve grafikler oluşturmak için kullanılan aşağıdaki Python betiği yer almaktadır.

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,

Özel R modeli iş akışını web hizmeti olarak yayımlama

Denemeyi çalıştırdıktan sonra, denemenin tamamlayanı bir web hizmeti olarak yayımlayın.

Studio (klasik) denemesinde web hizmeti oluşturma hakkında güncelleştirilmiş yönergeler için bkz. 5. Adım: Machine Learning web hizmetini dağıtma

Varsayılan olarak, web hizmeti eğitim verilerinden etiket sütunu da dahil olmak üzere tüm giriş sütunlarının sağ olmasını bekler. Tahmin etmeye çalıştığınız etiketi dışlamak için giriş veri kaynağı ile Modeli Puanlama modülü arasına Veri Kümesinde Sütun Seçme örneği ekleyebilirsiniz.

Teknik notlar

  • R Modeli Oluşturma modülü yalnızca CRAN R kullanımını destekler. Başka bir R sürümü seçesiniz veya Microsoft R Open'ı kullanamazsiniz.

  • Model, modülün ilk çalıştırması sonrasında önbelleğe alınmış ve giriş betikleri üzerinde herhangi bir değişiklik yapılana kadar sonraki çalıştırmalarda modül çağrılmaz. R betikleriniz aşağıdakilerden herhangi birini kullanıyorsa lütfen bu davranışı göz önünde bulundurabilirsiniz:

    • Rastgele sayılar oluşturan işlevler
    • Rastgele sayılar oluşturan işlevler
    • Diğer belirsiz işlevler
  • Bu modülle oluşturulan özel R modelleri şu modüllerle kullanılamaz:

  • R modelleri kategorik verilerin özellik normalleştirme işlemini otomatik olarak gerçekleştirmez veya eksik değerleri işlemez. Bu tür değişkenlerin işlenmesi eğitim ve puanlama R betikleri içinde yapılması gerekir.

Önceden tanımlanmış işlevler tablosu

Kullanım Description
get.feature.columns(dataset) Tüm özellik sütunlarını alır.
get.label.column(dataset, label.type=TrueLabelType) Türe göre etiket sütununu alır.

Kullanılabilir türlerin listesi için Sabitler bölümüne bakın.
get.label.column.names(dataset) Tüm etiket sütunlarının adlarını alır.
get.label.column.name(dataset, label.type=TrueLabelType) Türe göre etiket sütununu alır.

Kullanılabilir türlerin listesi için Sabitler bölümüne bakın.
get.label.column.types(dataset) Tüm etiket sütunlarının türlerini alır.
get.feature.column.names(dataset) Tüm özellik sütunlarının adlarını alır.
dataset < - set.score.column(dataset, score.type, column.name) Bir tür verilen puan sütununu ayarlar.

Kullanılabilir türlerin listesi için Sabitler bölümüne bakın.
dataset < - set.feature.channel(dataset, channel.name, column.names) Bir ad verilen özellik kanalını ayarlar.

Kullanılabilir adların listesi için Sabitler bölümüne bakın.

Önceden tanımlanmış sabitler tablosu

Sabit Description
TrueLabelType True etiket sütun türü
ScoredLabelType Puanlı etiket sütun türü
RawScoreType Ham puan sütun türü
CalibratedScoreType Ayarlanmış puan sütunu türü
ScoredProbabilitiesMulticlassColumnTypePattern Çok sınıflı sınıflandırıcı için puanlanan olasılıklar sütun türünü hazırlama deseni
BayesianLinearRegressionScoresFeatureChannel Bayes doğrusal regresyon puanlarına sahip özellik kanalının adı
BinaryClassificationScoresFeatureChannel İkili sınıflandırma puanlarına sahip özellik kanalının adı
MulticlassClassificationScoresFeatureChannel Çok sınıflı sınıflandırma puanlarına sahip özellik kanalının adı
OrdinalRegressionScoresFeatureChannel Ordinal regresyon puanlarına sahip özellik kanalının adı
RegressionScoresFeatureChannel Regresyon puanlarına sahip özellik kanalının adı

Örnekler

Bu modülü makine öğrenmesi denemelerinde kullanma hakkında ek örnekler için bkz. Azure Yapay Zeka Galerisi.

Beklenen girişler

Ad Tür Description
Eğitimci R betiği Komut Dosyası Veri kümelerini giriş olarak alan ve eğitilmemiş bir model çıkışına sahip olan R betiği.
Puanıcı R betiği Komut Dosyası Giriş olarak model ve veri kümesi alan ve betikte belirtilen puanların çıkışını alan R betiği.

Çıkışlar

Ad Tür Description
Modelleme ILearner arabirimi Eğitilmemiş model

Ayrıca bkz.

R Betiği yürütme
R Dil Modülleri