Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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.
-
En son
azureml-train-automlpaketi yerel ortamınıza yükleyin. - En son
azureml-train-automlpaketle ilgili ayrıntılar için sürüm notlarına bakın.
Yapılandırma hakkında bilgi için aşağıdaki makalelere bakın:
- Kod öncelikli bir deneyim için: Python ile AutoML eğitimini ayarlama
- Kod içermeyen bir deneyim için: Studio kullanıcı arabirimiyle tablosal veriler için kod içermeyen AutoML eğitimi ayarlama
Ö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'veyavalidation=autonesnenizdeAutoMLConfigbelirtin. - 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=Trueolarak 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:
Tüm metin sütunlarını önişlemler ve belirteçler. Örneğin,
StringCasttransformatör son modelin özellik belirleme özetinde bulunabilir. Modelin özellik özetinin nasıl üretildiğine ilişkin bir örneği bu Jupyter not defterinde bulabilirsiniz.Tüm metin sütunlarını tek bir metin sütununa, dolayısıyla
StringConcatTransformerson 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.
Ö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
}