All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.machinelearningservices.inputs.ClassificationArgs Maven / Gradle / Ivy

There is a newer version: 2.82.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.machinelearningservices.inputs;

import com.pulumi.azurenative.machinelearningservices.enums.ClassificationPrimaryMetrics;
import com.pulumi.azurenative.machinelearningservices.enums.LogVerbosity;
import com.pulumi.azurenative.machinelearningservices.inputs.AutoNCrossValidationsArgs;
import com.pulumi.azurenative.machinelearningservices.inputs.ClassificationTrainingSettingsArgs;
import com.pulumi.azurenative.machinelearningservices.inputs.CustomNCrossValidationsArgs;
import com.pulumi.azurenative.machinelearningservices.inputs.MLTableJobInputArgs;
import com.pulumi.azurenative.machinelearningservices.inputs.TableVerticalFeaturizationSettingsArgs;
import com.pulumi.azurenative.machinelearningservices.inputs.TableVerticalLimitSettingsArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Classification task in AutoML Table vertical.
 * 
 */
public final class ClassificationArgs extends com.pulumi.resources.ResourceArgs {

    public static final ClassificationArgs Empty = new ClassificationArgs();

    /**
     * Columns to use for CVSplit data.
     * 
     */
    @Import(name="cvSplitColumnNames")
    private @Nullable Output> cvSplitColumnNames;

    /**
     * @return Columns to use for CVSplit data.
     * 
     */
    public Optional>> cvSplitColumnNames() {
        return Optional.ofNullable(this.cvSplitColumnNames);
    }

    /**
     * Featurization inputs needed for AutoML job.
     * 
     */
    @Import(name="featurizationSettings")
    private @Nullable Output featurizationSettings;

    /**
     * @return Featurization inputs needed for AutoML job.
     * 
     */
    public Optional> featurizationSettings() {
        return Optional.ofNullable(this.featurizationSettings);
    }

    /**
     * Execution constraints for AutoMLJob.
     * 
     */
    @Import(name="limitSettings")
    private @Nullable Output limitSettings;

    /**
     * @return Execution constraints for AutoMLJob.
     * 
     */
    public Optional> limitSettings() {
        return Optional.ofNullable(this.limitSettings);
    }

    /**
     * Log verbosity for the job.
     * 
     */
    @Import(name="logVerbosity")
    private @Nullable Output> logVerbosity;

    /**
     * @return Log verbosity for the job.
     * 
     */
    public Optional>> logVerbosity() {
        return Optional.ofNullable(this.logVerbosity);
    }

    /**
     * Number of cross validation folds to be applied on training dataset
     * when validation dataset is not provided.
     * 
     */
    @Import(name="nCrossValidations")
    private @Nullable Output> nCrossValidations;

    /**
     * @return Number of cross validation folds to be applied on training dataset
     * when validation dataset is not provided.
     * 
     */
    public Optional>> nCrossValidations() {
        return Optional.ofNullable(this.nCrossValidations);
    }

    /**
     * Positive label for binary metrics calculation.
     * 
     */
    @Import(name="positiveLabel")
    private @Nullable Output positiveLabel;

    /**
     * @return Positive label for binary metrics calculation.
     * 
     */
    public Optional> positiveLabel() {
        return Optional.ofNullable(this.positiveLabel);
    }

    /**
     * Primary metric for the task.
     * 
     */
    @Import(name="primaryMetric")
    private @Nullable Output> primaryMetric;

    /**
     * @return Primary metric for the task.
     * 
     */
    public Optional>> primaryMetric() {
        return Optional.ofNullable(this.primaryMetric);
    }

    /**
     * Target column name: This is prediction values column.
     * Also known as label column name in context of classification tasks.
     * 
     */
    @Import(name="targetColumnName")
    private @Nullable Output targetColumnName;

    /**
     * @return Target column name: This is prediction values column.
     * Also known as label column name in context of classification tasks.
     * 
     */
    public Optional> targetColumnName() {
        return Optional.ofNullable(this.targetColumnName);
    }

    /**
     * AutoMLJob Task type.
     * Expected value is 'Classification'.
     * 
     */
    @Import(name="taskType", required=true)
    private Output taskType;

    /**
     * @return AutoMLJob Task type.
     * Expected value is 'Classification'.
     * 
     */
    public Output taskType() {
        return this.taskType;
    }

    /**
     * Test data input.
     * 
     */
    @Import(name="testData")
    private @Nullable Output testData;

    /**
     * @return Test data input.
     * 
     */
    public Optional> testData() {
        return Optional.ofNullable(this.testData);
    }

