Share via


Otomatik makine öğrenmesinde eğitim, doğrulama, çapraz doğrulama ve test verilerini yapılandırma

ŞUNLAR IÇIN GEÇERLIDIR:Python SDK azureml v1

Bu makalede, otomatik makine öğrenmeniz, otomatik ML'niz ve denemeleriniz için çapraz doğrulama ayarlarıyla birlikte eğitim verilerini yapılandırmaya ve veri bölmelerini doğrulamaya yönelik farklı seçenekleri öğreneceksiniz.

Azure Machine Learning'de birden çok ML modeli oluşturmak için otomatik ML kullandığınızda, her alt çalıştırmanın ilgili modeli doğruluk veya AUC ağırlıklı gibi kalite ölçümlerini hesaplayarak doğrulamaları gerekir. Bu ölçümler, doğrulama verilerindeki geçmiş gözlemlerden elde edilen gerçek etiketlerle her modelle yapılan tahminler karşılaştırılarak hesaplanır. Ölçümlerin doğrulama türüne göre nasıl hesaplanması hakkında daha fazla bilgi edinin.

Otomatik ML denemeleri model doğrulamayı otomatik olarak gerçekleştirir. Aşağıdaki bölümlerde Azure Machine Learning Python SDK'sı ile doğrulama ayarlarını nasıl daha fazla özelleştirebileceğiniz açıklanmaktadır.

Düşük kodlu veya kodsuz deneyim için bkz. Azure Machine Learning stüdyosu'de otomatik makine öğrenmesi denemelerinizi oluşturma.

Önkoşullar

Bu makale için

Önemli

Bu makaledeki Python komutları için en son azureml-train-automl paket sürümü gerekir.

Makine öğrenmesinde varsayılan veri bölmeleri ve çapraz doğrulama

Deneme ve eğitim ayarlarınızı tanımlamak için AutoMLConfig nesnesini kullanın. Aşağıdaki kod parçacığında, yalnızca gerekli parametrelerin tanımlandığına, yani parametresinin tanımlandığına n_cross_validations veya validation_data dahil edilmediğini unutmayın.

Not

Varsayılan veri bölmeleri ve çapraz doğrulama, tahmin senaryolarında desteklenmez.

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = dataset,
                             label_column_name = 'Class'
                            )

Bir veya n_cross_validations parametresini açıkça belirtmezsenizvalidation_data, otomatik ML tek veri kümesinde training_datasağlanan satır sayısına bağlı olarak varsayılan teknikleri uygular.

Eğitim veri boyutu Doğrulama tekniği
20.000 satırdan büyük Eğitim/doğrulama veri bölme işlemi uygulanır. Varsayılan değer, doğrulama kümesi olarak ilk eğitim veri kümesinin %10'unu almaktır. Buna karşılık, bu doğrulama kümesi ölçüm hesaplaması için kullanılır.
20.000 satırdan küçük Çapraz doğrulama yaklaşımı uygulanır. Varsayılan katlama sayısı, satır sayısına bağlıdır.
Veri kümesi 1.000 satırdan azsa 10 kat kullanılır.
Satırlar 1.000 ile 20.000 arasındaysa üç kat kullanılır.

Doğrulama verilerini sağlama

Bu durumda, tek bir veri dosyasıyla başlayıp bunu eğitim verilerine ve doğrulama veri kümelerine bölebilir veya doğrulama kümesi için ayrı bir veri dosyası sağlayabilirsiniz. Her iki durumda da, validation_data nesnenizdeki AutoMLConfig parametresi hangi verileri doğrulama kümeniz olarak kullanacağınızı atar. Bu parametre yalnızca Azure Machine Learning veri kümesi veya pandas veri çerçevesi biçimindeki veri kümelerini kabul eder.

Not

parametresi, validation_data ve label_column_name parametrelerinin training_data de ayarlanmasını gerektirir. Yalnızca bir doğrulama parametresi ayarlayabilirsiniz; yani her ikisini birden değil, yalnızca validation_data veya n_cross_validationsbelirtebilirsiniz.

Aşağıdaki kod örneği, eğitim ve doğrulama için sağlanan verilerin dataset hangi bölümünde kullanılacağını açıkça tanımlar.

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

training_data, validation_data = dataset.random_split(percentage=0.8, seed=1)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = training_data,
                             validation_data = validation_data,
                             label_column_name = 'Class'
                            )

