R Modeli Oluşturma

Özel kaynakları kullanarak R modeli oluşturur

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

Not

Uygulama hedefi: Machine Learning Studio (klasik)

Bu içerik yalnızca Studio (klasik) ile ilgilidir. Benzer sürükle ve bırak modülleri Azure Machine Learning tasarımcısına eklenmiştir. Bu makalede iki sürümü karşılaştırandaha fazla bilgi edinin.

Modüle genel bakış

Bu makalede, R betiğinden eğitilmemiş bir model oluşturmak için Azure 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 Azure Machine Learning.

Modeli oluşturduk sonra Modeli Eğit'i kullanarak modeli bir veri kümesinde eğitebilirsiniz. Bu, veri kümesinde eğitim alan diğer Azure 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 Çapraz Doğ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 Azure Machine Learning'da yüklü olan R paketlerine dahil olan tüm Azure 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ı e1070 uygulayan:+ 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, Modeli Puanla.

  2. R modeli oluştur' un Özellikler bölmesinde şu komut dosyalarını sağlayın:

    • Trainer r betiği: burada sağladığınız R betiği modeli eğiteiçin kullanılır. Denemeyi çalıştırdığınızda eğitim modeli modülüne dağıtılır.

    • Scorer r betiği: Bu girişte sağladığınız R betiği yalnızca Puanlama amaçlıdır. denemeyi çalıştırdığınızda, bu, puan modeli modülüne dağıtılır.

  3. Örnek denemeler, model değerlendirmesi için grafik çizmek üzere kullanılan 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 deneme geliştirilirken yararlı olur.

    • Python betiğinden grafikleri görüntülemek için Python modülüne sağ tıklayın, Python cihazı' nı 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' ni seçin ve Görselleştir' i seçin.

    İsteğe bağlı Python modülündeki kod için bkz. model değerlendirmesi Için Python modülü.

Eğitim betiği

Aşağıdaki örnek, Trainer R betiğine kullanabileceğiniz kodun türünü gösterir.

Bu betik bir R paketi yükler, paketten öğrenici kullanarak model oluşturur ve özellik ve etiket sütunlarını, Create R model içinde sunulan önceden tanımlanmış sabitleri ve işlevleri kullanarak yapılandırı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ğimiz Naïve Bayes sınıflandırıcı algoritmasını içeren R paketini ( e1071) yükler. Azure Machine Learning ortamında önceden yüklenmiş paketlerden biri olduğundan, paketi indirmeniz veya yüklemeniz gerekmez.

  • Sonraki satırlar, veri kümesinden Özellik sütunlarını ve etiket sütununu alır ve bunları adlı yeni bir R veri çerçevesine 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ış şu işlevlerin kullanımını göz önünde edin:

    • get.label.columns()model eğitme modülünde sınıf etiketi olarak seçilen sütunu döndürür.

    • get.feature.columns()veri kümesinde özellik olarak belirlenmiş 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 MetaVerileri 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, içinde sütun adları olarak belirlenmiştir ve train.data etiket sütunu için geçici bir ad Class 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) bir train.data 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 model gerekir.

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ı model hesaplar.

  • Üçü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 scores birleştirir.

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

İ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: Azure 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 hariç tutmak için giriş veri kaynağı ve model Puanlama modülü arasına veri kümesindeki Select sütunlarının bir örneğini ekleyebilirsiniz.

Teknik notlar

  • Create r model modülü yalnızca Cran R kullanımını destekler. Başka bir R sürümünü seçemezsiniz veya Microsoft R Open 'ı kullanabilirsiniz.

  • Model, modülün ilk çalıştırılmasından sonra önbelleğe alınır ve giriş betiklerdeki herhangi bir değişiklik tamamlanana kadar modül sonraki çalışmalarda çağrılmaz. R betikleriniz aşağıdakilerden birini kullanıyorsa lütfen bu davranışı dikkate alın:

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

  • R modelleri, kategorik verilerin Özellik normalleştirmesini otomatik olarak gerçekleştirmez veya eksik değerleri işleyemez. Bu tür değişkenlerin işlenmesi eğitim ve Puanlama R betikleri içinde yapılmalıdır.

Önceden tanımlanmış işlevlerin tablosu

Kullanım Description
get.feature.columns(dataset) Tüm özellik sütunlarını alır.
get.label.column(dataset, label.type=TrueLabelType) Türü verilen 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 label 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 Bayeme doğrusal regresyon puanlarına sahip Özellik kanalının adı
BinaryClassificationScoresFeatureChannel İkili sınıflandırma puanlarını içeren özellik kanalının adı
Birden çok Lassclassıficationscoresfeaturechannel Birden çok Lass sınıflandırma puanlarını içeren özellik kanalının adı
OrdinalRegressionScoresFeatureChannel Sıralı regresyon puanlarına sahip Özellik kanalının adı
Gerilesionscoresfeaturechannel Regresyon puanlarına sahip Özellik kanalının adı

Örnekler

Machine Learning denemeleri 'te Bu modülün nasıl kullanılacağına ilişkin ek örnekler için Azure yapay zeka Galerisibakın.

Beklenen girişler

Ad Tür Description
Kıniner R betiği Komut Dosyası Bir veri kümesini giriş olarak alan ve eğitilen bir modelin çıktısını alan bir R betiği.
Scorer R betiği Komut Dosyası Bir modeli ve veri kümesini girdi olarak alan ve betikte belirtilen puanları çıkaran bir R betiği.

Çıkışlar

Ad Tür Description
Modelleme ILearner arabirimi Eğitimli olmayan bir model

Ayrıca bkz.

R betiğini Yürüt
R dil modülleri