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

Bu makalede, otomatik makine öğrenmesi, otomatikleştirilmiş öğrenme ve denemeler için çapraz doğrulama ayarlarının yanı sıra eğitim verileri ve doğrulama verileri bölmelerini yapılandırmaya ML seçenekleri hakkında bilgi edinebilirsiniz.

Bu Azure Machine Learning birden çok ML modeli oluşturmak için otomatikleştirilmiş ML'i kullanırken, her alt çalıştırmanın ilgili modelin doğruluk veya AUC ağırlıklı gibi kalite ölçümlerini hesaplayan ilgili modeli doğrulaması gerekir. Bu ölçümler, doğrulama verilerinden geçmiş gözlemlerden gelen gerçek etiketlerle her modelle yapılan tahminler karşılaştırarak hesaplanır. Ölçümlerin doğrulama türüne göre nasıl hesaplanması hakkında daha fazla bilgi edinin.

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

Düşük kodlu veya kod olmayan bir deneyim için bkz. Azure Machine Learning Studio'da 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 veya parametrelerinin dahil n_cross_validations olmadığını validation_data fark ederiz.

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 parametresini açıkça belirtmezseniz, otomatikleştirilmiş ML tek veri kümesinde sağlanan satır sayısına bağlı olarak varsayılan validation_data n_cross_validations teknikleri training_data uygular.

Eğitim   veri   boyutu Doğrulama tekniği
**    20.000'den büyük   satırlar** Eğitim/doğrulama verileri bölme işlemi uygulanır. Varsayılan değer, doğrulama kümesi olarak ilk eğitim veri kümelerinin %10'larını 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 kat sayısı, satır sayısına bağlıdır.
Veri kümesi 1.000 satırdan küçükse 10 kat kullanılır.
Satırlar 1.000 ile 20.000 arasında ise üç kat kullanılır.

Doğrulama verilerini sağlama

Bu durumda, tek bir veri dosyasıyla başlayabilir ve bunu eğitim verilerine ve doğrulama veri kümelerine bölebilirsiniz ya da doğrulama kümesi için ayrı bir veri dosyası sebilirsiniz. Her iki şekilde validation_data de, AutoMLConfig nesnenizin parametresi doğrulama kümeniz olarak hangi verilerin kullanılasını atar. Bu parametre yalnızca veri kümesi veya pandas veri çerçevesi Azure Machine Learning veri kümelerini kabul eder.

Not

parametresi, validation_data training_data ve label_column_name parametrelerinin de ayar gerektirir. Yalnızca bir doğrulama parametresi ayarlay yani her ikisini birden belirtemezseniz yalnızca validation_data veya n_cross_validations belirtesiniz.

Aşağıdaki kod örneği, sağlanan verilerin eğitim ve doğrulama için hangi dataset kısmının içinde kullanılacaları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 boyutunu sağlama

Bu durumda, deneme için yalnızca tek bir veri kümesi sağlanır. Yani, validation_data parametresi belirtilmez ve sağlanan veri kümesi parametresine training_data atanır.

