public static async Task SubmitAutoMLTextClassificationAsync()

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