Cechowania danych w zautomatyzowanej usłudze Machine LearningData featurization in automated machine learning

Dowiedz się więcej na temat ustawień cechowania danych w Azure Machine Learning i sposobu dostosowywania tych funkcji do zautomatyzowanych eksperymentów usługi Machine Learning.Learn about the data featurization settings in Azure Machine Learning, and how to customize those features for automated machine learning experiments.

Inżynieria funkcji i cechowaniaFeature engineering and featurization

Dane szkoleniowe składają się z wierszy i kolumn.Training data consists of rows and columns. Każdy wiersz jest obserwacją lub rekordem, a kolumny każdego wiersza są funkcjami opisującymi każdy rekord.Each row is an observation or record, and the columns of each row are the features that describe each record. Zazwyczaj funkcje, które najlepiej charakteryzują wzorce w danych są wybrane do tworzenia modeli predykcyjnych.Typically, the features that best characterize the patterns in the data are selected to create predictive models.

Chociaż wiele pól danych pierwotnych można używać bezpośrednio do uczenia modelu, często konieczne jest utworzenie dodatkowych (wbudowanych) funkcji, które dostarczają informacji, które lepiej odróżniają wzorce w danych.Although many of the raw data fields can be used directly to train a model, it's often necessary to create additional (engineered) features that provide information that better differentiates patterns in the data. Ten proces jest nazywany inżynierią funkcji, gdzie wykorzystanie znajomości domeny danych jest używane do tworzenia funkcji, które z kolei pomagają algorytmom uczenia maszynowego w celu lepszego uczenia się.This process is called feature engineering, where the use of domain knowledge of the data is leveraged to create features that, in turn, help machine learning algorithms to learn better.

W Azure Machine Learning są stosowane techniki skalowania i normalizacji danych, które ułatwiają inżynierom funkcji.In Azure Machine Learning, data-scaling and normalization techniques are applied to make feature engineering easier. Wspólnie te techniki i inżynieria funkcji są nazywane cechowania w zautomatyzowanych eksperymentach ml.Collectively, these techniques and this feature engineering are called featurization in automated ML experiments.

Wymagania wstępnePrerequisites

W tym artykule założono, że wiesz już, jak skonfigurować zautomatyzowany eksperyment z tablicą.This article assumes that you already know how to configure an automated ML experiment. Informacje o konfiguracji można znaleźć w następujących artykułach:For information about configuration, see the following articles:

Konfigurowanie cechowaniaConfigure featurization

W każdym automatycznym doświadczeniu uczenia maszynowego Automatyczne skalowanie i techniki normalizacji są domyślnie stosowane do danych.In every automated machine learning experiment, automatic scaling and normalization techniques are applied to your data by default. Techniki te są typami cechowania, które pomagają określonym algorytmom, które są wrażliwe na funkcje w różnych skali.These techniques are types of featurization that help certain algorithms that are sensitive to features on different scales. Można włączyć więcej cechowania, takich jak brakujące wartości, które nie przypisywania, kodowania i transformacji.You can enable more featurization, such as missing-values imputation, encoding, and transforms.

Uwaga

Kroki dla zautomatyzowanej uczenia maszynowego cechowania (takie jak normalizacja funkcji, obsługa brakujących danych lub konwertowanie tekstu na liczbowe) stają się częścią modelu źródłowego.Steps for automated machine learning featurization (such as feature normalization, handling missing data, or converting text to numeric) become part of the underlying model. Gdy używasz modelu do prognozowania, te same czynności cechowania, które są stosowane podczas szkolenia, są automatycznie stosowane do danych wejściowych.When you use the model for predictions, the same featurization steps that are applied during training are applied to your input data automatically.

