Python ile AutoML eğitimi ayarlama

Bu kılavuzda, otomatik makine öğrenmesi, AutoML ve Azure Machine Learning Python SDK'sı ile otomatik makine öğrenmesi Azure Machine Learning çalıştırmayı ML. Otomatik ML sizin için bir algoritma ve hiperparametre seçer ve dağıtım için hazır bir model üretir. Bu kılavuzda, otomatikleştirilmiş denemeleri yapılandırmak için kullanabileceğiniz çeşitli seçeneklerin ML ve sunulmaktadır.

End to end örneği için bkz. Öğretici: AutoML- regresyon modelini eğitin.

Kod olmayan bir deneyim tercih ediyorsanız, Azure Machine Learning Studio'da kod olmayan AutoML eğitimi de ayarlayın.

Önkoşullar

Bu makale için,

Deneme türünüzü seçme

Denemenize başlamadan önce çözmekte olduğu makine öğrenmesi sorununun ne tür olduğunu belirlemeniz gerekir. Otomatik makine öğrenmesi , ve görev classification regression türlerini forecasting destekler. Görev türleri hakkında daha fazla bilgi.

Aşağıdaki kod, deneme task türünü olarak belirtmek için AutoMLConfig oluşturucuda parametresini classification kullanır.

from azureml.train.automl import AutoMLConfig

# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")

Veri kaynağı ve biçimi

Otomatik makine öğrenmesi yerel masaüstünüzde veya Azure Blob Depolama gibi bulutta duran verilerinizi destekler. Veriler bir Pandas DataFrame'e veya TabularDataset Azure Machine Learning okunabilir. Veri kümeleri hakkında daha fazla bilgi edinin.

Makine öğrenmesinde eğitim verileri için gereksinimler:

  • Veriler tablosal formda olması gerekir.
  • Tahmin etmek için hedef sütunun verilerde olması gerekir.

Uzak denemeler için, eğitim verilerine uzak işlemden erişilebilir olması gerekir. Otomatikleştirilmiş ML, uzak Azure Machine Learning çalışırken yalnızca TabularDatasets'i kabul eder.

Azure Machine Learning veri kümeleri şu işlevleri kullanıma sunar:

  • Statik dosyalardan veya URL kaynaklarından çalışma alanınıza kolayca veri aktarabilirsiniz.
  • Verilerinizin bulut bilişim kaynaklarında çalıştırılan eğitim betikleri tarafından kullanılabilmesini sağlama. Sınıfını kullanarak uzak işlem hedefinize veri bağlama örneği Dataset için bkz. Veri kümeleriyle eğitma.

Aşağıdaki kod, web URL'lerinden bir TabularDataset oluşturur. Yerel dosyalar ve veri deposu gibi diğer kaynaklardan veri kümesi oluşturma hakkında kod örnekleri için bkz. TabularDataset oluşturma.

from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)

Yerel işlem denemeleri için, daha hızlı işleme süreleri için pandas veri çerçevelerini öneririz.

import pandas as pd
from sklearn.model_selection import train_test_split

df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"

Eğitim, doğrulama ve test verileri

Ayrı eğitim verileri ve doğrulama veri kümeleri doğrudan oluşturucuda AutoMLConfig belirtebilirsiniz. AutoML denemeleriniz için veri bölmelerini ve çapraz doğrulamayı yapılandırma hakkında daha fazla bilgi.

Bir veya parametresini açıkça belirtmezseniz otomatikleştirilmiş ML doğrulamanın nasıl validation_data gerçekleştirileceklerini belirlemek için varsayılan teknikleri n_cross_validation uygular. Bu belirleme, parametrenize atanan veri kümesinde satır sayısına training_data bağlıdır.

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.

Şu anda model değerlendirmesi için kendi test verilerinizi sağlayabilirsiniz. Model değerlendirmesi için kendi test verilerinizi getirme kod örneği için bu Jupyternot defterinin Test bölümüne bakın.

Büyük veriler

Otomatik ML, küçük sanal makinelerde büyük veriler için başarıyla model oluşturabilir ve büyük veriler üzerinde eğitim için sınırlı sayıda algoritmayı destekler. Otomatik ML, veri boyutu, sanal makine bellek boyutu, deneme zaman aşımı ve özellik kazandırma ayarları gibi özelliklere bağlıdır ve bu büyük veri algoritmaları uygulanmalıdır. Otomatikleştirilmiş modellerde hangi modellerin destekleneleri hakkında daha fazla ML.