    /**
     * The fraction of test dataset that needs to be set aside for validation purpose.
     * Values between (0.0 , 1.0)
     * Applied when validation dataset is not provided.
     * 
     */
    @Import(name="testDataSize")
    private @Nullable Output testDataSize;

    /**
     * @return The fraction of test dataset that needs to be set aside for validation purpose.
     * Values between (0.0 , 1.0)
     * Applied when validation dataset is not provided.
     * 
     */
    public Optional> testDataSize() {
        return Optional.ofNullable(this.testDataSize);
    }

    /**
     * [Required] Training data input.
     * 
     */
    @Import(name="trainingData", required=true)
    private Output trainingData;

    /**
     * @return [Required] Training data input.
     * 
     */
    public Output trainingData() {
        return this.trainingData;
    }

    /**
     * Inputs for training phase for an AutoML Job.
     * 
     */
    @Import(name="trainingSettings")
    private @Nullable Output trainingSettings;

    /**
     * @return Inputs for training phase for an AutoML Job.
     * 
     */
    public Optional> trainingSettings() {
        return Optional.ofNullable(this.trainingSettings);
    }

    /**
     * Validation data inputs.
     * 
     */
    @Import(name="validationData")
    private @Nullable Output validationData;

    /**
     * @return Validation data inputs.
     * 
     */
    public Optional> validationData() {
        return Optional.ofNullable(this.validationData);
    }

    /**
     * The fraction of training dataset that needs to be set aside for validation purpose.
     * Values between (0.0 , 1.0)
     * Applied when validation dataset is not provided.
     * 
     */
    @Import(name="validationDataSize")
    private @Nullable Output validationDataSize;

    /**
     * @return The fraction of training dataset that needs to be set aside for validation purpose.
     * Values between (0.0 , 1.0)
     * Applied when validation dataset is not provided.
     * 
     */
    public Optional> validationDataSize() {
        return Optional.ofNullable(this.validationDataSize);
    }

    /**
     * The name of the sample weight column. Automated ML supports a weighted column as an input, causing rows in the data to be weighted up or down.
     * 
     */
    @Import(name="weightColumnName")
    private @Nullable Output weightColumnName;

    /**
     * @return The name of the sample weight column. Automated ML supports a weighted column as an input, causing rows in the data to be weighted up or down.
     * 
     */
    public Optional> weightColumnName() {
        return Optional.ofNullable(this.weightColumnName);
    }

    private ClassificationArgs() {}