W przypadku eksperymentów skonfigurowanych za pomocą zestawu SDK języka Python można włączyć lub wyłączyć ustawienie cechowania oraz dodatkowo określić kroki cechowania, które mają być używane dla eksperymentu.For experiments that you configure with the Python SDK, you can enable or disable the featurization setting and further specify the featurization steps to be used for your experiment. Jeśli używasz programu Azure Machine Learning Studio, zapoznaj się z instrukcjami, aby włączyć cechowania.If you're using the Azure Machine Learning studio, see the steps to enable featurization.

W poniższej tabeli przedstawiono zaakceptowane ustawienia dla featurization klasy AutoMLConfig:The following table shows the accepted settings for featurization in the AutoMLConfig class:

Konfiguracja cechowaniaFeaturization configuration OpisDescription
"featurization": 'auto' Określa, że w ramach procesu wstępnego przetwarzania guardrails danych i cechowania kroki są wykonywane automatycznie.Specifies that, as part of preprocessing, data guardrails and featurization steps are to be done automatically. Jest to ustawienie domyślne.This setting is the default.
"featurization": 'off' Określa, że kroków cechowania nie należy wykonywać automatycznie.Specifies that featurization steps are not to be done automatically.
"featurization": 'FeaturizationConfig' Określa, że mają być używane niestandardowe kroki cechowania.Specifies that customized featurization steps are to be used. Dowiedz się, jak dostosować cechowania.Learn how to customize featurization.

Automatyczne cechowaniaAutomatic featurization

Poniższa tabela zawiera podsumowanie technik, które są automatycznie stosowane do danych.The following table summarizes techniques that are automatically applied to your data. Te techniki są stosowane do eksperymentów skonfigurowanych za pomocą zestawu SDK lub Studio.These techniques are applied for experiments that are configured by using the SDK or the studio. Aby wyłączyć to zachowanie, ustaw "featurization": 'off' w AutoMLConfig obiekcie.To disable this behavior, set "featurization": 'off' in your AutoMLConfig object.

Uwaga

Jeśli planujesz eksportować modele utworzone przez AutoML do modelu ONNX, w formacie ONNX są obsługiwane tylko opcje cechowania oznaczone gwiazdką ("*").If you plan to export your AutoML-created models to an ONNX model, only the featurization options indicated with an asterisk ("*") are supported in the ONNX format. Dowiedz się więcej o konwertowaniu modeli na ONNX.Learn more about converting models to ONNX.

Cechowania   krokiFeaturization steps OpisDescription
Porzuć wysoką Kardynalność lub brak funkcji wariancji*Drop high cardinality or no variance features* Porzuć te funkcje z poziomu szkoleń i zestawów walidacji.Drop these features from training and validation sets. Dotyczy funkcji mających wszystkie brakujące wartości, o tej samej wartości we wszystkich wierszach lub o dużej kardynalności (na przykład skrótów, identyfikatorów lub identyfikatorów GUID).Applies to features with all values missing, with the same value across all rows, or with high cardinality (for example, hashes, IDs, or GUIDs).
Brak wartości w postaci kalkulacyjne*Impute missing values* W przypadku funkcji liczbowych można obliczyć wartości w kolumnie.For numeric features, impute with the average of values in the column.

W przypadku funkcji kategorii wartość jest równa liczbie wartości.For categorical features, impute with the most frequent value.
Generuj więcej funkcji _Generate more features _ W przypadku funkcji DateTime: Year, month, Day, Day tygodnia, Day Year, Quarter, Week of Year, Hour, minute, Second.For DateTime features: Year, Month, Day, Day of week, Day of year, Quarter, Week of the year, Hour, Minute, Second.