Bu yöntemi geçersiz kılmak için aşağıdaki ayarları kullanın:

Görev Ayar Notlar
Veri   akışı algoritmalarını engelleme blocked_models nesnenize ekleyin ve kullanmak AutoMLConfig istemediklerinizi modellerinizi listelenin. Çalıştırma hatasına veya uzun çalışma süresine neden olur
Veri     akışı   algoritmalarını kullanma allowed_models nesnenize AutoMLConfig ekleyin ve kullanmak istediğiniz modellerini listelenin.
Veri     akışı   algoritmalarını kullanma
(studio UI denemeleri)
Kullanmak istediğiniz büyük veri algoritmaları dışındaki tüm modelleri engelin.

Deneme çalıştırmak için işlem

Ardından modelin nerede eğitil olacağını belirleme. Otomatikleştirilmiş ML denemesi aşağıdaki işlem seçenekleri üzerinde çalıştırabilirsiniz. Yerel ve uzak işlem seçeneklerinin avantajlarını ve dezavantajlarını öğrenin.

  • Yerel masaüstü veya dizüstü bilgisayar gibi yerel makineniz – Genellikle küçük bir veri kümeniz olduğunda ve hala araştırma aşamasındayken. Yerel işlem örneği için bu not defterine bakın.

  • Bulutta uzak makine – Azure Machine Learning Yönetilen İşlem, Azure sanal makine kümelerinde makine öğrenmesi modellerini eğitebilmeyi sağlayan yönetilen bir hizmettir. İşlem örneği, işlem hedefi olarak da de destekler.

    Uzaktan Azure Machine Learning Yönetilen İşlem hizmetini kullanma örneği için bu not defterine bakın.

  • Azure Azure Databricks bir küme. Daha fazla ayrıntı için otomatikleştirilmiş Azure Databricks küme ayarlama ML. Bu GitHub not defterleri örnekleri için bu siteyi Azure Databricks.

Deneme ayarlarınızı yapılandırma

Otomatik denemenizi yapılandırmak için kullanabileceğiniz çeşitli seçenekler ML vardır. Bu parametreler bir nesne örneği başlatarak AutoMLConfig ayarlanır. Parametrelerin tam listesi için bkz. AutoMLConfig sınıfı.

Aşağıdaki örnek bir sınıflandırma görevidir. Denemede birincil ölçüm olarak AUC ağırlıklı olarak kullanılır ve deneme zamanları 30 dakika ve 2 çapraz doğrulama katları olarak ayarlanmıştır.

    automl_classifier=AutoMLConfig(task='classification',
                                   primary_metric='AUC_weighted',
                                   experiment_timeout_minutes=30,
                                   blocked_models=['XGBoostClassifier'],
                                   training_data=train_data,
                                   label_column_name=label,
                                   n_cross_validations=2)

Ek kurulum gerektiren tahmin görevlerini de yapılandırabilirsiniz. Daha fazla ayrıntı için Zaman serisi tahminleri için AutoML'i ayarlama makalesine bakın.

    time_series_settings = {
                            'time_column_name': time_column_name,
                            'time_series_id_column_names': time_series_id_column_names,
                            'forecast_horizon': n_test_periods
                           }
    
    automl_config = AutoMLConfig(
                                 task = 'forecasting',
                                 debug_log='automl_oj_sales_errors.log',
                                 primary_metric='normalized_root_mean_squared_error',
                                 experiment_timeout_minutes=20,
                                 training_data=train_data,
                                 label_column_name=label,
                                 n_cross_validations=5,
                                 path=project_folder,
                                 verbosity=logging.INFO,
                                 **time_series_settings
                                )

Desteklenen modeller

Otomatik makine öğrenmesi, otomasyon ve ayarlama işlemi sırasında farklı modelleri ve algoritmaları dener. Kullanıcı olarak algoritmayı belirtmenize gerek yoktur.

Üç farklı task parametre değeri, uygulanacak algoritmaların veya modellerin listesini belirler. Dahil etmek allowed_models veya hariç tutmak üzere kullanılabilir blocked_models modellerle yinelemeleri daha fazla değiştirmek için veya parametrelerini kullanın.

Aşağıdaki tabloda, desteklenen modeller görev türüne göre özetlenmiştir.

Not