AutoMLConfignesnesinde, doğrulama için eğitim validation_size verilerinin bir kısmını tutmak için parametresini kullanabilirsiniz. Başka bir ifadeyle doğrulama kümesi, sağlanan ilk ML otomatik olarak training_data bölünecek. Bu değer 0,0 ile 1,0 arasında kapsayıcı değildir (örneğin, 0,2, doğrulama verileri için verilerin %20'sinde tutul anlamına gelir).

Not

parametresi validation_size tahmin senaryolarında desteklenmiyor.

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 kat çapraz doğrulama gerçekleştirmek için parametresini n_cross_validations dahil etmek ve bir değere ayarlamak. Bu parametre, aynı sayıda katlama sayısına göre kaç tane çapraz doğrulama gerçekleştireceklerini ayarlar.

Not

parametresi, n_cross_validations derin sinir ağları kullanan sınıflandırma senaryolarında desteklenmiyor.

Aşağıdaki kodda çapraz doğrulama için beş kat tanımlanmıştır. Bu nedenle beş farklı eğitim, her biri verilerin 4/5'ini kullanan eğitimler ve her doğrulamada verilerin 1/5'i farklı bir tutma katlanır.

Sonuç olarak ölçümler, beş doğrulama ölçüm ortalamasını kullanarak 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 validation_size de n_cross_validations parametrelerini nesnenize dahil AutoMLConfig etmek.

Monte Carlo çapraz doğrulaması için otomatikleştirilmiş ML, doğrulama için parametresi tarafından belirtilen eğitim verisi bölümünü bir kenara bırakıp verilerin geri kalanını eğitim validation_size için atar. Bu işlem daha sonra parametresinde belirtilen değere göre yinelenir. Bu değer her zaman rastgele olarak yeni n_cross_validations eğitim ve doğrulama bölmeleri üretir.

Not

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

Aşağıdaki kodda, çapraz doğrulama için 7 kat ve doğrulama için eğitim verilerinin %20'si kullanılmalıdır. Bu nedenle 7 farklı eğitimde her eğitimde verilerin %80'i kullanılırken her doğrulamada verilerin %20'si farklı bir toplama katlanı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 katlarını belirtme

Ayrıca kendi çapraz doğrulama (CV) veri katlarınızı da sebilirsiniz. Bu daha gelişmiş bir senaryo olarak kabul edilir çünkü hangi sütunların bölünecek ve doğrulama için hangi sütunların kullanılacağı belirtebilirsiniz. Eğitim verilerinize özel CV bölme sütunları ekleyin ve parametresinde sütun adlarını doldurmak için hangi sütunların olduğunu cv_split_column_names belirtin. Her sütun bir çapraz doğrulama bölmeyi temsil eder ve 1 veya 0 tamsayı değerleriyle doldurulur; burada 1, satırın eğitim için, 0 ise satırın doğrulama için kullan gerektiğini gösterir.

Aşağıdaki kod parçacığında iki CV bölme sütunu 'cv1' ve 'cv2' olan banka pazarlama verileri bulunur.

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 ile cv_split_column_names kullanmak için lütfen Python SDK Azure Machine Learning training_data label_column_name 1.6.0 veya sonraki bir sürümü yükseltin. Önceki SDK sürümleri için lütfen kullanma konusuna bakın, ancak yalnızca ve cv_splits_indices veri kümesi girişi ile birlikte X y kullanılır.

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

K-fold veya Monte Carlo çapraz doğrulaması kullanılırken, ölçümler her doğrulama katlama işlemi üzerinde hesaplanır ve ardından toplanır. Toplama işlemi, skaler ölçümler için ortalama ve grafikler için toplamdır. Çapraz doğrulama sırasında hesaplanan ölçümler tüm katları ve dolayısıyla eğitim kümesinden alınan tüm örnekleri temel alır. Otomatik makine öğrenmesinde ölçümler hakkında daha fazla bilgi.

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

Test verilerini sağlama (önizleme)

Ayrıca, deneme tamamlandıktan sonra sizin için otomatikleştirilmiş ML önerilen modeli değerlendirmek için test verileri sabilirsiniz. Test verilerini sağlarken, önerilen modelin test çalıştırması sonuçlarını sapmama gibi eğitim ve doğrulamadan ayrı olarak kabul edilir. Otomatikleştirilmiş verilerde eğitim, doğrulama ve test verileri hakkında daha fazla ML.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. 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ı.

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

test_dataparametresiyle, nesnenize geçiş yapmak için var olan bir veri kümesi AutoMLConfig belirtin.

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

Test verilerini doğrudan sağlamak yerine bir eğitim/test bölme kullanmak için, test_size oluştururken parametresini AutoMLConfig kullanın. 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ılacak eğitim veri kümesi 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, katmanlanmış örnekleme kullanılır, ancak katmanlanmış örnekleme uygun olmayan bir durumda rastgele örnekleme geri dönme olarak kullanılır.
Tahmin, şu anda parametresiyle bir eğitim/test bölme kullanarak test veri kümesi belirtmeyi test_size desteklemez.

veya test_data parametrelerini test_size içine geçirme, AutoMLConfig denemeniz tamamlandıktan sonra otomatik olarak bir uzak test çalıştırması tetikler. Bu test çalıştırması, otomatikleştirilmiş ve önerilen en iyi modeli değerlendirmek için ML kullanır. Test çalıştırması ile tahminleri elde etmek hakkında daha fazla bilgi.

Sonraki adımlar