_For prognozowania zadań, * są tworzone następujące dodatkowe funkcje DateTime: rok ISO, półroczny rok, miesiąc kalendarzowy jako ciąg, tydzień, dzień tygodnia jako ciąg, dzień kwartału, dzień roku, AM/PM (0 Jeśli godzina jest wcześniejsza niż południe (12 PM), 1 (w przeciwnym razie), AM/PM jako ciąg, godzina dnia (stawka 12-HR)_For forecasting tasks,* these additional DateTime features are created: ISO year, Half - half-year, Calendar month as string, Week, Day of week as string, Day of quarter, Day of year, AM/PM (0 if hour is before noon (12 pm), 1 otherwise), AM/PM as string, Hour of day (12-hr basis)

W przypadku funkcji tekstowych: Częstotliwość okresu oparta na unigrams, rozgramach i trigrams.For Text features: Term frequency based on unigrams, bigrams, and trigrams. Dowiedz się więcej o tym, jak to zrobić za pomocą Bert.Learn more about how this is done with BERT.
Przekształcanie i kodowanie*Transform and encode* Przekształć funkcje liczbowe, które mają kilka unikatowych wartości w funkcjach kategorii.Transform numeric features that have few unique values into categorical features.

Kodowanie jednostronicowe jest używane w przypadku funkcji kategorii o niskiej kardynalności.One-hot encoding is used for low-cardinality categorical features. Kodowanie jednostronicowe jest używane w przypadku funkcji kategorii wysoka Kardynalność.One-hot-hash encoding is used for high-cardinality categorical features.
Osadzanie wyrazówWord embeddings Tekst featurized konwertuje wektory tokenów tekstowych na wektory zdania przy użyciu wstępnie nauczonego modelu.A text featurizer converts vectors of text tokens into sentence vectors by using a pre-trained model. Wektor osadzania każdego wyrazu w dokumencie jest agregowany wraz z resztą w celu utworzenia wektora funkcji dokumentu.Each word's embedding vector in a document is aggregated with the rest to produce a document feature vector.
Odległość klastraCluster Distance Pociąga k-oznacza model klastra dla wszystkich kolumn liczbowych.Trains a k-means clustering model on all numeric columns. Tworzy k nowe funkcje (jedna nowa funkcja liczbowa na klaster), które zawierają odległość poszczególnych próbek do centroida każdego klastra.Produces k new features (one new numeric feature per cluster) that contain the distance of each sample to the centroid of each cluster.

Guardrails danychData guardrails

Guardrails danych pomaga identyfikować potencjalne problemy związane z danymi (na przykład brakujące wartości lub niezrównoważone klasy).Data guardrails help you identify potential issues with your data (for example, missing values or class imbalance). Ułatwiają one także podejmowanie działań naprawczych w celu uzyskania lepszych wyników.They also help you take corrective actions for improved results.

Guardrails danych są stosowane:Data guardrails are applied:

  • Dla eksperymentów zestawu SDK: Kiedy parametry "featurization": 'auto' lub validation=auto są określone w AutoMLConfig obiekcie.For SDK experiments: When the parameters "featurization": 'auto' or validation=auto are specified in your AutoMLConfig object.
  • Eksperymenty dotyczące programu Studio: gdy jest włączona funkcja automatycznej cechowania.For studio experiments: When automatic featurization is enabled.

Możesz przejrzeć guardrails danych dla eksperymentu:You can review the data guardrails for your experiment:

  • Przez ustawienie show_output=True podczas przesyłania eksperymentu za pomocą zestawu SDK.By setting show_output=True when you submit an experiment by using the SDK.

  • W programie Studio na karcie Guardrails danych w zautomatyzowanym przebiegu ml.In the studio, on the Data guardrails tab of your automated ML run.

Stany Guardrail danychData guardrail states

Guardrails danych wyświetla jeden z trzech stanów:Data guardrails display one of three states:

StanState OpisDescription
PrzeniesionePassed Nie wykryto żadnych problemów z danymi i nie jest wymagana żadna akcja.No data problems were detected and no action is required by you.
GotoweDone Zmiany zostały zastosowane do Twoich danych.Changes were applied to your data. Zachęcamy do przeglądania działań naprawczych, które AutoML, aby upewnić się, że zmiany są wyrównane z oczekiwanymi wynikami.We encourage you to review the corrective actions that AutoML took, to ensure that the changes align with the expected results.
AlertyAlerted Wykryto problem dotyczący danych, ale nie można go rozwiązać.A data issue was detected but couldn't be remedied. Zachęcamy do poprawiania i rozwiązywania problemów.We encourage you to revise and fix the issue.

Obsługiwane guardrails danychSupported data guardrails

W poniższej tabeli opisano aktualnie obsługiwane guardrails danych oraz powiązane Stany, które mogą zostać wyświetlone podczas przesyłania eksperymentu:The following table describes the data guardrails that are currently supported and the associated statuses that you might see when you submit your experiment:

GuardrailGuardrail StanStatus Warunek   dla   wyzwalaczaCondition for trigger
Brak przypisywania wartości funkcjiMissing feature values imputation PrzeniesionePassed


GotoweDone
Nie wykryto żadnych wartości funkcji w danych szkoleniowych.No missing feature values were detected in your training data. Dowiedz się więcej o przypisywaniu brakujących wartości.Learn more about missing-value imputation.

W danych szkoleniowych wykryto brakujące wartości funkcji i zostały one przypisane.Missing feature values were detected in your training data and were imputed.
Obsługa funkcji wysokiej kardynalnościHigh cardinality feature handling PrzeniesionePassed


GotoweDone
Dane wejściowe zostały przeanalizowane i nie wykryto żadnych funkcji wysokiej kardynalności.Your inputs were analyzed, and no high-cardinality features were detected.

W danych wejściowych wykryto funkcje wysokiej kardynalności i zostały obsłużone.High-cardinality features were detected in your inputs and were handled.
Obsługa podziału walidacjiValidation split handling GotoweDone Konfiguracja sprawdzania poprawności została ustawiona na 'auto' , a dane szkoleniowe zawierają mniej niż 20 000 wierszy.The validation configuration was set to 'auto' and the training data contained fewer than 20,000 rows.
Każda iteracja przeszkolonego modelu została zweryfikowana za pomocą weryfikacji krzyżowej.Each iteration of the trained model was validated by using cross-validation. Dowiedz się więcej o danych sprawdzania poprawności.Learn more about validation data.

Konfiguracja walidacji została ustawiona na 'auto' , a dane szkoleniowe zawierały więcej niż 20 000 wierszy.The validation configuration was set to 'auto', and the training data contained more than 20,000 rows.
Dane wejściowe zostały podzielone na zestaw danych szkoleniowych i zestaw danych walidacji w celu sprawdzenia poprawności modelu.The input data has been split into a training dataset and a validation dataset for validation of the model.
Wykrywanie równoważenia klasyClass balancing detection PrzeniesionePassed



AlertyAlerted


GotoweDone
Dane wejściowe zostały przeanalizowane i wszystkie klasy są zrównoważone w danych szkoleniowych.Your inputs were analyzed, and all classes are balanced in your training data. Zestaw danych jest uznawany za zrównoważony, jeśli każda klasa ma dobrą reprezentację w zestawie danych, zgodnie z liczbą i stosunkiem próbek.A dataset is considered to be balanced if each class has good representation in the dataset, as measured by number and ratio of samples.

Wykryto niezrównoważone klasy w danych wejściowych.Imbalanced classes were detected in your inputs. Aby naprawić odchylenia modelu, napraw problem z równoważeniem.To fix model bias, fix the balancing problem. Dowiedz się więcej o niezrównoważonych danych.Learn more about imbalanced data.

W danych wejściowych wykryto niezrównoważone klasy, a logika czyszczenia została określona w celu zastosowania równoważenia.Imbalanced classes were detected in your inputs and the sweeping logic has determined to apply balancing.
Wykrywanie problemów z pamięciąMemory issues detection PrzeniesionePassed



GotoweDone

Przeanalizowane wybrane wartości (horyzont, zwłoka, stopniowe okno) i nie wykryto problemów braku pamięci.The selected values (horizon, lag, rolling window) were analyzed, and no potential out-of-memory issues were detected. Dowiedz się więcej na temat konfiguracji prognozowaniaszeregów czasowych.Learn more about time-series forecasting configurations.


Przeanalizowane zostały wybrane wartości (horyzont, zwłoka, stopniowe okno) i może to spowodować brak pamięci przez eksperyment.The selected values (horizon, lag, rolling window) were analyzed and will potentially cause your experiment to run out of memory. Konfiguracje opóźnienia lub przedziału czasu zostały wyłączone.The lag or rolling-window configurations have been turned off.
Wykrywanie częstotliwościFrequency detection PrzeniesionePassed



GotoweDone

Przeanalizowane serie czasowe, a wszystkie punkty danych są wyrównane z wykrytą częstotliwością.The time series was analyzed, and all data points are aligned with the detected frequency.

Wykryto punkty danych, które nie są wyrównane z wykrytą częstotliwością.The time series was analyzed, and data points that don't align with the detected frequency were detected. Te punkty danych zostały usunięte z zestawu danych.These data points were removed from the dataset. Dowiedz się więcej o przygotowaniu danych na potrzeby prognozowania szeregów czasowych.Learn more about data preparation for time-series forecasting.

Dostosuj cechowaniaCustomize featurization

Możesz dostosować ustawienia cechowania, aby upewnić się, że dane i funkcje, które są używane do uczenia modelu ML, powodują odpowiednie przewidywania.You can customize your featurization settings to ensure that the data and features that are used to train your ML model result in relevant predictions.

Aby dostosować featurizations, określ "featurization": FeaturizationConfig w AutoMLConfig obiekcie.To customize featurizations, specify "featurization": FeaturizationConfig in your AutoMLConfig object. Jeśli używasz programu Azure Machine Learning Studio dla eksperymentu, zapoznaj się z artykułem jak to zrobić.If you're using the Azure Machine Learning studio for your experiment, see the how-to article. Aby dostosować cechowania do prognozowania typów zadań, zapoznaj się z tematem prognozowanie, jak to zrobić.To customize featurization for forecastings task types, refer to the forecasting how-to.

Obsługiwane dostosowania obejmują:Supported customizations include:

DostosowywanieCustomization DefinicjaDefinition
Aktualizacja celu kolumnyColumn purpose update Zastąp automatycznie wykryty typ funkcji dla określonej kolumny.Override the autodetected feature type for the specified column.
Aktualizacja parametru TransformerTransformer parameter update Zaktualizuj parametry dla określonej funkcji przekształcania.Update the parameters for the specified transformer. Obecnie obsługuje program obsługujący (Oredni, najczęstszy i średni) oraz HashOneHotEncoder.Currently supports Imputer (mean, most frequent, and median) and HashOneHotEncoder.
Usuwanie kolumnDrop columns Określa kolumny do porzucenia z featurized.Specifies columns to drop from being featurized.
Blokuj TransformatoryBlock transformers Określa Transformatory blokowe, które mają być używane w procesie cechowania.Specifies block transformers to be used in the featurization process.

Uwaga

Funkcja kolumn upuszczania jest przestarzała w przypadku zestawu SDK w wersji 1,19.The drop columns functionality is deprecated as of SDK version 1.19. Upuszczaj kolumny z zestawu danych w ramach czyszczenia danych przed ich użyciem w trakcie zautomatyzowanego eksperymentu ML.Drop columns from your dataset as part of data cleansing, prior to consuming it in your automated ML experiment.

Utwórz FeaturizationConfig Obiekt przy użyciu wywołań interfejsu API:Create the FeaturizationConfig object by using API calls:

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

Przezroczystość cechowaniaFeaturization transparency

Każdy model AutoML ma cechowania automatycznie stosowane.Every AutoML model has featurization automatically applied. Cechowania obejmuje zautomatyzowane funkcje inżynieryjne (gdy "featurization": 'auto' ) i skalowanie i normalizacji, które następnie mają wpływ na wybrany algorytm i jego wartości parametrów.Featurization includes automated feature engineering (when "featurization": 'auto') and scaling and normalization, which then impacts the selected algorithm and its hyperparameter values. AutoML obsługuje różne metody, aby mieć wgląd w to, co zostało zastosowane do modelu.AutoML supports different methods to ensure you have visibility into what was applied to your model.

Rozważmy ten przykład prognozowania:Consider this forecasting example:

  • Istnieją cztery funkcje wejściowe: A (numeryczne), B (numeryczne), C (numeric), D (DateTime).There are four input features: A (Numeric), B (Numeric), C (Numeric), D (DateTime).
  • Funkcja liczbowa C została porzucona, ponieważ jest kolumną identyfikatora ze wszystkimi unikatowymi wartościami.Numeric feature C is dropped because it is an ID column with all unique values.
  • Funkcje liczbowe a i B mają brakujące wartości i dlatego są przypisane do średniej.Numeric features A and B have missing values and hence are imputed by the mean.
  • Funkcja DateTime D jest featurized do 11 różnych wbudowanych funkcji.DateTime feature D is featurized into 11 different engineered features.

Aby uzyskać te informacje, użyj fitted_model danych wyjściowych z zautomatyzowanego przebiegu eksperymentu ml.To get this information, use the fitted_model output from your automated ML experiment run.

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

Zautomatyzowana funkcja inżynieriiAutomated feature engineering

get_engineered_feature_names()Zwraca listę nazw przytworzonych funkcji.The get_engineered_feature_names() returns a list of engineered feature names.

Uwaga

Użyj elementu "timeseriestransformer" dla zadania = "prognozowanie", w przeciwnym razie użyj "datatransformer" dla zadania "regresja" lub "Klasyfikacja".Use 'timeseriestransformer' for task='forecasting', else use 'datatransformer' for 'regression' or 'classification' task.

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

Ta lista zawiera wszystkie zaprojektowane nazwy funkcji.This list includes all engineered feature names.

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

get_featurization_summary()Pobiera podsumowanie wszystkich funkcji wejściowych cechowania.The get_featurization_summary() gets a featurization summary of all the input features.

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

Dane wyjścioweOutput

[{'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']}]
Dane wyjścioweOutput DefinicjaDefinition
RawFeatureNameRawFeatureName Podano nazwę funkcji/kolumny wejściowej z zestawu danych.Input feature/column name from the dataset provided.
TypeDetectedTypeDetected Wykryto typ danych funkcji wejściowej.Detected datatype of the input feature.
PorzuconyDropped Wskazuje, czy funkcja wejściowa została porzucona lub użyta.Indicates if the input feature was dropped or used.
EngineeringFeatureCountEngineeringFeatureCount Liczba funkcji generowanych przez automatyczne transformacje inżynieryjnych funkcji.Number of features generated through automated feature engineering transforms.
PrzekształceniaTransformations Lista transformacji zastosowanych do funkcji wejściowych do generowania przetworzonych funkcji.List of transformations applied to input features to generate engineered features.