Otomatik oluşturulan ML modellerinizi bir ONNXmodeline dışarı aktarmayı planlıyorsanız, yalnızca * (yıldız işareti) ile belirtilen algoritmalar ONNX biçimine dönüştürülür. Modelleri ONNX'e dönüştürme hakkında daha fazla bilgi.

Ayrıca, ONNX'in şu anda yalnızca sınıflandırma ve regresyon görevlerini desteklediğini unutmayın.

Sınıflandırma Regresyon Zaman Serileri Tahmini
Lojistik Regresyon* Elastik Ağ* AutoARIMA
Açık GBM* Açık GBM* Peygamber
Gradyan Artırma* Gradyan Artırma* Elastik Net
Karar Ağacı* Karar Ağacı* Açık GBM
En Yakın K Komşular* En Yakın K Komşular* Gradyan Artırma
Doğrusal SVC* LARS Kement* Karar Ağacı
Destek Vektör Sınıflandırması (SVC)* Stokastik Gradyan İndeksi (SGD)* Karar Ağacı
Rastgele Orman* Rastgele Orman LARS Lasso
Son Derece Rastgele Ağaç* Son Derece Rastgele Ağaç* Stokastik Gradyan İndeksi (SGD)
Xgboost* Xgboost* Rastgele Orman
Ortalama Perceptron Sınıflandırıcısı Çevrimiçi Gradyan Regresör Xgboost
Naive Bayes* Hızlı Doğrusal Regresör ForecastTCN
Stokastik Gradyan İndeksi (SGD)* Naive (Naive)
Doğrusal SVM Sınıflandırıcısı* SeasonalNaive
Ortalama
SeasonalAverage
ExponentialSmoothing
Arimax

Birincil ölçüm

parametresi, primary_metric iyileştirme için model eğitimi sırasında kullanılacak ölçümü belirler. Seçebilirsiniz kullanılabilir ölçümler, seçtiğiniz görev türüne göre belirlenir.

Otomatikleştirilmiş ölçümler için birincil ML seçmek birçok faktöre bağlıdır. En önemli noktanız, iş ihtiyaçlarını en iyi şekilde temsil eden bir ölçüm seçmektir. Ardından ölçümün veri kümesi profiliniz (veri boyutu, aralık, sınıf dağıtımı vb.) için uygun olup olmadığını göz önünde bulundurabilirsiniz. Aşağıdaki bölümlerde görev türüne ve iş senaryosuna göre önerilen birincil ölçümler özetlenmiştir.

Otomatik makine öğrenmesi sonuçlarını anlama konusunda bu ölçümlerin belirli tanımları hakkında bilgi öğrenin.

Sınıflandırma senaryoları için ölçümler

, , ve gibi eşik sonrası ölçümler, küçük olan, çok büyük sınıf dengesizliği (sınıf dengesizliği) olan veya beklenen ölçüm değeri accuracy average_precision_score_weighted norm_macro_recall 0,0 veya 1,0'a çok yakın olduğunda iyileştirilenemeyebilirsiniz. precision_score_weighted Böyle durumlarda, AUC_weighted birincil ölçüm için daha iyi bir seçenek olabilir. Otomatikleştirilmiş ML tamamlandıktan sonra, iş ihtiyaçlarınıza en uygun ölçümü temel alarak kazanan modeli seçebilirsiniz.

Metric Örnek kullanım kullanımları
accuracy Görüntü sınıflandırması, Yaklaşım analizi, Churn tahmini
AUC_weighted Sahtekarlık algılama, Görüntü sınıflandırması, Anomali algılama/istenmeyen posta algılama
average_precision_score_weighted Yaklaşım analizi
norm_macro_recall Churn tahmini
precision_score_weighted

Regresyon senaryoları için ölçümler

ve gibi ölçümler, tahmin edilen değerin ölçeği birçok büyüklük siparişlerini kapsasa da modelin r2_score kalitesini daha iyi temsil ediyor spearman_correlation olabilir. Örneğin birçok kişinin 20.000 ABD doları ile 100.000 ABD doları arasında bir maaşa sahip olduğu ancak 100 milyon ABD doları aralığındaki bazı maaşlarla birlikte ölçek çok yüksek olduğu ücret tahmini.

