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
Azure Machine Learning çalışma alanı. Çalışma alanını oluşturmak için bkz. Çalışma alanı kaynakları oluşturma.
Azure Machine Learning SDK'sı ile otomatik makine öğrenmesi denemesi ayarlama hakkında bilgi. Temel otomatik makine öğrenmesi denemesi tasarım desenlerini görmek için öğreticiyi veya nasıl yapılır yönergelerini izleyin.
Eğitma/doğrulama verilerinin makine öğrenmesi kavramları olarak bölündüğünü ve çapraz doğrulamayı anlamayı sağlar. Üst düzey bir açıklama için,
Önemli
Bu makaledeki Python komutları için en son azureml-train-automl
paket sürümü gerekir.
- En son
azureml-train-automl
paketi yerel ortamınıza yükleyin. - En son
azureml-train-automl
paketle ilgili ayrıntılar için sürüm notlarına bakın.
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_data
sağ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_validations
belirtebilirsiniz.
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_name
ile 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_indices
konusuna 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.
Uyarı
Bu özellik aşağıdaki otomatik ML senaryolarında kullanılamaz
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_indices
ile 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 AutoMLConfig
kullanı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_data
AutoMLConfig
iç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.