Skalowanie i normalizacjaScaling and normalization

Aby zrozumieć skalowanie/normalizację i wybrany algorytm przy użyciu wartości parametru, użyj fitted_model.steps .To understand the scaling/normalization and the selected algorithm with its hyperparameter values, use fitted_model.steps.

Następujące przykładowe dane wyjściowe są uruchamiane fitted_model.steps dla wybranego przebiegu:The following sample output is from running fitted_model.steps for a chosen run:

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

Aby uzyskać więcej informacji, Użyj tej funkcji pomocnika:To get more details, use this helper function:

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] + ' - ')
        else:
            pprint(step[1].get_params())
            print()

print_model(model)

Ta funkcja pomocnika zwraca następujące dane wyjściowe dla określonego uruchomienia LogisticRegression with RobustScalar , używając jako algorytmu określonego.This helper function returns the following output for a particular run using LogisticRegression with RobustScalar as the specific algorithm.

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}

Prawdopodobieństwo przewidywania klasyPredict class probability

Modele wytwarzane za pomocą zautomatyzowanej ML wszystkie mają obiekty otoki, które są dublowane z klasy pochodzenia Open Source.Models produced using automated ML all have wrapper objects that mirror functionality from their open-source origin class. Większość obiektów otoki modelu klasyfikacji zwróconych przez zautomatyzowaną predict_proba() tablicę implementuje funkcję, która akceptuje przykład danych macierzy podobnej do tablicy lub rozrzedzonej (wartości X), i zwraca tablicę n-wymiarową każdego przykładu i odpowiadającą jej wartość prawdopodobieństwa klasy.Most classification model wrapper objects returned by automated ML implement the predict_proba() function, which accepts an array-like or sparse matrix data sample of your features (X values), and returns an n-dimensional array of each sample and its respective class probability.

