Otomatik makine öğrenmesinde (AutoML) veri özelliği

ŞUNLAR IÇIN GEÇERLIDIR:Python için Azure Machine Learning SDK v1

Önemli

Bu makalede Azure Machine Learning SDK v1 kullanımı hakkında bilgi sağlanır. SDK v1, 31 Mart 2025 itibarıyla kullanım dışı bırakılmıştır. Destek 30 Haziran 2026'da sona erecektir. Bu tarihe kadar SDK v1'i yükleyebilir ve kullanabilirsiniz. SDK v1 kullanan mevcut iş akışlarınız destek sonu tarihinden sonra çalışmaya devam edecektir. Ancak, üründe mimari değişiklikler olması durumunda güvenlik risklerine veya yıkıcı değişikliklere maruz kalabilirler.

30 Haziran 2026'dan önce SDK v2'ye geçmenizi öneririz. SDK v2 hakkında daha fazla bilgi için bkz. Azure Machine Learning CLI ve Python SDK v2 nedir? ve SDK v2 başvurusu.

Bu makalede , otomatik makine öğrenmesi (AutoML) denemeleriniz için Azure Machine Learning'deki veri özelliği ayarlarını özelleştirme işlemi açıklanmaktadır.

Özellik mühendisliği ve özellik geliştirme

Eğitim verileri satır ve sütunlardan oluşur. Her satır bir gözlem veya kayıttır ve her satırın sütunları her kaydı açıklayan özelliklerdir. Genellikle, tahmine dayalı modeller oluşturmak için verilerdeki desenleri en iyi şekilde niteleyen özellikleri seçersiniz.

Bir modeli eğitmek için ham veri alanlarının çoğunu doğrudan kullanabilirsiniz, ancak genellikle verilerdeki desenleri daha iyi ayırt etmek için bilgi sağlayan diğer (tasarlanmış) özellikler oluşturmanız gerekir. Bu işleme özellik mühendisliği adı verilir. Makine öğrenmesi algoritmalarının daha iyi öğrenmesine yardımcı olacak özellikler oluşturmak için verilerin etki alanı bilgilerini kullanın.

Azure Machine Learning'de özellik mühendisliğini kolaylaştırmak için veri ölçeklendirme ve normalleştirme teknikleri uygulanır. Bu teknikler ve bu özellik mühendisliği toplu olarak AutoML denemelerinde özellik kazandırma olarak adlandırılır.

Önkoşullar

Bu makalede, AutoML denemesini yapılandırmayı zaten bildiğiniz varsayılır.

Önemli

Bu makaledeki Python komutları en son azureml-train-automl paket sürümünü gerektirir.

Yapılandırma hakkında bilgi için aşağıdaki makalelere bakın:

Özellik geliştirmeyi yapılandırma

Her AutoML denemesi otomatik olarak verilerinize otomatik ölçeklendirme ve normalleştirme teknikleri uygular. Bu teknikler, farklı ölçeklerdeki özelliklere duyarlı olan belirli algoritmalara yardımcı olan özellik geliştirme türleridir. Eksik değerlerin belirtilmesi, kodlama ve dönüşümler gibi daha fazla özellik kazandırabilirsiniz.

Uyarı

Özellik normalleştirme, eksik verileri işleme veya metni sayısala dönüştürme gibi AutoML özellik özelliklerine yönelik adımlar, temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullandığınızda, eğitim sırasında uygulanan özellik geliştirme adımları giriş verilerinize otomatik olarak uygulanır.

Python SDK'sını kullanarak yapılandırdığınız denemeler için özellik geliştirme ayarını etkinleştirebilir veya devre dışı bırakabilir ve denemeniz için kullanılacak özellik geliştirme adımlarını daha ayrıntılı olarak belirtebilirsiniz. Azure Machine Learning Stüdyosu kullanıyorsanız özellik geliştirmeyi etkinleştirme adımlarına bakın.

Aşağıdaki tabloda featurization için kabul edilen ayarlar gösterilmektedir:

Özellik kazandırma yapılandırması Açıklama
"featurization": 'auto' Ön işlemenin bir parçası olarak veri korumalarının ve özellik geliştirme adımlarının otomatik olarak yapıldığını belirtir. Bu ayar varsayılan ayardır.
"featurization": 'off' Özellik geliştirme adımlarının otomatik olarak yapılmadığını belirtir.
"featurization": 'FeaturizationConfig' Özelleştirilmiş özellik geliştirme adımlarının kullanıldığını belirtir. Daha fazla bilgi edinmek için bkz. Özellik geliştirmeyi özelleştirme.

Otomatik özellik kazandırma

Aşağıdaki tabloda, sistemin verilerinize otomatik olarak uyguladığı teknikler özetlemektedir. Bu teknikler, SDK veya stüdyo kullanıcı arabirimini kullanarak yapılandırdığınız denemeler için geçerlidir. Bu davranışı devre dışı bırakmak için "featurization": 'off' nesnenizde AutoMLConfig ayarlayın.

Özellik geliştirme adımları Açıklama
Yüksek kardinaliteli veya hiçbir varyans göstermeyen özellikleri düşürün* Eğitim ve doğrulama kümelerinden bu özellikleri bırakır. Tüm değerleri eksik olan, tüm satırlarda aynı değere sahip veya yüksek kardinaliteye (örneğin, karma değerler, kimlikler veya GUID'ler) sahip özellikler için geçerlidir.
Eksik değerlerin tamamlanması* Sayısal özellikler için, sütundaki değerlerin ortalamasıyla birlikte ifade eder.

Kategorik özellikler için, en sık kullanılan değerle ifade eder.
Daha fazla özellik oluşturma* DateTime özellikleri için: yıl, ay, gün, haftanın günü, yılın günü, çeyrek, yılın haftası, saat, dakika, saniye.

Tahmin görevleri için bu ek DateTime özellikleri oluşturulur: ISO yılı, yarım - yarım yıl, dize olarak takvim ayı, hafta, dize olarak haftanın günü, üç aylık dönem, yılın günü,/PM (için 0, pm için 1), dize olarak/PM, günün saati (12 saatlik temel).

Metin özellikleri için: tek birimleri, büyük harfleri ve trigramları temel alan terim sıklığı. Daha fazla bilgi edinmek için bkz . BERT tümleştirmesi.
Dönüştürme ve kodlama* Birkaç benzersiz değeri olan sayısal özellikleri kategorik özelliklere dönüştürür.

One-hot kodlama düşük kardinalite kategorik özellikleri için kullanılır. One-hot-hash kodlaması , yüksek kardinalite kategorik özellikleri için kullanılır.
Word eklemeleri Metin özellik oluşturucu, önceden eğitilmiş bir model kullanarak metin belirteçlerinin vektörlerini cümle vektörlerine dönüştürür. Her sözcüğün belgeye ekleme vektörleri, belge özellik vektörleri oluşturmak için geri kalanıyla birlikte toplanır.
Küme uzaklığı Tüm sayısal sütunlarda k-means kümeleme modelini eğitir. Her örneğin her kümenin merkez merkezine uzaklıklarını içeren k yeni özellikler (küme başına bir yeni sayısal özellik) üretir.

Uyarı

*AutoML tarafından oluşturulan modellerinizi bir ONNX modeline aktarmayı planlıyorsanız, ONNX biçiminde yalnızca yıldız işaretiyle belirtilen özellik özellikleri seçenekleri desteklenir. Daha fazla bilgi edinmek için bkz. AutoML ONNX modeliyle tahminde bulunma.

Her AutoML denemesinde sistem, algoritmaların iyi çalışmasına yardımcı olmak için verilerinizi otomatik olarak ölçeklendirir veya normalleştirir. Model eğitimi sırasında sistem, her modele aşağıdaki ölçeklendirme veya normalleştirme tekniklerinden birini uygular.

Ölçeklendirme ve işleme Açıklama
StandardScaler Ortalamayı kaldırarak ve birim varyansını ölçeklendirerek özellikleri standartlaştırır.
MinMaxScaler Her özelliği bu sütunun en düşük ve en yüksek düzeyine göre ölçeklendirerek özellikleri dönüştürür.
MaxAbsScaler Her özelliği maksimum mutlak değerine göre ölçeklendirir.
RobustScaler Özellikleri nicelik aralığına göre ölçeklendirir.
PCA Temel bileşen analizi. Verileri daha düşük boyutlu bir alana yansıtmak için Tekil Değer Ayrıştırma kullanılarak doğrusal boyutsallık azaltma.
TruncatedSVD Bu dönüştürücü, kesikli tekil değer ayrıştırma (SVD) kullanarak doğrusal boyutsal indirgeme gerçekleştirir. PCA'nın aksine, bu tahmin aracı tekil değer ayrıştırma işlemini hesaplamadan önce verileri ortalamaz; bu da matrislerle scipy.sparse verimli bir şekilde çalışabileceği anlamına gelir.
Normalizer En az bir sıfır olmayan bileşene sahip her örnek (diğer bir deyişle veri matrisinin her satırı), normunun (l1 veya l2) bire eşit olması için diğer örneklerden bağımsız olarak yeniden ölçeklendirilir.

Veri korumaları

Veri korumaları , verilerinizle ilgili eksik değerler veya dengesiz veriler gibi olası sorunları belirlemenize yardımcı olur. Ayrıca daha iyi sonuçlar elde etmek için düzeltici eylemler gerçekleştirmenize de yardımcı olur.

Veri korumalarını aşağıdaki yollarla uygulayın:

  • SDK denemeleri için: Parametreleri "featurization": 'auto' veya validation=auto nesnenizde AutoMLConfig belirtin.
  • Stüdyo denemeleri için: Otomatik özellik oluşturmayı etkinleştirin.

Denemeniz için veri korumalarını gözden geçirebilirsiniz:

  • Bir deneyi SDK kullanarak gönderdiğinizde, ayarını show_output=True olarak belirleyerek.
  • Stüdyoda, AutoML çalıştırmanızın Data guardrails sekmesinde.

Veri koruma durumları

Veri korumaları üç durumdan birini görüntüler:

Devlet Açıklama
Geçti Hiçbir veri sorunu algılanmadı ve herhangi bir eylem gerekli değildir.
Yapılmış Verilerinize değişiklikler uygulandı. Değişikliklerin beklenen sonuçlarla uyumlu olduğundan emin olmak için AutoML'nin yaptığı düzeltme eylemlerini gözden geçirin.
Uyarılır Bir veri sorunu algılandı ancak düzeltilemedi. Sorunu düzeltin.

Desteklenen veri korumaları

Aşağıdaki tabloda, şu anda desteklenen veri korumaları ve denemenizi gönderirken görebileceğiniz ilişkili durumlar açıklanmaktadır:

Koruyucu Bariyer Statü Tetikleyici koşulu
Eksik özellik değerlerinin tahmin edilmesi Geçti


Bitti
Eğitim verilerinizde eksik özellik değeri algılanmadı. Daha fazla bilgi edinmek için bkz. Özellik geliştirme ayarlarını yapılandırma.

Eğitim verilerinizde eksik özellik değerleri algılandı ve dolduruldu.
Yüksek kardinalite özelliği algılama Geçti


Bitti
Girişleriniz analiz edildi ve yüksek kardinalite özellikleri algılanmadı.

Girdilerinizdeki yüksek kardinalite özellikleri algılandı ve işlendi.
Doğrulama bölüm işlemi Bitti Doğrulama yapılandırması olarak 'auto' ayarlandı ve eğitim verileri 20.000'den az satır içeriyordu.
Eğitilen modelin her yinelemesi çapraz doğrulama kullanılarak doğrulandı. Doğrulama verileri hakkında daha fazla bilgi edinin.

Doğrulama yapılandırması olarak 'auto'ayarlandı ve eğitim verileri 20.000'den fazla satır içeriyordu.
Giriş verileri, modelin doğrulanması için bir eğitim veri kümesine ve doğrulama veri kümesine ayrılır.
Sınıf dengeleme algılama Geçti




Uyarıldı



Bitti
Girişleriniz analiz edildi ve tüm sınıflar eğitim verilerinizde dengelenir. Her sınıfın veri kümesinde örnek sayısı ve oranına göre ölçülen iyi bir gösterimi varsa veri kümesi dengeli olarak kabul edilir.

Girişlerinizde dengesiz sınıflar algılandı. Model sapmasını düzeltmek için dengeleme sorununu düzeltin. Dengesiz veriler hakkında daha fazla bilgi edinin.

Girişlerinizde dengesiz sınıflar algılandı ve süpürme mantığı dengeleme uygulamak için karar verdi.
Bellek sorunları algılama Geçti



Bitti
Seçilen değerler (ufuk, gecikme, kayan pencere) analiz edildi ve olası bellek yetersizliği sorunları algılanmadı. Zaman serisi tahmin yapılandırmaları hakkında daha fazla bilgi edinin.

Seçilen değerler (ufuk, gecikme, sıralı pencere) analiz edildi ve bu değerler, denemenizin belleğinin tükenmesine yol açabilir. Gecikme veya sıralı pencere yapılandırmaları devre dışı bırakılmıştır.
Sıklık algılama Geçti


Bitti
Zaman serisi analiz edildi ve tüm veri noktaları algılanan sıklık ile hizalanır.

Zaman serisi analiz edildi ve algılanan sıklık ile uyumlu olmayan veri noktaları algılandı. Bu veri noktaları veri kümesinden kaldırıldı.
Çapraz doğrulama Bitti AutoML tarafından eğitilen modeli doğru bir şekilde değerlendirmek için modelin eğitlenmemiş bir veri kümesini kullanın. Açık bir doğrulama veri kümesi sağlamazsanız, bunu başarmak için eğitim veri kümesinin bir bölümü kullanılır. Daha küçük veri kümeleri (20.000'den az örnek) için AutoML çapraz doğrulama kullanır. Daha büyük veri kümelerinde AutoML, doğrulama veri kümesi olarak hizmet vermek için eğitim verilerinden ayrılmış tek bir ayrı tutma kümesi kullanır. Giriş verileriniz için AutoML, eğitim örneklerinin sayısı 1.000'den azsa 10 kat ve diğer tüm durumlarda üç kat ile çapraz doğrulama kullanır.
Eğitim-test veri bölmesi Bitti AutoML tarafından eğitilen modeli doğru bir şekilde değerlendirmek için modelin eğitlenmemiş bir veri kümesini kullanın. Açık bir doğrulama veri kümesi sağlamazsanız, bunu başarmak için eğitim veri kümesinin bir bölümü kullanılır. Daha küçük veri kümeleri (20.000'den az örnek) için AutoML çapraz doğrulama kullanır. Daha büyük veri kümelerinde AutoML, doğrulama veri kümesi olarak hizmet vermek için eğitim verilerinden ayrılmış tek bir ayrı tutma kümesi kullanır. Bu nedenle, giriş verileriniz bir eğitim veri kümesine ve ayrılmış doğrulama veri kümesine bölünür.
Zaman serisi kimliği algılama Geçti


Düzeltildi
Veri kümesi analiz edildi ve yinelenen zaman dizini algılanmadı.

Veri kümesinde birden çok zaman serisi bulundu ve zaman serisi tanımlayıcıları veri kümeniz için otomatik olarak oluşturuldu.
Zaman serisi birleştirme Geçti


Düzeltildi
Veri kümesi sıklığı, kullanıcı tarafından belirtilen sıklık ile hizalanır. Toplama gerçekleştirilmedi.

Veriler, kullanıcı tarafından sağlanan sıklık ile uyumlu olacak şekilde toplanmıştır.
Kısa seri işleme Geçti


Düzeltildi
AutoML, giriş verilerindeki her seri için eğitime devam edebilmek amacıyla yeterli veri noktalarını algıladı.

AutoML bazı serilerin modeli eğitmek için yeterli veri noktası içermediğini algılamıştı. Eğitime devam etmek için AutoML bu kısa serileri bırakır veya ekler.

Özellik geliştirmeyi özelleştirme

Makine öğrenmesi modelinizi eğitmek için kullanılan verilerin ve özelliklerin ilgili tahminlere yol açtığından emin olmak için özellik geliştirme ayarlarınızı özelleştirin.

Özellik yapılandırmalarını özelleştirmek için "featurization": FeaturizationConfig nesnesinde AutoMLConfig belirtin. Denemeniz için Azure Machine Learning Stüdyosu kullanıyorsanız Özellik geliştirme ayarlarını yapılandırma bölümüne bakın. Tahmin görev türlerinin özellik geliştirmesini özelleştirmek için Özellik geliştirmeyi özelleştirme bölümüne bakın.

Desteklenen özelleştirmeler şunlardır:

Özelleştirme Tanım
Sütun amacının güncellenmesi Belirtilen sütun için otomatik algılanan özellik türünü geçersiz kılın.
Transformer parametre güncelleştirmesi Belirtilen transformatörün parametrelerini güncelleştirin. Şu anda Imputer (ortalama, en sık ve ortanca) ve HashOneHotEncoder'ı destekler.
Sütunları kaldır* Özellik çıkarmadan hariç tutulacak sütunları belirtir.
Blok transformatörleri Özellik geliştirme işleminde kullanılacak blok transformatörlerini belirtir.

Uyarı

Bırakma sütunları işlevselliği SDK sürüm 1.19 itibariyle kullanım dışıdır. Veri kümesinden sütunları AutoML denemenizde kullanmadan önce veri temizleme işleminin bir parçası olarak kaldırın.

API çağrılarını FeaturizationConfig kullanarak nesnesini oluşturun:

featurization_config = FeaturizationConfig()
featurization_config.blocked_transformers = ['LabelEncoder']
featurization_config.drop_columns = ['aspiration', 'stroke']
featurization_config.add_column_purpose('engine-size', 'Numeric')
featurization_config.add_column_purpose('body-style', 'CategoricalHash')
#default strategy mean, add transformer param for 3 columns
featurization_config.add_transformer_params('Imputer', ['engine-size'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['city-mpg'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['bore'], {"strategy": "most_frequent"})
featurization_config.add_transformer_params('HashOneHotEncoder', [], {"number_of_bits": 3})

Özellik kazandırma saydamlığı

Her AutoML modeli özellik geliştirmeyi otomatik olarak uygular. Özellik kazandırma, otomatik özellik mühendisliğini (ne zaman "featurization": 'auto') ve ölçeklendirmeyi ve normalleştirmeyi içerir. Bu adımlar seçilen algoritmayı ve hiper parametre değerlerini etkiler. AutoML, modelinize hangi özellik özelliği uygulandığını görmenize yardımcı olmak için farklı yöntemler sağlar.

Şu tahmin örneğini göz önünde bulundurun:

  • Veri kümesinin dört giriş özelliği vardır: A (Sayısal), B (Sayısal), C (Sayısal) ve D (DateTime).
  • İşlem, tüm benzersiz değerlere sahip bir kimlik sütunu olduğundan C sayısal özelliğini bırakır.
  • İşlem, A ve B özelliklerindeki sayısal eksik değerleri ortalamayı kullanarak doldurur.
  • Bu işlem, DateTime özelliği D'yi 11 farklı mühendislik özelliğine dönüştürmektedir.

Bu bilgileri elde etmek için fitted_model çıkışını AutoML deneme çalıştırmanızdan kullanın.

automl_config = AutoMLConfig(…)
automl_run = experiment.submit(automl_config …)
best_run, fitted_model = automl_run.get_output()

Otomatik özellik mühendisliği

İşlev, get_engineered_feature_names() mühendislik özelliği adlarının listesini döndürür.

Uyarı

'timeseriestransformer' için task='forecasting' kullanın. 'regression' veya 'classification' görevleri için 'datatransformer' kullanın.

fitted_model.named_steps['timeseriestransformer']. get_engineered_feature_names ()

Bu liste, tüm mühendislik özellikleri adlarını içerir.

['A', 'B', 'A_WASNULL', 'B_WASNULL', 'year', 'half', 'quarter', 'month', 'day', 'hour', 'am_pm', 'hour12', 'wday', 'qday', 'week']

get_featurization_summary() işlevi, tüm giriş özelliklerinin özelleştirme özetini alır.

fitted_model.named_steps['timeseriestransformer'].get_featurization_summary()

Çıktı

[{'RawFeatureName': 'A',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'B',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'C',
  'TypeDetected': 'Numeric',
  'Dropped': 'Yes',
  'EngineeredFeatureCount': 0,
  'Tranformations': []},
 {'RawFeatureName': 'D',
  'TypeDetected': 'DateTime',
  'Dropped': 'No',
  'EngineeredFeatureCount': 11,
  'Tranformations': ['DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime']}]
Çıktı Tanım
RawFeatureName Verilmiş olan veri kümesinden girdi özelliği veya sütun adı.
Tür Algılandı Giriş özelliğinin veri türü algılandı.
Düştü Giriş özelliğinin bırakıldığını veya kullanıldığını gösterir.
MühendislikÖzellikSayısı Otomatik özellik mühendisliği dönüşümleri aracılığıyla oluşturulan özellik sayısı.
Dönüşümler Mühendislik özellikleri oluşturmak için giriş özelliklerine uygulanan dönüştürmelerin listesi.

Ölçeklendirme ve normalleştirme

Ölçeklendirmeyi ve normalleştirmeyi anlamak ve seçilen algoritmayı hiper parametre değerleriyle görmek için kullanın fitted_model.steps.

Aşağıdaki örnek çıkış, seçilen bir çalıştırma için çalıştırıldığından fitted_model.steps gelir:

[('RobustScaler', 
  RobustScaler(copy=True, 
  quantile_range=[10, 90], 
  with_centering=True, 
  with_scaling=True)), 

  ('LogisticRegression', 
  LogisticRegression(C=0.18420699693267145, class_weight='balanced', 
  dual=False, 
  fit_intercept=True, 
  intercept_scaling=1, 
  max_iter=100, 
  multi_class='multinomial', 
  n_jobs=1, penalty='l2', 
  random_state=None, 
  solver='newton-cg', 
  tol=0.0001, 
  verbose=0, 
  warm_start=False))]

Daha fazla ayrıntı almak için şu yardımcı işlevi kullanın:

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()   

Belirli bir çalıştırma için LogisticRegression with RobustScalar özel algoritma olarak kullanıldığında, bu yardımcı işlev aşağıdaki çıktıyı döndürür.

RobustScaler
{'copy': True,
'quantile_range': [10, 90],
'with_centering': True,
'with_scaling': True}

LogisticRegression
{'C': 0.18420699693267145,
'class_weight': 'balanced',
'dual': False,
'fit_intercept': True,
'intercept_scaling': 1,
'max_iter': 100,
'multi_class': 'multinomial',
'n_jobs': 1,
'penalty': 'l2',
'random_state': None,
'solver': 'newton-cg',
'tol': 0.0001,
'verbose': 0,
'warm_start': False}

Sınıf olasılığını tahmin etme

AutoML'nin oluşturduğu modellerin, açık kaynak kaynak kaynak sınıfından işlevleri yansıtan sarmalayıcı nesneleri vardır. AutoML'nin döndürdüğü sınıflandırma modeli sarmalayıcı nesnelerinin predict_proba() çoğu işlevi uygular. Bu işlev, özelliklerinizin dizi benzeri veya seyrek matris veri örneğini (X değerleri) kabul eder ve her örneğin n boyutlu dizisini ve ilgili sınıf olasılığını döndürür.

Aynı çağrıları kullanarak en iyi çalışmayı ve eğitilmiş modeli alırsanız, predict_proba() öğesini doğrudan bu modelden çağırabilirsiniz. Model türüne bağlı olarak uygun biçimde bir X_test örnek sağlayın.

best_run, fitted_model = automl_run.get_output()
class_prob = fitted_model.predict_proba(X_test)

Temel alınan model predict_proba() işlevini desteklemiyorsa veya biçim yanlışsa, kod model sınıfına özgü bir özel durum oluşturur. Bu işlevin farklı model türleri için nasıl uygulandığına ilişkin örnekler için RandomForestClassifier ve XGBoost başvuru belgelerine bakın.

AutoML'de BERT tümleştirmesi

Transformatörlerden Çift Yönlü Kodlayıcı Gösterimleri (BERT), AutoML'nin özellik kazandırma katmanında kullanılır. Bu katmanda, bir sütun serbest metin veya zaman damgaları veya basit sayılar gibi başka veri türleri içeriyorsa, özellik belirleme buna uygun olarak uygulanır.

BERT için model, sağladığınız etiketler kullanılarak ince ayar yapılarak eğitilir. Model, belge gömmelerini, zaman damgası tabanlı özellikler ve haftanın günü gibi diğer özelliklerle birlikte özellik olarak çıkışlar.

Python ile doğal dil işleme modeli eğitmek için AutoML'yi ayarlamayı öğrenin.

BERT'yi çağırma adımları

BERT'yi çağırmak için, enable_dnn: Trueautoml_settings olarak ayarlayın ve bir GPU hesaplama (vm_size = "STANDARD_NC6" veya daha yüksek bir GPU) kullanın. CPU işlemi kullanıyorsanız AutoML, BERT yerine BiLSTM DNN özellik kazandırıcısını etkinleştirir.

AutoML, BERT için aşağıdaki adımları uygular:

  1. Tüm metin sütunlarını önişlemler ve belirteçler. Örneğin, StringCast transformatör son modelin özellik belirleme özetinde bulunabilir. Modelin özellik özetinin nasıl üretildiğine ilişkin bir örneği bu Jupyter not defterinde bulabilirsiniz.

  2. Tüm metin sütunlarını tek bir metin sütununa, dolayısıyla StringConcatTransformer son modelde birleştirir.

    BERT uygulamamız, bir eğitim örneğinin toplam metin uzunluğunu 128 belirteçle sınırlar. Diğer bir deyişle, birleştirilirken tüm metin sütunları ideal olarak en fazla 128 belirteç uzunluğunda olmalıdır. Birden çok sütun varsa, bu koşulun karşılanması için her sütunun ayıklanması gerekir. Aksi takdirde, 128 belirteçten uzun birleştirilmiş sütunlar için BERT'nin belirteç oluşturucu katmanı bu girişi 128 belirteçle kısaltır.

  3. Özellik süpürme işleminin bir parçası olarak AutoML, BERT'yi veri örneğindeki taban çizgisiyle (sözcük paketi özellikleri) karşılaştırır. Bu karşılaştırma, BERT'in doğruluk iyileştirmeleri verip vermeyeceğini belirler. BERT temelden daha iyi performans gösterirse, AutoML tüm veriler için metin özellik kazandırma için BERT kullanır. Bu durumda, PretrainedTextDNNTransformer öğesini son modelde görürsünüz.

BERT genellikle diğer özellik oluşturuculardan daha uzun çalışır. Daha iyi performans için RDMA özellikleri için STANDARD_NC24r veya STANDARD_NC24rs_V3 kullanın.

AutoML, kullanılabilir durumdaysa (en fazla sekiz düğüm) BERT eğitimini birden çok düğüm arasında dağıtır. AutoMLConfig nesnenizde max_concurrent_iterations parametresini 1'den yüksek bir değere ayarlayarak bunu yapabilirsiniz.

BERT için desteklenen diller

AutoML şu anda yaklaşık 100 dili desteklemektedir. Veri kümesinin diline bağlı olarak AutoML uygun BERT modelini seçer. Almanca veriler için Alman BERT modelini kullanır. İngilizce için İngilizce BERT modelini kullanır. Diğer tüm diller için çok dilli BERT modelini kullanır.

Aşağıdaki kodda, veri kümesi dili deu göre Almanca için üç harfli dil kodu olarak belirtildiğinden Almanca BERT modeli tetikleniyor:

from azureml.automl.core.featurization import FeaturizationConfig

featurization_config = FeaturizationConfig(dataset_language='deu')

automl_settings = {
    "experiment_timeout_minutes": 120,
    "primary_metric": 'accuracy',
# All other settings you want to use
    "featurization": featurization_config,
    
    "enable_dnn": True, # This enables BERT DNN featurizer
    "enable_voting_ensemble": False,
    "enable_stack_ensemble": False
}