    private ClassificationArgs(ClassificationArgs $) {
        this.cvSplitColumnNames = $.cvSplitColumnNames;
        this.featurizationSettings = $.featurizationSettings;
        this.limitSettings = $.limitSettings;
        this.logVerbosity = $.logVerbosity;
        this.nCrossValidations = $.nCrossValidations;
        this.positiveLabel = $.positiveLabel;
        this.primaryMetric = $.primaryMetric;
        this.targetColumnName = $.targetColumnName;
        this.taskType = $.taskType;
        this.testData = $.testData;
        this.testDataSize = $.testDataSize;
        this.trainingData = $.trainingData;
        this.trainingSettings = $.trainingSettings;
        this.validationData = $.validationData;
        this.validationDataSize = $.validationDataSize;
        this.weightColumnName = $.weightColumnName;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ClassificationArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ClassificationArgs $;

        public Builder() {
            $ = new ClassificationArgs();
        }

        public Builder(ClassificationArgs defaults) {
            $ = new ClassificationArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param cvSplitColumnNames Columns to use for CVSplit data.
         * 
         * @return builder
         * 
         */
        public Builder cvSplitColumnNames(@Nullable Output> cvSplitColumnNames) {
            $.cvSplitColumnNames = cvSplitColumnNames;
            return this;
        }

        /**
         * @param cvSplitColumnNames Columns to use for CVSplit data.
         * 
         * @return builder
         * 
         */
        public Builder cvSplitColumnNames(List cvSplitColumnNames) {
            return cvSplitColumnNames(Output.of(cvSplitColumnNames));
        }

        /**
         * @param cvSplitColumnNames Columns to use for CVSplit data.
         * 
         * @return builder
         * 
         */
        public Builder cvSplitColumnNames(String... cvSplitColumnNames) {
            return cvSplitColumnNames(List.of(cvSplitColumnNames));
        }

        /**
         * @param featurizationSettings Featurization inputs needed for AutoML job.
         * 
         * @return builder
         * 
         */
        public Builder featurizationSettings(@Nullable Output featurizationSettings) {
            $.featurizationSettings = featurizationSettings;
            return this;
        }

        /**
         * @param featurizationSettings Featurization inputs needed for AutoML job.
         * 
         * @return builder
         * 
         */
        public Builder featurizationSettings(TableVerticalFeaturizationSettingsArgs featurizationSettings) {
            return featurizationSettings(Output.of(featurizationSettings));
        }

        /**
         * @param limitSettings Execution constraints for AutoMLJob.
         * 
         * @return builder
         * 
         */
        public Builder limitSettings(@Nullable Output limitSettings) {
            $.limitSettings = limitSettings;
            return this;
        }

        /**
         * @param limitSettings Execution constraints for AutoMLJob.
         * 
         * @return builder
         * 
         */
        public Builder limitSettings(TableVerticalLimitSettingsArgs limitSettings) {
            return limitSettings(Output.of(limitSettings));
        }

        /**
         * @param logVerbosity Log verbosity for the job.
         * 
         * @return builder
         * 
         */
        public Builder logVerbosity(@Nullable Output> logVerbosity) {
            $.logVerbosity = logVerbosity;
            return this;
        }

        /**
         * @param logVerbosity Log verbosity for the job.
         * 
         * @return builder
         * 
         */
        public Builder logVerbosity(Either logVerbosity) {
            return logVerbosity(Output.of(logVerbosity));
        }

        /**
         * @param logVerbosity Log verbosity for the job.
         * 
         * @return builder
         * 
         */
        public Builder logVerbosity(String logVerbosity) {
            return logVerbosity(Either.ofLeft(logVerbosity));
        }

        /**
         * @param logVerbosity Log verbosity for the job.
         * 
         * @return builder
         * 
         */
        public Builder logVerbosity(LogVerbosity logVerbosity) {
            return logVerbosity(Either.ofRight(logVerbosity));
        }

        /**
         * @param nCrossValidations Number of cross validation folds to be applied on training dataset
         * when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder nCrossValidations(@Nullable Output> nCrossValidations) {
            $.nCrossValidations = nCrossValidations;
            return this;
        }

        /**
         * @param nCrossValidations Number of cross validation folds to be applied on training dataset
         * when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder nCrossValidations(Either nCrossValidations) {
            return nCrossValidations(Output.of(nCrossValidations));
        }

        /**
         * @param nCrossValidations Number of cross validation folds to be applied on training dataset
         * when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder nCrossValidations(AutoNCrossValidationsArgs nCrossValidations) {
            return nCrossValidations(Either.ofLeft(nCrossValidations));
        }

        /**
         * @param nCrossValidations Number of cross validation folds to be applied on training dataset
         * when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder nCrossValidations(CustomNCrossValidationsArgs nCrossValidations) {
            return nCrossValidations(Either.ofRight(nCrossValidations));
        }

        /**
         * @param positiveLabel Positive label for binary metrics calculation.
         * 
         * @return builder
         * 
         */
        public Builder positiveLabel(@Nullable Output positiveLabel) {
            $.positiveLabel = positiveLabel;
            return this;
        }

        /**
         * @param positiveLabel Positive label for binary metrics calculation.
         * 
         * @return builder
         * 
         */
        public Builder positiveLabel(String positiveLabel) {
            return positiveLabel(Output.of(positiveLabel));
        }

        /**
         * @param primaryMetric Primary metric for the task.
         * 
         * @return builder
         * 
         */
        public Builder primaryMetric(@Nullable Output> primaryMetric) {
            $.primaryMetric = primaryMetric;
            return this;
        }

        /**
         * @param primaryMetric Primary metric for the task.
         * 
         * @return builder
         * 
         */
        public Builder primaryMetric(Either primaryMetric) {
            return primaryMetric(Output.of(primaryMetric));
        }

        /**
         * @param primaryMetric Primary metric for the task.
         * 
         * @return builder
         * 
         */
        public Builder primaryMetric(String primaryMetric) {
            return primaryMetric(Either.ofLeft(primaryMetric));
        }

        /**
         * @param primaryMetric Primary metric for the task.
         * 
         * @return builder
         * 
         */
        public Builder primaryMetric(ClassificationPrimaryMetrics primaryMetric) {
            return primaryMetric(Either.ofRight(primaryMetric));
        }

        /**
         * @param targetColumnName Target column name: This is prediction values column.
         * Also known as label column name in context of classification tasks.
         * 
         * @return builder
         * 
         */
        public Builder targetColumnName(@Nullable Output targetColumnName) {
            $.targetColumnName = targetColumnName;
            return this;
        }

        /**
         * @param targetColumnName Target column name: This is prediction values column.
         * Also known as label column name in context of classification tasks.
         * 
         * @return builder
         * 
         */
        public Builder targetColumnName(String targetColumnName) {
            return targetColumnName(Output.of(targetColumnName));
        }

        /**
         * @param taskType AutoMLJob Task type.
         * Expected value is 'Classification'.
         * 
         * @return builder
         * 
         */
        public Builder taskType(Output taskType) {
            $.taskType = taskType;
            return this;
        }

        /**
         * @param taskType AutoMLJob Task type.
         * Expected value is 'Classification'.
         * 
         * @return builder
         * 
         */
        public Builder taskType(String taskType) {
            return taskType(Output.of(taskType));
        }

        /**
         * @param testData Test data input.
         * 
         * @return builder
         * 
         */
        public Builder testData(@Nullable Output testData) {
            $.testData = testData;
            return this;
        }

        /**
         * @param testData Test data input.
         * 
         * @return builder
         * 
         */
        public Builder testData(MLTableJobInputArgs testData) {
            return testData(Output.of(testData));
        }

        /**
         * @param testDataSize The fraction of test dataset that needs to be set aside for validation purpose.
         * Values between (0.0 , 1.0)
         * Applied when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder testDataSize(@Nullable Output testDataSize) {
            $.testDataSize = testDataSize;
            return this;
        }

        /**
         * @param testDataSize The fraction of test dataset that needs to be set aside for validation purpose.
         * Values between (0.0 , 1.0)
         * Applied when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder testDataSize(Double testDataSize) {
            return testDataSize(Output.of(testDataSize));
        }

        /**
         * @param trainingData [Required] Training data input.
         * 
         * @return builder
         * 
         */
        public Builder trainingData(Output trainingData) {
            $.trainingData = trainingData;
            return this;
        }

        /**
         * @param trainingData [Required] Training data input.
         * 
         * @return builder
         * 
         */
        public Builder trainingData(MLTableJobInputArgs trainingData) {
            return trainingData(Output.of(trainingData));
        }

        /**
         * @param trainingSettings Inputs for training phase for an AutoML Job.
         * 
         * @return builder
         * 
         */
        public Builder trainingSettings(@Nullable Output trainingSettings) {
            $.trainingSettings = trainingSettings;
            return this;
        }

        /**
         * @param trainingSettings Inputs for training phase for an AutoML Job.
         * 
         * @return builder
         * 
         */
        public Builder trainingSettings(ClassificationTrainingSettingsArgs trainingSettings) {
            return trainingSettings(Output.of(trainingSettings));
        }

        /**
         * @param validationData Validation data inputs.
         * 
         * @return builder
         * 
         */
        public Builder validationData(@Nullable Output validationData) {
            $.validationData = validationData;
            return this;
        }

        /**
         * @param validationData Validation data inputs.
         * 
         * @return builder
         * 
         */
        public Builder validationData(MLTableJobInputArgs validationData) {
            return validationData(Output.of(validationData));
        }

        /**
         * @param validationDataSize The fraction of training dataset that needs to be set aside for validation purpose.
         * Values between (0.0 , 1.0)
         * Applied when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder validationDataSize(@Nullable Output validationDataSize) {
            $.validationDataSize = validationDataSize;
            return this;
        }

        /**
         * @param validationDataSize The fraction of training dataset that needs to be set aside for validation purpose.
         * Values between (0.0 , 1.0)
         * Applied when validation dataset is not provided.
         * 
         * @return builder
         * 
         */
        public Builder validationDataSize(Double validationDataSize) {
            return validationDataSize(Output.of(validationDataSize));
        }

        /**
         * @param weightColumnName The name of the sample weight column. Automated ML supports a weighted column as an input, causing rows in the data to be weighted up or down.
         * 
         * @return builder
         * 
         */
        public Builder weightColumnName(@Nullable Output weightColumnName) {
            $.weightColumnName = weightColumnName;
            return this;
        }

        /**
         * @param weightColumnName The name of the sample weight column. Automated ML supports a weighted column as an input, causing rows in the data to be weighted up or down.
         * 
         * @return builder
         * 
         */
        public Builder weightColumnName(String weightColumnName) {
            return weightColumnName(Output.of(weightColumnName));
        }

        public ClassificationArgs build() {
            $.logVerbosity = Codegen.stringProp("logVerbosity").left(LogVerbosity.class).output().arg($.logVerbosity).def("Info").getNullable();
            $.primaryMetric = Codegen.stringProp("primaryMetric").left(ClassificationPrimaryMetrics.class).output().arg($.primaryMetric).def("AUCWeighted").getNullable();
            $.taskType = Codegen.stringProp("taskType").output().arg($.taskType).require();
            if ($.trainingData == null) {
                throw new MissingRequiredPropertyException("ClassificationArgs", "trainingData");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy