Köra ett automatiserat maskininlärningsexperiment

Slutförd

Om du vill köra ett autoML-experiment (automatiserad maskininlärning) kan du konfigurera och skicka jobbet med Python SDK.

Vilka algoritmer AutoML använder beror på vilken uppgift du anger. När du till exempel vill träna en klassificeringsmodell väljer AutoML från en lista med klassificeringsalgoritmer:

  • Logistisk regression
  • Ljus gradient boost machine (GBM)
  • Beslutsträd
  • Random Forest
  • Naïve Bayes
  • Linjär stödvektordator (SVM)
  • XGBoost
  • Och andra...

Tips/Råd

En fullständig lista över algoritmer som stöds finns i översikten över algoritmer som stöds.

Begränsa algoritmval

Som standard väljer AutoML slumpmässigt från hela algoritmintervallet för den angivna aktiviteten. Du kan välja att blockera enskilda algoritmer från att väljas. vilket kan vara användbart om du vet att dina data inte passar för en viss typ av algoritm. Du kan blockera vissa algoritmer om du måste följa en princip som begränsar vilken typ av maskininlärningsalgoritmer du kan använda i din organisation.

Konfigurera ett AutoML-experiment

När du använder Python SDK (v2) för att konfigurera ett AutoML-experiment eller -jobb konfigurerar du experimentet med hjälp av klassen automl. För klassificering använder automl.classification du funktionen enligt följande exempel:

from azure.ai.ml import automl

# configure the classification job
classification_job = automl.classification(
    compute="aml-cluster",
    experiment_name="auto-ml-class-dev",
    training_data=my_training_data_input,
    target_column_name="Diabetic",
    primary_metric="accuracy",
    n_cross_validations=5,
    enable_model_explainability=True
)

Anmärkning

AutoML behöver en MLTable-dataresurs som indata. I exemplet refererar my_training_data_input till en MLTable-datatillgång som skapats på Azure Machine Learning-arbetsytan.

Ange det primära måttet

En av de viktigaste inställningarna du måste ange är primary_metric. AutoML använder det primära måttet för att rangordna alla tränade modeller och välja den bästa. Azure Machine Learning stöder en uppsättning namngivna mått för varje aktivitetstyp.

Om du vill hämta listan över tillgängliga mått när du vill träna en klassificeringsmodell kan du använda funktionen ClassificationPrimaryMetrics som du ser här:

from azure.ai.ml.automl import ClassificationPrimaryMetrics
 
list(ClassificationPrimaryMetrics)

Tips/Råd

Du hittar en fullständig lista över primära mått och deras definitioner i utvärdera automatiserade maskininlärningsexperimentresultat.

Ange gränserna

Varje autoML-modelltåg förbrukar beräkningsresurser. Om du vill kontrollera kostnader och träningstid kan du ange gränser för ett AutoML-jobb med hjälp av set_limits().

Det finns flera alternativ för att ange gränser för ett AutoML-experiment:

  • timeout_minutes: Antal minuter efter vilket det fullständiga AutoML-experimentet avslutas.
  • trial_timeout_minutes: Maximalt antal minuter en testperiod kan pågå.
  • max_trials: Maximalt antal utvärderingsversioner eller modeller som tränas.
  • enable_early_termination: Om experimentet ska avslutas om poängen inte förbättras på kort sikt.
classification_job.set_limits(
    timeout_minutes=60, 
    trial_timeout_minutes=20, 
    max_trials=5,
    enable_early_termination=True,
)

För att spara tid kan du också köra flera utvärderingsversioner parallellt. När du använder ett beräkningskluster kan du ha så många parallella utvärderingsversioner som du har noder. Det maximala antalet parallella tester är därför relaterat till det maximala antalet noder i ditt beräkningskluster. Om du vill ange att det maximala antalet parallella utvärderingsversioner ska vara mindre än det maximala antalet noder kan du använda max_concurrent_trials.

Ange träningsegenskaperna

AutoML provar olika kombinationer av funktionalisering och algoritmer för att träna en maskininlärningsmodell. Om du redan vet att vissa algoritmer inte passar bra för dina data kan du exkludera (eller inkludera) en delmängd av de tillgängliga algoritmerna.

Du kan också välja om du vill tillåta att AutoML använder ensemblemodeller.

Skicka ett AutoML-experiment

Du kan skicka ett AutoML-jobb med följande kod:

# submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
) 

Du kan övervaka AutoML-jobbkörningar i Azure Machine Learning Studio. Så här hämtar du en direktlänk till AutoML-jobbet genom att köra följande kod:

aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)