normalized_mean_absolute_error ve bu durumda 20.000 ABD doları tahmin hatası, 30 bin ABD doları maaşa sahip bir çalışan için 20 milyon ABD doları ödeme yapan bir çalışan olarak aynı şekilde normalized_root_mean_squared_error davranır. Gerçekte, 20 milyon ABD doları olan bir maaştan yalnızca 20 bin ABD doları tahmin etmek çok yakındır (küçük bir %0,1 göreli fark), 30.000 ABD dolarından 20.000 ABD doları yakın değildir (büyük bir %67 göreli fark). normalized_mean_absolute_error``normalized_root_mean_squared_errorve , tahminde yer alan değerler benzer bir ölçekte olduğunda kullanışlıdır.

Metric Örnek kullanım kullanımları
spearman_correlation
normalized_root_mean_squared_error Fiyat tahmini (ev/ürün/ipucu), Puan tahminini gözden geçirme
r2_score Hava yolu gecikmesi, Maaş tahmini, Hata çözümleme süresi
normalized_mean_absolute_error

Zaman serisi tahmin senaryoları için ölçümler

Öneriler, regresyon senaryolarında not alanlarla benzerdir.

Metric Örnek kullanım kullanımları
normalized_root_mean_squared_error Fiyat tahmini (tahmin), Stok iyileştirmesi, Talep tahmini
r2_score Fiyat tahmini (tahmin), Stok iyileştirmesi, Talep tahmini
normalized_mean_absolute_error

Veri beceri kazandırma

Her otomatikleştirilmiş ML denemesinde, farklı ölçeklerde olan özelliklere duyarlı olan belirli algoritmalara yardımcı olmak için verileriniz otomatik olarak ölçeklendirilir ve normalleştirilir. Bu ölçeklendirme ve normalleştirme, beceri kazandırma olarak adlandırılır. Daha ayrıntılı bilgi ve kod örnekleri için bkz. AutoML'de özellikleri kazandırma.

Nesnenizin içinde denemelerinizi AutoMLConfig yapılandırarak ayarını etkinleştirebilirsiniz/devre dışı featurization abilirsiniz. Aşağıdaki tabloda AutoMLConfignesnesinde özelliği kazandırma için kabul edilen ayarlar yer alır.

Beceri Kazandırma Yapılandırması Description
"featurization": 'auto' Ön işlemenin bir parçası olarak veri korumalarının ve özelleştirme adımlarının otomatik olarak gerçekleştirilecek olduğunu gösterir. Varsayılan ayarı.
"featurization": 'off' Özelliğin otomatik olarak yapılmaması gerektiğini gösterir.
"featurization": 'FeaturizationConfig' Özelleştirilmiş özellikleri kazandırma adımının kullan gerektiğini gösterir. Özellikleri özelleştirmeyi öğrenin.

Not

Otomatik makine öğrenmesi özellik kazandırma adımları (özellik normalleştirme, eksik verileri işleme, metni sayısala dönüştürme vb.) temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullanırken, eğitim sırasında uygulanan aynı beceri kazandırma adımları giriş verilerinize otomatik olarak uygulanır.

Grup yapılandırması

Grup modelleri varsayılan olarak etkindir ve AutoML çalıştırmalarında son çalıştırma yinelemeleri olarak görünür. VotingEnsemble ve StackEnsemble şu anda de destektedir.

Oylama, ağırlıklı ortalamaları kullanan yumuşak oylamayı uygulamaya almaktadır. Yığınlama uygulaması, birinci katmanın oylama grubuyla aynı modellere sahip olduğu ve ikinci katman modelinin ilk katmandan modellerin en uygun bileşimini bulmak için kullandığı iki katmanlı bir uygulama kullanır.

ONNX modelleri kullanıyorsanız veya model açıklanabilirliğini etkinleştirdiysek, yığınlama devre dışı bırakılır ve yalnızca oylama kullanılır.

Grup eğitimi ve boole parametreleri enable_voting_ensemble kullanılarak devre dışı enable_stack_ensemble bırakılabilir.

automl_classifier = AutoMLConfig(
                                 task='classification',
                                 primary_metric='AUC_weighted',
                                 experiment_timeout_minutes=30,
                                 training_data=data_train,
                                 label_column_name=label,
                                 n_cross_validations=5,
                                 enable_voting_ensemble=False,
                                 enable_stack_ensemble=False
                                )

Varsayılan grup davranışını değiştirmek için, bir nesnede olduğu gibi sağlanacak birden çok varsayılan kwargs bağımsız değişken AutoMLConfig vardır.

Önemli