Doğrulama kümesi boyutu sağlama

Bu durumda deneme için yalnızca tek bir veri kümesi sağlanır. Başka bir ifadeyle validation_data parametre belirtilmez ve sağlanan veri kümesi parametresine training_data atanır.

nesnenizde AutoMLConfig , doğrulama için eğitim verilerinin validation_size bir kısmını tutmak üzere parametresini ayarlayabilirsiniz. Bu, doğrulama kümesinin sağlanan başlangıçtan training_data itibaren otomatik ML tarafından bölüneceği anlamına gelir. Bu değer 0,0 ile 1,0 arasında (örneğin, 0,2, verilerin %20'sinin doğrulama verileri için tutulacağı anlamına gelir) arasında olmalıdır.

Not

validation_size parametresi tahmin senaryolarında desteklenmez.

Aşağıdaki kod örneğine bakın:

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = dataset,
                             validation_size = 0.2,
                             label_column_name = 'Class'
                            )

K-kat çapraz doğrulama

K katlamalı çapraz doğrulama gerçekleştirmek için parametresini n_cross_validations ekleyin ve bir değere ayarlayın. Bu parametre, aynı sayıda katlama temelinde kaç çapraz doğrulama gerçekleştirileceklerini ayarlar.

Not

n_cross_validations parametresi, derin sinir ağları kullanan sınıflandırma senaryolarında desteklenmez. Tahmin senaryoları için, Zaman serisi tahmin modelini eğitmek için AutoML'yi ayarlama bölümünde çapraz doğrulamanın nasıl uygulandığına bakın.

Aşağıdaki kodda çapraz doğrulama için beş kat tanımlanmıştır. Bu nedenle, her biri verilerin 5/4'ünün kullanıldığı beş farklı eğitim ve her doğrulamada verilerin 5'inde 1/5'i kullanılarak her seferinde farklı bir ayrı tutma katlanması gerekir.

Sonuç olarak ölçümler, beş doğrulama ölçümünün ortalamasıyla hesaplanır.

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = dataset,
                             n_cross_validations = 5
                             label_column_name = 'Class'
                            )

Monte Carlo çapraz doğrulama

Monte Carlo çapraz doğrulamasını gerçekleştirmek için hem hem n_cross_validations de validation_size parametrelerini nesnenize AutoMLConfig ekleyin.

Monte Carlo çapraz doğrulaması için otomatik ML, doğrulama parametresi tarafından validation_size belirtilen eğitim verilerinin bir bölümünü bir kenara bırakır ve ardından verilerin geri kalanını eğitim için atar. Bu işlem daha sonra parametresinde n_cross_validations belirtilen değere göre tekrarlanır; bu da her seferinde rastgele olarak yeni eğitim ve doğrulama bölmeleri oluşturur.

Not

Monte Carlo çapraz doğrulama, tahmin senaryolarında desteklenmez.

Aşağıdaki kod, çapraz doğrulama için 7 kat ve doğrulama için eğitim verilerinin %20'sinin kullanılması gerektiğini tanımlar. Bu nedenle 7 farklı eğitimde her eğitim verilerin %80'ini kullanır ve her doğrulama her seferinde verilerin %20'sini farklı bir ayrı tutma katlama ile kullanır.

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = dataset,
                             n_cross_validations = 7
                             validation_size = 0.2,
                             label_column_name = 'Class'
                            )

Özel çapraz doğrulama veri katlamaları belirtme

Ayrıca kendi çapraz doğrulama (CV) veri katlamalarınızı da sağlayabilirsiniz. Hangi sütunların bölüneceğini ve doğrulama için kullanılacağını belirttiğinizden bu daha gelişmiş bir senaryo olarak kabul edilir. Eğitim verilerinize özel CV bölme sütunları ekleyin ve parametredeki cv_split_column_names sütun adlarını doldurarak hangi sütunları belirtin. Her sütun bir çapraz doğrulama bölmesini temsil eder ve 1 veya 0 tamsayı değerleriyle doldurulur; burada 1, eğitim için satırın kullanılması gerektiğini, 0 ise satırın doğrulama için kullanılması gerektiğini belirtir.

Not

cv_split_column_names parametresi tahmin senaryolarında desteklenmez.