Przy założeniu, że pobrano najlepszy przebieg i zamontowany model przy użyciu tych samych wywołań z powyższych, można wywołać predict_proba() bezpośrednio z poziomu dopasowanego modelu, dostarczając X_test przykład w odpowiednim formacie, w zależności od typu modelu.Assuming you have retrieved the best run and fitted model using the same calls from above, you can call predict_proba() directly from the fitted model, supplying an X_test sample in the appropriate format depending on the model type.

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

Jeśli model źródłowy nie obsługuje predict_proba() funkcji lub format jest niepoprawny, zostanie zgłoszony wyjątek specyficzny dla klasy modelu.If the underlying model does not support the predict_proba() function or the format is incorrect, a model class-specific exception will be thrown. Zobacz dokumenty referencyjne RandomForestClassifier i XGBoost , aby zapoznać się z przykładami tego, jak ta funkcja jest zaimplementowana dla różnych typów modeli.See the RandomForestClassifier and XGBoost reference docs for examples of how this function is implemented for different model types.

Integracja BERT w zautomatyzowanej MLBERT integration in automated ML

Bert jest używany w warstwie cechowania AutoML.BERT is used in the featurization layer of AutoML. W tej warstwie, jeśli kolumna zawiera wolny tekst lub inne typy danych, takie jak Timestamps lub Simple Numbers, cechowania jest odpowiednio stosowany.In this layer, if a column contains free text or other types of data like timestamps or simple numbers, then featurization is applied accordingly.