Aşağıdaki parametreler AutoMLConfig sınıfının açık parametreleri değil.

  • ensemble_download_models_timeout_sec: VotingEnsemble ve StackEnsemble model oluşturma sırasında, önceki alt çalıştırmalardan birden fazla uygun model indirilir. Şu hatayla karşılaşırsanız: AutoMLEnsembleException: Could not find any models for running ensembling , modellerin indirilecek olması için daha fazla zaman sağlamanız gerekir. Bu modelleri paralel olarak indirmek için varsayılan değer 300 saniyedir ve maksimum zaman aşımı sınırı yoktur. Daha fazla zaman gerekirse bu parametreyi 300 sn'den daha yüksek bir değerle yapılandırabilirsiniz.

    Not

    Zaman aşımına ulaşıldı ve indirilen modeller varsa, ensembling indirmiş olduğu sayıda modelle devam eder. Tüm modellerin bu zaman aşımı süresi içinde bitecek şekilde indirilmiş olması gerekmez.

Aşağıdaki parametreler yalnızca StackEnsemble modelleri için geçerlidir:

  • stack_meta_learner_type: Meta-öğrenici, tek tek heterojen modellerin çıkışıyla eğitilen bir modeldir. Varsayılan meta öğreniciler sınıflandırma görevlerine (veya çapraz doğrulama etkinse) ve regresyon/tahmin görevlerine (veya çapraz doğrulama LogisticRegression LogisticRegressionCV ElasticNet ElasticNetCV etkinse) yöneliktir. Bu parametre şu dizelerden biri olabilir: LogisticRegression , , , , , veya LogisticRegressionCV LightGBMClassifier ElasticNet ElasticNetCV LightGBMRegressor LinearRegression .

  • stack_meta_learner_train_percentage: eğitim kümesi (eğitim ve doğrulama türü seçerken) meta-öğreniciyi eğitmek için ayrılmış olan oranını belirtir. Varsayılan değer 0.2 olarak belirlenmiştir.

  • stack_meta_learner_kwargs: meta-öğrenicinin başlatıcıya geçmesi için isteğe bağlı parametreler. Bu parametreler ve parametre türleri, karşılık gelen model oluşturucusdan parametreleri ve parametre türlerini yansıtarak model oluşturucuya iletir.

Aşağıdaki kod, bir nesnesinde özel grup davranışı belirtme örneğini AutoMLConfig gösterir.

ensemble_settings = {
                     "ensemble_download_models_timeout_sec": 600
                     "stack_meta_learner_type": "LogisticRegressionCV",
                     "stack_meta_learner_train_percentage": 0.3,
                     "stack_meta_learner_kwargs": {
                                                    "refit": True,
                                                    "fit_intercept": False,
                                                    "class_weight": "balanced",
                                                    "multi_class": "auto",
                                                    "n_jobs": -1
                                                  }
                    }

automl_classifier = AutoMLConfig(
                                 task='classification',
                                 primary_metric='AUC_weighted',
                                 experiment_timeout_minutes=30,
                                 training_data=train_data,
                                 label_column_name=label,
                                 n_cross_validations=5,
                                 **ensemble_settings
                                )

Çıkış ölçütleri

Denemenizi sona ert etmek için AutoMLConfig içinde tanımladığınız birkaç seçenek vardır.

Ölçütler açıklama
Ölçüt   yok Herhangi bir çıkış parametresi tanımlamazsanız, deneme birincil ölçümde daha fazla ilerleme yapılana kadar devam eder.
Uzun     bir süre     sonra Dakikalar experiment_timeout_minutes içinde denemenizin ne kadar süreyle çalışmaya devam edeceğini tanımlamak için ayarlarınızı kullanın.

Deneme zaman aşım hatalarından kaçınmak için en az 15 dakika veya sütun boyutuna göre satırınız 10 milyonu aşarsa 60 dakika vardır.
 Bir     puana   ulaşıldı Kullan, experiment_exit_score belirtilen birincil ölçüm puanına ulaşıldıktan sonra denemeyi tamamlar.

Deneme çalıştırma

Uyarı

Aynı yapılandırma ayarlarına ve birincil ölçüme sahip bir denemeyi birden çok kez çalıştırıyorsanız, her denemenin son ölçüm puanı ve oluşturulan modellerinde büyük olasılıkla değişim olduğunu fark edebilirsiniz. Otomatikleştirilmiş ML, denemenin model çıkışında küçük farklılıklara ve doğruluk gibi önerilen modelin son ölçüm puanına neden olan doğal rastgelelik içerir. Büyük olasılıkla aynı model adına ancak farklı hiperparametrelere sahip sonuçlar da görüyorsunuz.