Aşağıdaki kod parçacığı, iki CV bölünmüş sütunu 'cv1' ve 'cv2' olan banka pazarlama verilerini içerir.

data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/bankmarketing_with_cv.csv"

dataset = Dataset.Tabular.from_delimited_files(data)

automl_config = AutoMLConfig(compute_target = aml_remote_compute,
                             task = 'classification',
                             primary_metric = 'AUC_weighted',
                             training_data = dataset,
                             label_column_name = 'y',
                             cv_split_column_names = ['cv1', 'cv2']
                            )

Not

ve label_column_nameile training_data kullanmak cv_split_column_names için lütfen Azure Machine Learning Python SDK'sı sürüm 1.6.0 veya üzerini yükseltin. Önceki SDK sürümleri için lütfen kullanma cv_splits_indiceskonusuna bakın, ancak yalnızca ve y veri kümesi girişiyle X kullanıldığını unutmayın.

Makine öğrenmesinde çapraz doğrulama için ölçüm hesaplaması

K katlamalı veya Monte Carlo çapraz doğrulama kullanıldığında ölçümler her doğrulama katlama işlemiyle hesaplanır ve sonra toplanır. Toplama işlemi skaler ölçümlerin ortalaması ve grafiklerin toplamıdır. Çapraz doğrulama sırasında hesaplanan ölçümler tüm katlamaları ve dolayısıyla eğitim kümesindeki tüm örnekleri temel alır. Otomatik makine öğrenmesindeki ölçümler hakkında daha fazla bilgi edinin.

Özel bir doğrulama kümesi veya otomatik olarak seçilen bir doğrulama kümesi kullanıldığında, model değerlendirme ölçümleri eğitim verilerinden değil, yalnızca bu doğrulama kümesinden hesaplanır.

Test verilerini sağlama (önizleme)

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bunu önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.

Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Deneme tamamlandıktan sonra otomatik ML'nin sizin için oluşturduğu önerilen modeli değerlendirmek için test verileri de sağlayabilirsiniz. Test verileri sağladığınızda, önerilen modelin test çalıştırmasının sonuçlarını sapmamak için eğitim ve doğrulamadan ayrı olarak kabul edilir. Otomatik ML'de eğitim, doğrulama ve test verileri hakkında daha fazla bilgi edinin.

Test veri kümelerinin Azure Machine Learning TabularDataset biçiminde olması gerekir. Nesnenizde AutoMLConfig ve test_size parametreleriyle test_data bir test veri kümesi belirtebilirsiniz. Bu parametreler birbirini dışlar ve aynı anda veya veya cv_splits_indicesile cv_split_column_names belirtilmez.

parametresiyle test_data , nesnenize AutoMLConfig geçireceğiniz mevcut bir veri kümesini belirtin.

automl_config = AutoMLConfig(task='forecasting',
                             ...
                             # Provide an existing test dataset
                             test_data=test_dataset,
                             ...
                             forecasting_parameters=forecasting_parameters)

Doğrudan test verileri sağlamak yerine bir eğitme/test bölme kullanmak için, oluştururken parametresini AutoMLConfigkullanıntest_size. Bu parametre, 0,0 ile 1,0 arasında bir kayan nokta değeri olmalıdır ve test veri kümesi için kullanılması gereken eğitim veri kümesinin yüzdesini belirtir.

automl_config = AutoMLConfig(task = 'regression',
                             ...
                             # Specify train/test split
                             training_data=training_data,
                             test_size=0.2)

Not

Regresyon görevleri için rastgele örnekleme kullanılır.
Sınıflandırma görevleri için katmanlı örnekleme kullanılır, ancak katmanlı örnekleme uygun olmadığında geri dönüş olarak rastgele örnekleme kullanılır.
Tahmin şu anda parametresiyle bir eğitim/test bölmesi kullanarak test veri kümesi belirtmeyi test_size desteklememektedir.

veya test_size parametrelerinin test_dataAutoMLConfigiçine geçirilmesi, denemeniz tamamlandıktan sonra otomatik olarak bir uzaktan test çalıştırması tetikler. Bu test çalıştırması, otomatik ML'nin önerdiği en iyi modeli değerlendirmek için sağlanan test verilerini kullanır. Test çalıştırmasından tahminleri alma hakkında daha fazla bilgi edinin.

Sonraki adımlar