W przypadku BERT model jest dostrojony i szkolony przy użyciu etykiet dostarczonych przez użytkownika.For BERT, the model is fine-tuned and trained utilizing the user-provided labels. W tym miejscu osadzania dokumentów są wyprowadzane jako funkcje obok innych, takie jak funkcje oparte na sygnaturach czasowych, dzień tygodnia.From here, document embeddings are output as features alongside others, like timestamp-based features, day of week.

Procedura wywoływania BERTSteps to invoke BERT

Aby wywoływać BERT, ustaw enable_dnn: True w automl_settings i użyj procesora GPU ( vm_size = "STANDARD_NC6" lub wyższego procesora GPU).In order to invoke BERT, set enable_dnn: True in your automl_settings and use a GPU compute (vm_size = "STANDARD_NC6" or a higher GPU). Jeśli jest używane obliczenie procesora CPU, a nie BERT, AutoML włącza BiLSTM DNN featurized.If a CPU compute is used, then instead of BERT, AutoML enables the BiLSTM DNN featurizer.

AutoML wykonuje następujące kroki dla BERT.AutoML takes the following steps for BERT.

  1. Przetwarzanie wstępne i tokenizacji wszystkich kolumn tekstowych.Preprocessing and tokenization of all text columns. Na przykład transformator "StringCast" można znaleźć w podsumowaniu cechowania modelu końcowego.For example, the "StringCast" transformer can be found in the final model's featurization summary. Przykład sposobu tworzenia podsumowania cechowania modelu można znaleźć w tym notesie.An example of how to produce the model's featurization summary can be found in this notebook.

  2. Połącz wszystkie kolumny tekstowe w pojedynczą kolumnę tekstową, a tym samym StringConcatTransformer w modelu końcowym.Concatenate all text columns into a single text column, hence the StringConcatTransformer in the final model.

    Nasza implementacja BERT ogranicza łączną długość tekstu szkolenia do 128 tokenów.Our implementation of BERT limits total text length of a training sample to 128 tokens. Oznacza to, że wszystkie kolumny tekstowe, gdy są połączone, powinny mieć maksymalnie 128 tokenów.That means, all text columns when concatenated, should ideally be at most 128 tokens in length. Jeśli istnieją wiele kolumn, należy oczyścić każdą kolumnę, aby ten warunek został spełniony.If multiple columns are present, each column should be pruned so this condition is satisfied. W przeciwnym razie dla połączonych kolumn o długości >128 tokenów BERT tokenizatora, że dane wejściowe są obcinane do tokenów 128.Otherwise, for concatenated columns of length >128 tokens BERT's tokenizer layer truncates this input to 128 tokens.

  3. W ramach czyszczenia funkcji AutoML porównuje BERT z linią bazową (zbiorem funkcji słowa) na przykład danych.As part of feature sweeping, AutoML compares BERT against the baseline (bag of words features) on a sample of the data. To porównanie określa, czy BERT da ulepszenia dokładności.This comparison determines if BERT would give accuracy improvements. Jeśli BERT wykonuje lepsze niż linia bazowa, AutoML następnie używa BERT dla cechowania tekstu dla wszystkich danych.If BERT performs better than the baseline, AutoML then uses BERT for text featurization for the whole data. W takim przypadku zobaczysz PretrainedTextDNNTransformer w modelu końcowym.In that case, you will see the PretrainedTextDNNTransformer in the final model.

