in sdk/dotnet/AzureML-Samples-CSharp/Jobs/AutomlJob/AutoMLJobOperations.cs [274:358]
public static async Task<MachineLearningJobResource> SubmitAutoMLTextClassificationAsync(
ResourceGroupResource resourceGroup,
string workspaceName,
string id,
string experimentName,
string environmentId,
string computeId)
{
Console.WriteLine("Creating an AutoML TextClassification job...");
MachineLearningWorkspaceResource ws = await resourceGroup.GetMachineLearningWorkspaces().GetAsync(workspaceName);
var trainData = new MLTableJobInput(new Uri("https://raw.githubusercontent.com/Azure/azureml-examples/main/cli/jobs/automl-standalone-jobs/cli-automl-text-classification-newsgroup/training-mltable-folder"))
{
Mode = InputDeliveryMode.ReadOnlyMount,
Description = "Train data",
};
var validationData = new MLTableJobInput(new Uri("https://raw.githubusercontent.com/Azure/azureml-examples/main/cli/jobs/automl-standalone-jobs/cli-automl-text-classification-newsgroup/validation-mltable-folder"))
{
Mode = InputDeliveryMode.ReadOnlyMount,
Description = "Validation data",
};
var trainingData = new TrainingDataSettings(trainData);
AutoMLVertical taskDetails = new TextClassification()
{
LogVerbosity = LogVerbosity.Info,
LimitSettings = new NlpVerticalLimitSettings()
{
MaxConcurrentTrials = 2,
MaxTrials = 10,
// The max run duration in ISO 8601 format, after which the job will be cancelled.
// Experiment timeout needs to be between 00:15:00 and 7.00:00:00 if set.
//Timeout = TimeSpan.FromSeconds(1000),
},
PrimaryMetric = ClassificationPrimaryMetrics.AUCWeighted,
DataSettings = new NlpVerticalDataSettings("y", trainingData)
{
// Validation size must be between 0.01 and 0.99 inclusive when specified.
ValidationData = new NlpVerticalValidationDataSettings()
{
Data = validationData,
ValidationDataSize = .45,
},
//// Test size must be between 0 and 0.99 inclusive when specified.
//TestData = new TestDataSettings()
//{
// Data = testData,
// TestDataSize = .20,
//}
},
FeaturizationDatasetLanguage = "en",
};
var autoMLJob = new AutoMLJob(taskDetails)
{
ExperimentName = experimentName,
DisplayName = "AutoMLJob TextClassification-" + Guid.NewGuid().ToString("n").Substring(0, 6),
EnvironmentId = environmentId,
IsArchived = false,
ComputeId = computeId,
Resources = new ResourceConfiguration
{
InstanceCount = 3,
},
Properties = new Dictionary<string, string>
{
{ "property-name", "property-value" },
},
Tags = new Dictionary<string, string>
{
{ "tag-name", "tag-value" },
},
EnvironmentVariables = new Dictionary<string, string>()
{
{ "env-var", "env-var-value" }
},
Description = "This is a description of test AutoMLJob for TextClassification",
};
MachineLearningJobData MachineLearningJobData = new MachineLearningJobData(autoMLJob);
ArmOperation<MachineLearningJobResource> jobOperation = await ws.GetMachineLearningJobs().CreateOrUpdateAsync(WaitUntil.Completed, id, MachineLearningJobData);
MachineLearningJobResource jobResource = jobOperation.Value;
Console.WriteLine($"JobCreateOrUpdateOperation {jobResource.Data.Id} created.");
return jobResource;
}