Otomatikleştirilmiş ML, denemeleri çalıştırmak için kullanılan bir içinde adlandırılmış nesne Experiment Workspace olan bir nesnesi oluştururuz.

from azureml.core.experiment import Experiment

ws = Workspace.from_config()

# Choose a name for the experiment and specify the project folder.
experiment_name = 'Tutorial-automl'
project_folder = './sample_projects/automl-classification'

experiment = Experiment(ws, experiment_name)

Çalıştırmak ve model oluşturmak için denemeyi gönderin. Modeli AutoMLConfig oluşturmak için submit yöntemini yöntemine iletir.

run = experiment.submit(automl_config, show_output=True)

Not

Bağımlılıklar ilk olarak yeni bir makineye yüklenir. Çıkışın gösterilmesi 10 dakika kadar sürebilir. olarak show_output True ayarı, konsolda gösterilen çıkışla sonuç verir.

Kümelerde birden çok alt çalıştırma

Otomatik ML deneme alt çalıştırmaları, zaten başka bir deneme çalıştıran bir kümede gerçekleştirilmiştir. Ancak zamanlama, kümenin kaç düğüme sahip olduğuna ve bu düğümlerin farklı bir deneme çalıştırmak için kullanılabilir olup olara bağlı olduğuna bağlıdır.

Kümedeki her düğüm, tek bir eğitim çalıştırması gerçekleştirecek tek bir sanal makine (VM) gibi davranır; otomatikleştirilmiş ML alt çalıştırma anlamına gelir. Tüm düğümler meşgulse yeni deneme kuyruğa eklenir. Ancak ücretsiz düğümler varsa yeni deneme, alt ML düğümlerde/VM'lerde paralel olarak otomatikleştirilmiş olarak çalışır.

Alt çalıştırmaları yönetmeye yardımcı olmak ve ne zaman gerçekleştirileceklerini yönetmek için deneme başına ayrılmış bir küme oluşturmanızı ve denemenizin sayısını kümedeki düğüm sayısıyla max_concurrent_iterations eşleşmenizi öneririz. Bu şekilde, istediğiniz eş zamanlı alt çalıştırma/yineleme sayısıyla kümenin tüm düğümlerini aynı anda kullanırsiniz.

max_concurrent_iterations AutoMLConfig nesnesinde'yi yapılandırma. Yapılandırılmamışsa, deneme başına varsayılan olarak yalnızca bir eşzamanlı alt çalıştırmaya/yinelemeye izin verilir. İşlem örneği olması durumunda, max_concurrent_iterations işlem örneği VM'sinde çekirdek sayısıyla aynı olacak şekilde ayarlanır.

Modelleri ve ölçümleri keşfetme

Otomatik ML eğitim sonuçlarınızı izleyip değerlendirmeniz için seçenekler sunar.

Hiperparametreleri, ölçeklendirme ve normalleştirme tekniklerini ve belirli bir otomatikleştirilmiş koda uygulanan algoritmayı ML özel kod çözümüyle çalıştırabilirsiniz.

Aşağıda, otomatikleştirilmiş eğitim işlem hattının her adımının print_model() hiperparametrelerini yazdıran özel ML tanımlanmaktadır.

from pprint import pprint

def print_model(model, prefix=""):
    for step in model.steps:
        print(prefix + step[0])
        if hasattr(step[1], 'estimators') and hasattr(step[1], 'weights'):
            pprint({'estimators': list(e[0] for e in step[1].estimators), 'weights': step[1].weights})
            print()
            for estimator in step[1].estimators:
                print_model(estimator[1], estimator[0]+ ' - ')
        elif hasattr(step[1], '_base_learners') and hasattr(step[1], '_meta_learner'):
            print("\nMeta Learner")
            pprint(step[1]._meta_learner)
            print()
            for estimator in step[1]._base_learners:
                print_model(estimator[1], estimator[0]+ ' - ')
        else:
            pprint(step[1].get_params())
            print()   

Aynı deneme not defterinden gönderilen ve eğitilen bir yerel veya uzak çalıştırma için yöntemini kullanarak en iyi modeli get_output() geçebilirsiniz.

best_run, fitted_model = run.get_output()
print(best_run)
         
print_model(fitted_model)