BERT zazwyczaj działa dłużej niż inne featurizers.BERT generally runs longer than other featurizers. W celu uzyskania lepszej wydajności zalecamy korzystanie z funkcji RDMA "STANDARD_NC24r" lub "STANDARD_NC24rs_V3".For better performance, we recommend using "STANDARD_NC24r" or "STANDARD_NC24rs_V3" for their RDMA capabilities.

AutoML będzie dystrybuować szkolenia BERT w wielu węzłach, jeśli są dostępne (maksymalnie osiem węzłów).AutoML will distribute BERT training across multiple nodes if they are available (upto a max of eight nodes). Można to zrobić w AutoMLConfig obiekcie przez ustawienie max_concurrent_iterations parametru na wartość większą niż 1.This can be done in your AutoMLConfig object by setting the max_concurrent_iterations parameter to higher than 1.

Obsługiwane języki dla BERT w autoMLSupported languages for BERT in autoML

AutoML obecnie obsługuje około 100 języków i w zależności od języka zestawu danych autoML wybiera odpowiedni model BERT.AutoML currently supports around 100 languages and depending on the dataset's language, autoML chooses the appropriate BERT model. W przypadku danych niemieckich korzystamy z niemieckiego modelu BERT.For German data, we use the German BERT model. W przypadku języka angielskiego używany jest model BERT w języku angielskim.For English, we use the English BERT model. W przypadku wszystkich innych języków używamy wielojęzykowego modelu BERT.For all other languages, we use the multilingual BERT model.

W poniższym kodzie jest wyzwalany niemiecki model BERT, ponieważ język zestawu danych jest określony jako deu , kod języka niemieckiego dla Niemiec, zgodnie z klasyfikacją ISO:In the following code, the German BERT model is triggered, since the dataset language is specified to deu, the three letter language code for German according to ISO classification:

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
}

Następne krokiNext steps