Aşağıdaki çıkış şunları gösterir:

  • StandardScalerWrapper tekniği, eğitim öncesinde verileri ölçeklendirmek ve normalleştirmek için kullanılmıştır.

  • XGBoostClassifier algoritması en iyi çalıştırma olarak tanımlandı ve hiperparametre değerlerini de gösteriyor.

StandardScalerWrapper
{'class_name': 'StandardScaler',
 'copy': True,
 'module_name': 'sklearn.preprocessing.data',
 'with_mean': False,
 'with_std': False}

XGBoostClassifier
{'base_score': 0.5,
 'booster': 'gbtree',
 'colsample_bylevel': 1,
 'colsample_bynode': 1,
 'colsample_bytree': 0.6,
 'eta': 0.4,
 'gamma': 0,
 'learning_rate': 0.1,
 'max_delta_step': 0,
 'max_depth': 8,
 'max_leaves': 0,
 'min_child_weight': 1,
 'missing': nan,
 'n_estimators': 400,
 'n_jobs': 1,
 'nthread': None,
 'objective': 'multi:softprob',
 'random_state': 0,
 'reg_alpha': 0,
 'reg_lambda': 1.6666666666666667,
 'scale_pos_weight': 1,
 'seed': None,
 'silent': None,
 'subsample': 0.8,
 'tree_method': 'auto',
 'verbose': -10,
 'verbosity': 1}

Çalışma alanınız içinde farklı bir denemeden mevcut bir çalıştırma için, araştırmak istediğiniz belirli çalıştırma kimliğini alın ve bunu yöntemine print_model() iletir.

from azureml.train.automl.run import AutoMLRun

ws = Workspace.from_config()
experiment = ws.experiments['automl-classification']
automl_run = AutoMLRun(experiment, run_id = 'AutoML_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')

automl_run
best_run, model_from_aml = automl_run.get_output()

print_model(model_from_aml)

Otomatik makine öğrenmesi çalıştırmalarını izleme

Otomatikleştirilmiş ML çalıştırmalar için, önceki çalıştırmadan grafiklere erişmek için yerine <<experiment_name>> uygun deneme adını yazın:

from azureml.widgets import RunDetails
from azureml.core.run import Run

experiment = Experiment (workspace, <<experiment_name>>)
run_id = 'autoML_my_runID' #replace with run_ID
run = Run(experiment, run_id)
RunDetails(run).show()

Otomatikleştirilmiş uygulamalar için Jupyter not defteri pencere öğesi Machine Learning

Modelleri kaydetme ve dağıtma

Modeli daha sonra kullanmak üzere geri dönebilirsiniz.

Otomatikleştirilmiş bir çalışma ML kaydetmek için yöntemini register_model() kullanın.


best_run = run.get_best_child()
print(fitted_model.steps)

model_name = best_run.properties['model_name']
description = 'AutoML forecast example'
tags = None

model = run.register_model(model_name = model_name, 
                                  description = description, 
                                  tags = tags)

Dağıtım yapılandırması oluşturma ve kayıtlı bir modeli bir web hizmetine dağıtma hakkında ayrıntılı bilgi için, bkz. modelin nasıl ve nereye dağıtılır.

İpucu

Kayıtlı modeller için, Azure Machine Learning studio aracılığıyla tek tıklamayla dağıtım kullanılabilir. Bkz. studio'dan kayıtlı modelleri dağıtma.

Model yorumlanabilirliği

Model yorumlanabilirliği, modellerinizi neden tahminde bulundurarak temel alınan özellik önem değerlerini anlamanıza olanak sağlar. SDK, yerel ve dağıtılan modeller için hem eğitim hem de çıkarım zamanında model yorumlanabilirliği özelliklerini etkinleştirmek için çeşitli paketler içerir.

Yorumlanabilirlik özelliklerini özellikle otomatikleştirilmiş denemeler içinde ML bakın.

Otomatik makine öğrenmesi dışında SDK'nın diğer alanlarında model açıklamalarının ve özellik önemlerinin nasıl etkinleştirilil olduğu hakkında genel bilgi için yorumlanabilirlik kavramı makalesine bakın.

Not

ForecastTCN modeli şu anda Açıklama İstemcisi tarafından desteklenmiyor. Bu model, en iyi model olarak döndürülürse bir açıklama panosu ve isteğe bağlı açıklama çalıştırmalarını desteklemez.

Sonraki adımlar