diff --git a/ZBaselines/Common/EntryPoints/core_ep-list.tsv b/ZBaselines/Common/EntryPoints/core_ep-list.tsv index 568a6066f9..eeeee5fe6f 100644 --- a/ZBaselines/Common/EntryPoints/core_ep-list.tsv +++ b/ZBaselines/Common/EntryPoints/core_ep-list.tsv @@ -23,7 +23,6 @@ Models.Summarizer Summarize a linear regression predictor. Microsoft.ML.Runtime. Models.TrainTestBinaryEvaluator Train test for binary classification Microsoft.ML.Runtime.EntryPoints.TrainTestBinaryMacro TrainTestBinary Microsoft.ML.Runtime.EntryPoints.TrainTestBinaryMacro+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+MacroOutput`1[Microsoft.ML.Runtime.EntryPoints.TrainTestBinaryMacro+Output] Models.TrainTestEvaluator General train test for any supported evaluator Microsoft.ML.Runtime.EntryPoints.TrainTestMacro TrainTest Microsoft.ML.Runtime.EntryPoints.TrainTestMacro+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+MacroOutput`1[Microsoft.ML.Runtime.EntryPoints.TrainTestMacro+Output] Trainers.AveragedPerceptronBinaryClassifier Train a Average perceptron. Microsoft.ML.Runtime.Learners.AveragedPerceptronTrainer TrainBinary Microsoft.ML.Runtime.Learners.AveragedPerceptronTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.BinaryLogisticRegressor Train a logistic regression binary model Microsoft.ML.Runtime.Learners.LogisticRegression TrainBinary Microsoft.ML.Runtime.Learners.LogisticRegression+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.FastForestBinaryClassifier Uses a random forest learner to perform binary classification. Microsoft.ML.Runtime.FastTree.FastForest TrainBinary Microsoft.ML.Runtime.FastTree.FastForestClassification+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.FastForestRegressor Trains a random forest to fit target values using least-squares. Microsoft.ML.Runtime.FastTree.FastForest TrainRegression Microsoft.ML.Runtime.FastTree.FastForestRegression+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+RegressionOutput Trainers.FastTreeBinaryClassifier Uses a logit-boost boosted tree learner to perform binary classification. Microsoft.ML.Runtime.FastTree.FastTree TrainBinary Microsoft.ML.Runtime.FastTree.FastTreeBinaryClassificationTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput @@ -34,7 +33,8 @@ Trainers.GeneralizedAdditiveModelBinaryClassifier Trains a gradient boosted stum Trainers.GeneralizedAdditiveModelRegressor Trains a gradient boosted stump per feature, on all features simultaneously, to fit target values using least-squares. It mantains no interactions between features. Microsoft.ML.Runtime.FastTree.Gam TrainRegression Microsoft.ML.Runtime.FastTree.RegressionGamTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+RegressionOutput Trainers.KMeansPlusPlusClusterer K-means is a popular clustering algorithm. With K-means, the data is clustered into a specified number of clusters in order to minimize the within-cluster sum of squares. K-means++ improves upon K-means by using a better method for choosing the initial cluster centers. Microsoft.ML.Runtime.KMeans.KMeansPlusPlusTrainer TrainKMeans Microsoft.ML.Runtime.KMeans.KMeansPlusPlusTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+ClusteringOutput Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Runtime.Learners.LinearSvm TrainLinearSvm Microsoft.ML.Runtime.Learners.LinearSvm+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.LogisticRegressor Train a logistic regression multi class model Microsoft.ML.Runtime.Learners.LogisticRegression TrainMultiClass Microsoft.ML.Runtime.Learners.MulticlassLogisticRegression+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.LogisticRegressionBinaryClassifier Train a logistic regression binary model Microsoft.ML.Runtime.Learners.LogisticRegression TrainBinary Microsoft.ML.Runtime.Learners.LogisticRegression+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.LogisticRegressionClassifier Train a logistic regression multi class model Microsoft.ML.Runtime.Learners.LogisticRegression TrainMultiClass Microsoft.ML.Runtime.Learners.MulticlassLogisticRegression+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Runtime.Learners.MultiClassNaiveBayesTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Runtime.Learners.MultiClassNaiveBayesTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Runtime.Learners.OnlineGradientDescentTrainer TrainRegression Microsoft.ML.Runtime.Learners.OnlineGradientDescentTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+RegressionOutput Trainers.OrdinaryLeastSquaresRegressor Train an OLS regression model. Microsoft.ML.Runtime.Learners.OlsLinearRegressionTrainer TrainRegression Microsoft.ML.Runtime.Learners.OlsLinearRegressionTrainer+Arguments Microsoft.ML.Runtime.EntryPoints.CommonOutputs+RegressionOutput diff --git a/ZBaselines/Common/EntryPoints/core_manifest.json b/ZBaselines/Common/EntryPoints/core_manifest.json index a3778a7f7f..114022c32d 100644 --- a/ZBaselines/Common/EntryPoints/core_manifest.json +++ b/ZBaselines/Common/EntryPoints/core_manifest.json @@ -2839,318 +2839,6 @@ "ITrainerOutput" ] }, - { - "Name": "Trainers.BinaryLogisticRegressor", - "Desc": "Train a logistic regression binary model", - "FriendlyName": "Logistic Regression", - "ShortName": "lr", - "Inputs": [ - { - "Name": "TrainingData", - "Type": "DataView", - "Desc": "The data to be used for training", - "Aliases": [ - "data" - ], - "Required": true, - "SortOrder": 1.0, - "IsNullable": false - }, - { - "Name": "FeatureColumn", - "Type": "String", - "Desc": "Column to use for features", - "Aliases": [ - "feat" - ], - "Required": false, - "SortOrder": 2.0, - "IsNullable": false, - "Default": "Features" - }, - { - "Name": "LabelColumn", - "Type": "String", - "Desc": "Column to use for labels", - "Aliases": [ - "lab" - ], - "Required": false, - "SortOrder": 3.0, - "IsNullable": false, - "Default": "Label" - }, - { - "Name": "WeightColumn", - "Type": "String", - "Desc": "Column to use for example weight", - "Aliases": [ - "weight" - ], - "Required": false, - "SortOrder": 4.0, - "IsNullable": false, - "Default": "Weight" - }, - { - "Name": "NormalizeFeatures", - "Type": { - "Kind": "Enum", - "Values": [ - "No", - "Warn", - "Auto", - "Yes" - ] - }, - "Desc": "Normalize option for the feature column", - "Aliases": [ - "norm" - ], - "Required": false, - "SortOrder": 5.0, - "IsNullable": false, - "Default": "Auto" - }, - { - "Name": "Caching", - "Type": { - "Kind": "Enum", - "Values": [ - "Auto", - "Memory", - "Disk", - "None" - ] - }, - "Desc": "Whether learner should cache input training data", - "Aliases": [ - "cache" - ], - "Required": false, - "SortOrder": 6.0, - "IsNullable": false, - "Default": "Auto" - }, - { - "Name": "ShowTrainingStats", - "Type": "Bool", - "Desc": "Show statistics of training examples.", - "Aliases": [ - "stat" - ], - "Required": false, - "SortOrder": 50.0, - "IsNullable": false, - "Default": false - }, - { - "Name": "L2Weight", - "Type": "Float", - "Desc": "L2 regularization weight", - "Aliases": [ - "l2" - ], - "Required": false, - "SortOrder": 50.0, - "IsNullable": false, - "Default": 1.0, - "SweepRange": { - "RangeType": "Float", - "Min": 0.0, - "Max": 1.0, - "NumSteps": 4 - } - }, - { - "Name": "L1Weight", - "Type": "Float", - "Desc": "L1 regularization weight", - "Aliases": [ - "l1" - ], - "Required": false, - "SortOrder": 50.0, - "IsNullable": false, - "Default": 1.0, - "SweepRange": { - "RangeType": "Float", - "Min": 0.0, - "Max": 1.0, - "NumSteps": 4 - } - }, - { - "Name": "OptTol", - "Type": "Float", - "Desc": "Tolerance parameter for optimization convergence. Lower = slower, more accurate", - "Aliases": [ - "ot" - ], - "Required": false, - "SortOrder": 50.0, - "IsNullable": false, - "Default": 1E-07, - "SweepRange": { - "RangeType": "Discrete", - "Values": [ - 0.0001, - 1E-07 - ] - } - }, - { - "Name": "MemorySize", - "Type": "Int", - "Desc": "Memory size for L-BFGS. Lower=faster, less accurate", - "Aliases": [ - "m" - ], - "Required": false, - "SortOrder": 50.0, - "IsNullable": false, - "Default": 20, - "SweepRange": { - "RangeType": "Discrete", - "Values": [ - 5, - 20, - 50 - ] - } - }, - { - "Name": "EnforceNonNegativity", - "Type": "Bool", - "Desc": "Enforce non-negative weights", - "Aliases": [ - "nn" - ], - "Required": false, - "SortOrder": 90.0, - "IsNullable": false, - "Default": false - }, - { - "Name": "InitWtsDiameter", - "Type": "Float", - "Desc": "Init weights diameter", - "Aliases": [ - "initwts" - ], - "Required": false, - "SortOrder": 140.0, - "IsNullable": false, - "Default": 0.0, - "SweepRange": { - "RangeType": "Float", - "Min": 0.0, - "Max": 1.0, - "NumSteps": 5 - } - }, - { - "Name": "MaxIterations", - "Type": "Int", - "Desc": "Maximum iterations.", - "Aliases": [ - "maxiter" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": 2147483647, - "SweepRange": { - "RangeType": "Long", - "Min": 1, - "Max": 2147483647 - } - }, - { - "Name": "SgdInitializationTolerance", - "Type": "Float", - "Desc": "Run SGD to initialize LR weights, converging to this tolerance", - "Aliases": [ - "sgd" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": 0.0 - }, - { - "Name": "Quiet", - "Type": "Bool", - "Desc": "If set to true, produce no output during training.", - "Aliases": [ - "q" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": false - }, - { - "Name": "UseThreads", - "Type": "Bool", - "Desc": "Whether or not to use threads. Default is true", - "Aliases": [ - "t" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": true - }, - { - "Name": "NumThreads", - "Type": "Int", - "Desc": "Number of threads", - "Aliases": [ - "nt" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": true, - "Default": null - }, - { - "Name": "DenseOptimizer", - "Type": "Bool", - "Desc": "Force densification of the internal optimization vectors", - "Aliases": [ - "do" - ], - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": false, - "SweepRange": { - "RangeType": "Discrete", - "Values": [ - false, - true - ] - } - } - ], - "Outputs": [ - { - "Name": "PredictorModel", - "Type": "PredictorModel", - "Desc": "The trained model" - } - ], - "InputKind": [ - "ITrainerInputWithWeight", - "ITrainerInputWithLabel", - "ITrainerInput" - ], - "OutputKind": [ - "IBinaryClassificationOutput", - "ITrainerOutput" - ] - }, { "Name": "Trainers.FastForestBinaryClassifier", "Desc": "Uses a random forest learner to perform binary classification.", @@ -8843,48 +8531,314 @@ }, "Desc": "Cluster initialization algorithm", "Aliases": [ - "init" + "init" + ], + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": "KMeansParallel" + }, + { + "Name": "OptTol", + "Type": "Float", + "Desc": "Tolerance parameter for trainer convergence. Lower = slower, more accurate", + "Aliases": [ + "ot" + ], + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": 1E-07 + }, + { + "Name": "MaxIterations", + "Type": "Int", + "Desc": "Maximum number of iterations.", + "Aliases": [ + "maxiter" + ], + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": 1000 + }, + { + "Name": "AccelMemBudgetMb", + "Type": "Int", + "Desc": "Memory budget (in MBs) to use for KMeans acceleration", + "Aliases": [ + "accelMemBudgetMb" + ], + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": 4096 + } + ], + "Outputs": [ + { + "Name": "PredictorModel", + "Type": "PredictorModel", + "Desc": "The trained model" + } + ], + "InputKind": [ + "ITrainerInput" + ], + "OutputKind": [ + "IClusteringOutput", + "ITrainerOutput" + ] + }, + { + "Name": "Trainers.LinearSvmBinaryClassifier", + "Desc": "Train a linear SVM.", + "FriendlyName": "SVM (Pegasos-Linear)", + "ShortName": "svm", + "Inputs": [ + { + "Name": "TrainingData", + "Type": "DataView", + "Desc": "The data to be used for training", + "Aliases": [ + "data" + ], + "Required": true, + "SortOrder": 1.0, + "IsNullable": false + }, + { + "Name": "FeatureColumn", + "Type": "String", + "Desc": "Column to use for features", + "Aliases": [ + "feat" + ], + "Required": false, + "SortOrder": 2.0, + "IsNullable": false, + "Default": "Features" + }, + { + "Name": "LabelColumn", + "Type": "String", + "Desc": "Column to use for labels", + "Aliases": [ + "lab" + ], + "Required": false, + "SortOrder": 3.0, + "IsNullable": false, + "Default": "Label" + }, + { + "Name": "NormalizeFeatures", + "Type": { + "Kind": "Enum", + "Values": [ + "No", + "Warn", + "Auto", + "Yes" + ] + }, + "Desc": "Normalize option for the feature column", + "Aliases": [ + "norm" + ], + "Required": false, + "SortOrder": 5.0, + "IsNullable": false, + "Default": "Auto" + }, + { + "Name": "Caching", + "Type": { + "Kind": "Enum", + "Values": [ + "Auto", + "Memory", + "Disk", + "None" + ] + }, + "Desc": "Whether learner should cache input training data", + "Aliases": [ + "cache" + ], + "Required": false, + "SortOrder": 6.0, + "IsNullable": false, + "Default": "Auto" + }, + { + "Name": "Lambda", + "Type": "Float", + "Desc": "Regularizer constant", + "Aliases": [ + "lambda" + ], + "Required": false, + "SortOrder": 50.0, + "IsNullable": false, + "Default": 0.001, + "SweepRange": { + "RangeType": "Float", + "Min": 1E-05, + "Max": 0.1, + "StepSize": 10.0, + "IsLogScale": true + } + }, + { + "Name": "PerformProjection", + "Type": "Bool", + "Desc": "Perform projection to unit-ball? Typically used with batch size > 1.", + "Aliases": [ + "project" + ], + "Required": false, + "SortOrder": 50.0, + "IsNullable": false, + "Default": false, + "SweepRange": { + "RangeType": "Discrete", + "Values": [ + false, + true + ] + } + }, + { + "Name": "NumIterations", + "Type": "Int", + "Desc": "Number of iterations", + "Aliases": [ + "iter" + ], + "Required": false, + "SortOrder": 50.0, + "IsNullable": false, + "Default": 1, + "SweepRange": { + "RangeType": "Long", + "Min": 1, + "Max": 100, + "StepSize": 10.0, + "IsLogScale": true + } + }, + { + "Name": "InitWtsDiameter", + "Type": "Float", + "Desc": "Init weights diameter", + "Aliases": [ + "initwts" + ], + "Required": false, + "SortOrder": 140.0, + "IsNullable": false, + "Default": 0.0, + "SweepRange": { + "RangeType": "Float", + "Min": 0.0, + "Max": 1.0, + "NumSteps": 5 + } + }, + { + "Name": "NoBias", + "Type": "Bool", + "Desc": "No bias", + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": false, + "SweepRange": { + "RangeType": "Discrete", + "Values": [ + false, + true + ] + } + }, + { + "Name": "Calibrator", + "Type": { + "Kind": "Component", + "ComponentKind": "CalibratorTrainer" + }, + "Desc": "The calibrator kind to apply to the predictor. Specify null for no calibration", + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": { + "Name": "PlattCalibrator" + } + }, + { + "Name": "MaxCalibrationExamples", + "Type": "Int", + "Desc": "The maximum number of examples to use when training the calibrator", + "Required": false, + "SortOrder": 150.0, + "IsNullable": false, + "Default": 1000000 + }, + { + "Name": "InitialWeights", + "Type": "String", + "Desc": "Initial Weights and bias, comma-separated", + "Aliases": [ + "initweights" ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": "KMeansParallel" + "Default": null }, { - "Name": "OptTol", - "Type": "Float", - "Desc": "Tolerance parameter for trainer convergence. Lower = slower, more accurate", + "Name": "Shuffle", + "Type": "Bool", + "Desc": "Whether to shuffle for each training iteration", "Aliases": [ - "ot" + "shuf" ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": 1E-07 + "Default": true, + "SweepRange": { + "RangeType": "Discrete", + "Values": [ + false, + true + ] + } }, { - "Name": "MaxIterations", + "Name": "StreamingCacheSize", "Type": "Int", - "Desc": "Maximum number of iterations.", + "Desc": "Size of cache when trained in Scope", "Aliases": [ - "maxiter" + "cache" ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": 1000 + "Default": 1000000 }, { - "Name": "AccelMemBudgetMb", + "Name": "BatchSize", "Type": "Int", - "Desc": "Memory budget (in MBs) to use for KMeans acceleration", + "Desc": "Batch size", "Aliases": [ - "accelMemBudgetMb" + "batch" ], "Required": false, - "SortOrder": 150.0, + "SortOrder": 190.0, "IsNullable": false, - "Default": 4096 + "Default": 1 } ], "Outputs": [ @@ -8895,18 +8849,19 @@ } ], "InputKind": [ + "ITrainerInputWithLabel", "ITrainerInput" ], "OutputKind": [ - "IClusteringOutput", + "IBinaryClassificationOutput", "ITrainerOutput" ] }, { - "Name": "Trainers.LinearSvmBinaryClassifier", - "Desc": "Train a linear SVM.", - "FriendlyName": "SVM (Pegasos-Linear)", - "ShortName": "svm", + "Name": "Trainers.LogisticRegressionBinaryClassifier", + "Desc": "Train a logistic regression binary model", + "FriendlyName": "Logistic Regression", + "ShortName": "lr", "Inputs": [ { "Name": "TrainingData", @@ -8943,6 +8898,18 @@ "IsNullable": false, "Default": "Label" }, + { + "Name": "WeightColumn", + "Type": "String", + "Desc": "Column to use for example weight", + "Aliases": [ + "weight" + ], + "Required": false, + "SortOrder": 4.0, + "IsNullable": false, + "Default": "Weight" + }, { "Name": "NormalizeFeatures", "Type": { @@ -8984,62 +8951,104 @@ "Default": "Auto" }, { - "Name": "Lambda", + "Name": "ShowTrainingStats", + "Type": "Bool", + "Desc": "Show statistics of training examples.", + "Aliases": [ + "stat" + ], + "Required": false, + "SortOrder": 50.0, + "IsNullable": false, + "Default": false + }, + { + "Name": "L2Weight", "Type": "Float", - "Desc": "Regularizer constant", + "Desc": "L2 regularization weight", "Aliases": [ - "lambda" + "l2" ], "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": 0.001, + "Default": 1.0, "SweepRange": { "RangeType": "Float", - "Min": 1E-05, - "Max": 0.1, - "StepSize": 10.0, - "IsLogScale": true + "Min": 0.0, + "Max": 1.0, + "NumSteps": 4 } }, { - "Name": "PerformProjection", - "Type": "Bool", - "Desc": "Perform projection to unit-ball? Typically used with batch size > 1.", + "Name": "L1Weight", + "Type": "Float", + "Desc": "L1 regularization weight", "Aliases": [ - "project" + "l1" ], "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": false, + "Default": 1.0, + "SweepRange": { + "RangeType": "Float", + "Min": 0.0, + "Max": 1.0, + "NumSteps": 4 + } + }, + { + "Name": "OptTol", + "Type": "Float", + "Desc": "Tolerance parameter for optimization convergence. Lower = slower, more accurate", + "Aliases": [ + "ot" + ], + "Required": false, + "SortOrder": 50.0, + "IsNullable": false, + "Default": 1E-07, "SweepRange": { "RangeType": "Discrete", "Values": [ - false, - true + 0.0001, + 1E-07 ] } }, { - "Name": "NumIterations", + "Name": "MemorySize", "Type": "Int", - "Desc": "Number of iterations", + "Desc": "Memory size for L-BFGS. Lower=faster, less accurate", "Aliases": [ - "iter" + "m" ], "Required": false, "SortOrder": 50.0, "IsNullable": false, - "Default": 1, + "Default": 20, "SweepRange": { - "RangeType": "Long", - "Min": 1, - "Max": 100, - "StepSize": 10.0, - "IsLogScale": true + "RangeType": "Discrete", + "Values": [ + 5, + 20, + 50 + ] } }, + { + "Name": "EnforceNonNegativity", + "Type": "Bool", + "Desc": "Enforce non-negative weights", + "Aliases": [ + "nn" + ], + "Required": false, + "SortOrder": 90.0, + "IsNullable": false, + "Default": false + }, { "Name": "InitWtsDiameter", "Type": "Float", @@ -9059,98 +9068,88 @@ } }, { - "Name": "NoBias", - "Type": "Bool", - "Desc": "No bias", + "Name": "MaxIterations", + "Type": "Int", + "Desc": "Maximum iterations.", + "Aliases": [ + "maxiter" + ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": false, + "Default": 2147483647, "SweepRange": { - "RangeType": "Discrete", - "Values": [ - false, - true - ] - } - }, - { - "Name": "Calibrator", - "Type": { - "Kind": "Component", - "ComponentKind": "CalibratorTrainer" - }, - "Desc": "The calibrator kind to apply to the predictor. Specify null for no calibration", - "Required": false, - "SortOrder": 150.0, - "IsNullable": false, - "Default": { - "Name": "PlattCalibrator" + "RangeType": "Long", + "Min": 1, + "Max": 2147483647 } }, { - "Name": "MaxCalibrationExamples", - "Type": "Int", - "Desc": "The maximum number of examples to use when training the calibrator", + "Name": "SgdInitializationTolerance", + "Type": "Float", + "Desc": "Run SGD to initialize LR weights, converging to this tolerance", + "Aliases": [ + "sgd" + ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": 1000000 + "Default": 0.0 }, { - "Name": "InitialWeights", - "Type": "String", - "Desc": "Initial Weights and bias, comma-separated", + "Name": "Quiet", + "Type": "Bool", + "Desc": "If set to true, produce no output during training.", "Aliases": [ - "initweights" + "q" ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": null + "Default": false }, { - "Name": "Shuffle", + "Name": "UseThreads", "Type": "Bool", - "Desc": "Whether to shuffle for each training iteration", + "Desc": "Whether or not to use threads. Default is true", "Aliases": [ - "shuf" + "t" ], "Required": false, "SortOrder": 150.0, "IsNullable": false, - "Default": true, - "SweepRange": { - "RangeType": "Discrete", - "Values": [ - false, - true - ] - } + "Default": true }, { - "Name": "StreamingCacheSize", + "Name": "NumThreads", "Type": "Int", - "Desc": "Size of cache when trained in Scope", + "Desc": "Number of threads", "Aliases": [ - "cache" + "nt" ], "Required": false, "SortOrder": 150.0, - "IsNullable": false, - "Default": 1000000 + "IsNullable": true, + "Default": null }, { - "Name": "BatchSize", - "Type": "Int", - "Desc": "Batch size", + "Name": "DenseOptimizer", + "Type": "Bool", + "Desc": "Force densification of the internal optimization vectors", "Aliases": [ - "batch" + "do" ], "Required": false, - "SortOrder": 190.0, + "SortOrder": 150.0, "IsNullable": false, - "Default": 1 + "Default": false, + "SweepRange": { + "RangeType": "Discrete", + "Values": [ + false, + true + ] + } } ], "Outputs": [ @@ -9161,6 +9160,7 @@ } ], "InputKind": [ + "ITrainerInputWithWeight", "ITrainerInputWithLabel", "ITrainerInput" ], @@ -9170,7 +9170,7 @@ ] }, { - "Name": "Trainers.LogisticRegressor", + "Name": "Trainers.LogisticRegressionClassifier", "Desc": "Train a logistic regression multi class model", "FriendlyName": "Multi-class Logistic Regression", "ShortName": "mlr", diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs index f1ea7c4a4b..5abc062bf7 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs @@ -386,7 +386,7 @@ public override ParameterMixingCalibratedPredictor CreatePredictor() new PlattCalibrator(Host, -1, 0)); } - [TlcModule.EntryPoint(Name = "Trainers.BinaryLogisticRegressor", Desc = "Train a logistic regression binary model", UserName = UserNameValue, ShortName = ShortName)] + [TlcModule.EntryPoint(Name = "Trainers.LogisticRegressionBinaryClassifier", Desc = "Train a logistic regression binary model", UserName = UserNameValue, ShortName = ShortName)] public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, Arguments input) { Contracts.CheckValue(env, nameof(env)); diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs index 4783aeb0d3..51decafea5 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs @@ -961,7 +961,7 @@ public IRow GetStatsIRowOrNull(RoleMappedSchema schema) /// public partial class LogisticRegression { - [TlcModule.EntryPoint(Name = "Trainers.LogisticRegressor", Desc = "Train a logistic regression multi class model", UserName = MulticlassLogisticRegression.UserNameValue, ShortName = MulticlassLogisticRegression.ShortName)] + [TlcModule.EntryPoint(Name = "Trainers.LogisticRegressionClassifier", Desc = "Train a logistic regression multi class model", UserName = MulticlassLogisticRegression.UserNameValue, ShortName = MulticlassLogisticRegression.ShortName)] public static CommonOutputs.MulticlassClassificationOutput TrainMultiClass(IHostEnvironment env, MulticlassLogisticRegression.Arguments input) { Contracts.CheckValue(env, nameof(env)); diff --git a/src/Microsoft.ML/CSharpApi.cs b/src/Microsoft.ML/CSharpApi.cs index ecea73a495..7a54cc73da 100644 --- a/src/Microsoft.ML/CSharpApi.cs +++ b/src/Microsoft.ML/CSharpApi.cs @@ -322,18 +322,6 @@ public void Add(Microsoft.ML.Trainers.AveragedPerceptronBinaryClassifier input, _jsonNodes.Add(Serialize("Trainers.AveragedPerceptronBinaryClassifier", input, output)); } - public Microsoft.ML.Trainers.BinaryLogisticRegressor.Output Add(Microsoft.ML.Trainers.BinaryLogisticRegressor input) - { - var output = new Microsoft.ML.Trainers.BinaryLogisticRegressor.Output(); - Add(input, output); - return output; - } - - public void Add(Microsoft.ML.Trainers.BinaryLogisticRegressor input, Microsoft.ML.Trainers.BinaryLogisticRegressor.Output output) - { - _jsonNodes.Add(Serialize("Trainers.BinaryLogisticRegressor", input, output)); - } - public Microsoft.ML.Trainers.FastForestBinaryClassifier.Output Add(Microsoft.ML.Trainers.FastForestBinaryClassifier input) { var output = new Microsoft.ML.Trainers.FastForestBinaryClassifier.Output(); @@ -442,16 +430,28 @@ public void Add(Microsoft.ML.Trainers.LinearSvmBinaryClassifier input, Microsoft _jsonNodes.Add(Serialize("Trainers.LinearSvmBinaryClassifier", input, output)); } - public Microsoft.ML.Trainers.LogisticRegressor.Output Add(Microsoft.ML.Trainers.LogisticRegressor input) + public Microsoft.ML.Trainers.LogisticRegressionBinaryClassifier.Output Add(Microsoft.ML.Trainers.LogisticRegressionBinaryClassifier input) { - var output = new Microsoft.ML.Trainers.LogisticRegressor.Output(); + var output = new Microsoft.ML.Trainers.LogisticRegressionBinaryClassifier.Output(); Add(input, output); return output; } - public void Add(Microsoft.ML.Trainers.LogisticRegressor input, Microsoft.ML.Trainers.LogisticRegressor.Output output) + public void Add(Microsoft.ML.Trainers.LogisticRegressionBinaryClassifier input, Microsoft.ML.Trainers.LogisticRegressionBinaryClassifier.Output output) { - _jsonNodes.Add(Serialize("Trainers.LogisticRegressor", input, output)); + _jsonNodes.Add(Serialize("Trainers.LogisticRegressionBinaryClassifier", input, output)); + } + + public Microsoft.ML.Trainers.LogisticRegressionClassifier.Output Add(Microsoft.ML.Trainers.LogisticRegressionClassifier input) + { + var output = new Microsoft.ML.Trainers.LogisticRegressionClassifier.Output(); + Add(input, output); + return output; + } + + public void Add(Microsoft.ML.Trainers.LogisticRegressionClassifier input, Microsoft.ML.Trainers.LogisticRegressionClassifier.Output output) + { + _jsonNodes.Add(Serialize("Trainers.LogisticRegressionClassifier", input, output)); } public Microsoft.ML.Trainers.NaiveBayesClassifier.Output Add(Microsoft.ML.Trainers.NaiveBayesClassifier input) @@ -3103,151 +3103,6 @@ public AveragedPerceptronBinaryClassifierPipelineStep(Output output) } } - namespace Trainers - { - - /// - /// Train a logistic regression binary model - /// - public sealed partial class BinaryLogisticRegressor : Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithWeight, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithLabel, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInput, Microsoft.ML.ILearningPipelineItem - { - - - /// - /// Show statistics of training examples. - /// - public bool ShowTrainingStats { get; set; } = false; - - /// - /// L2 regularization weight - /// - [TlcModule.SweepableFloatParamAttribute("L2Weight", 0f, 1f, numSteps:4)] - public float L2Weight { get; set; } = 1f; - - /// - /// L1 regularization weight - /// - [TlcModule.SweepableFloatParamAttribute("L1Weight", 0f, 1f, numSteps:4)] - public float L1Weight { get; set; } = 1f; - - /// - /// Tolerance parameter for optimization convergence. Lower = slower, more accurate - /// - [TlcModule.SweepableDiscreteParamAttribute("OptTol", new object[]{0.0001f, 1E-07f})] - public float OptTol { get; set; } = 1E-07f; - - /// - /// Memory size for L-BFGS. Lower=faster, less accurate - /// - [TlcModule.SweepableDiscreteParamAttribute("MemorySize", new object[]{5, 20, 50})] - public int MemorySize { get; set; } = 20; - - /// - /// Maximum iterations. - /// - [TlcModule.SweepableLongParamAttribute("MaxIterations", 1, 2147483647)] - public int MaxIterations { get; set; } = 2147483647; - - /// - /// Run SGD to initialize LR weights, converging to this tolerance - /// - public float SgdInitializationTolerance { get; set; } - - /// - /// If set to true, produce no output during training. - /// - public bool Quiet { get; set; } = false; - - /// - /// Init weights diameter - /// - [TlcModule.SweepableFloatParamAttribute("InitWtsDiameter", 0f, 1f, numSteps:5)] - public float InitWtsDiameter { get; set; } - - /// - /// Whether or not to use threads. Default is true - /// - public bool UseThreads { get; set; } = true; - - /// - /// Number of threads - /// - public int? NumThreads { get; set; } - - /// - /// Force densification of the internal optimization vectors - /// - [TlcModule.SweepableDiscreteParamAttribute("DenseOptimizer", new object[]{false, true})] - public bool DenseOptimizer { get; set; } = false; - - /// - /// Enforce non-negative weights - /// - public bool EnforceNonNegativity { get; set; } = false; - - /// - /// Column to use for example weight - /// - public Microsoft.ML.Runtime.EntryPoints.Optional WeightColumn { get; set; } - - /// - /// Column to use for labels - /// - public string LabelColumn { get; set; } = "Label"; - - /// - /// The data to be used for training - /// - public Var TrainingData { get; set; } = new Var(); - - /// - /// Column to use for features - /// - public string FeatureColumn { get; set; } = "Features"; - - /// - /// Normalize option for the feature column - /// - public Models.NormalizeOption NormalizeFeatures { get; set; } = Models.NormalizeOption.Auto; - - /// - /// Whether learner should cache input training data - /// - public Models.CachingOptions Caching { get; set; } = Models.CachingOptions.Auto; - - - public sealed class Output : Microsoft.ML.Runtime.EntryPoints.CommonOutputs.IBinaryClassificationOutput, Microsoft.ML.Runtime.EntryPoints.CommonOutputs.ITrainerOutput - { - /// - /// The trained model - /// - public Var PredictorModel { get; set; } = new Var(); - - } - public ILearningPipelineStep ApplyStep(ILearningPipelineStep previousStep, Experiment experiment) - { - if (!(previousStep is ILearningPipelineDataStep dataStep)) - { - throw new InvalidOperationException($"{ nameof(BinaryLogisticRegressor)} only supports an { nameof(ILearningPipelineDataStep)} as an input."); - } - - TrainingData = dataStep.Data; - Output output = experiment.Add(this); - return new BinaryLogisticRegressorPipelineStep(output); - } - - private class BinaryLogisticRegressorPipelineStep : ILearningPipelinePredictorStep - { - public BinaryLogisticRegressorPipelineStep(Output output) - { - Model = output.PredictorModel; - } - - public Var Model { get; } - } - } - } - namespace Trainers { public enum Bundle : byte @@ -5819,13 +5674,158 @@ public LinearSvmBinaryClassifierPipelineStep(Output output) } } + namespace Trainers + { + + /// + /// Train a logistic regression binary model + /// + public sealed partial class LogisticRegressionBinaryClassifier : Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithWeight, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithLabel, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInput, Microsoft.ML.ILearningPipelineItem + { + + + /// + /// Show statistics of training examples. + /// + public bool ShowTrainingStats { get; set; } = false; + + /// + /// L2 regularization weight + /// + [TlcModule.SweepableFloatParamAttribute("L2Weight", 0f, 1f, numSteps:4)] + public float L2Weight { get; set; } = 1f; + + /// + /// L1 regularization weight + /// + [TlcModule.SweepableFloatParamAttribute("L1Weight", 0f, 1f, numSteps:4)] + public float L1Weight { get; set; } = 1f; + + /// + /// Tolerance parameter for optimization convergence. Lower = slower, more accurate + /// + [TlcModule.SweepableDiscreteParamAttribute("OptTol", new object[]{0.0001f, 1E-07f})] + public float OptTol { get; set; } = 1E-07f; + + /// + /// Memory size for L-BFGS. Lower=faster, less accurate + /// + [TlcModule.SweepableDiscreteParamAttribute("MemorySize", new object[]{5, 20, 50})] + public int MemorySize { get; set; } = 20; + + /// + /// Maximum iterations. + /// + [TlcModule.SweepableLongParamAttribute("MaxIterations", 1, 2147483647)] + public int MaxIterations { get; set; } = 2147483647; + + /// + /// Run SGD to initialize LR weights, converging to this tolerance + /// + public float SgdInitializationTolerance { get; set; } + + /// + /// If set to true, produce no output during training. + /// + public bool Quiet { get; set; } = false; + + /// + /// Init weights diameter + /// + [TlcModule.SweepableFloatParamAttribute("InitWtsDiameter", 0f, 1f, numSteps:5)] + public float InitWtsDiameter { get; set; } + + /// + /// Whether or not to use threads. Default is true + /// + public bool UseThreads { get; set; } = true; + + /// + /// Number of threads + /// + public int? NumThreads { get; set; } + + /// + /// Force densification of the internal optimization vectors + /// + [TlcModule.SweepableDiscreteParamAttribute("DenseOptimizer", new object[]{false, true})] + public bool DenseOptimizer { get; set; } = false; + + /// + /// Enforce non-negative weights + /// + public bool EnforceNonNegativity { get; set; } = false; + + /// + /// Column to use for example weight + /// + public Microsoft.ML.Runtime.EntryPoints.Optional WeightColumn { get; set; } + + /// + /// Column to use for labels + /// + public string LabelColumn { get; set; } = "Label"; + + /// + /// The data to be used for training + /// + public Var TrainingData { get; set; } = new Var(); + + /// + /// Column to use for features + /// + public string FeatureColumn { get; set; } = "Features"; + + /// + /// Normalize option for the feature column + /// + public Models.NormalizeOption NormalizeFeatures { get; set; } = Models.NormalizeOption.Auto; + + /// + /// Whether learner should cache input training data + /// + public Models.CachingOptions Caching { get; set; } = Models.CachingOptions.Auto; + + + public sealed class Output : Microsoft.ML.Runtime.EntryPoints.CommonOutputs.IBinaryClassificationOutput, Microsoft.ML.Runtime.EntryPoints.CommonOutputs.ITrainerOutput + { + /// + /// The trained model + /// + public Var PredictorModel { get; set; } = new Var(); + + } + public ILearningPipelineStep ApplyStep(ILearningPipelineStep previousStep, Experiment experiment) + { + if (!(previousStep is ILearningPipelineDataStep dataStep)) + { + throw new InvalidOperationException($"{ nameof(LogisticRegressionBinaryClassifier)} only supports an { nameof(ILearningPipelineDataStep)} as an input."); + } + + TrainingData = dataStep.Data; + Output output = experiment.Add(this); + return new LogisticRegressionBinaryClassifierPipelineStep(output); + } + + private class LogisticRegressionBinaryClassifierPipelineStep : ILearningPipelinePredictorStep + { + public LogisticRegressionBinaryClassifierPipelineStep(Output output) + { + Model = output.PredictorModel; + } + + public Var Model { get; } + } + } + } + namespace Trainers { /// /// Train a logistic regression multi class model /// - public sealed partial class LogisticRegressor : Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithWeight, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithLabel, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInput, Microsoft.ML.ILearningPipelineItem + public sealed partial class LogisticRegressionClassifier : Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithWeight, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInputWithLabel, Microsoft.ML.Runtime.EntryPoints.CommonInputs.ITrainerInput, Microsoft.ML.ILearningPipelineItem { @@ -5944,17 +5944,17 @@ public ILearningPipelineStep ApplyStep(ILearningPipelineStep previousStep, Exper { if (!(previousStep is ILearningPipelineDataStep dataStep)) { - throw new InvalidOperationException($"{ nameof(LogisticRegressor)} only supports an { nameof(ILearningPipelineDataStep)} as an input."); + throw new InvalidOperationException($"{ nameof(LogisticRegressionClassifier)} only supports an { nameof(ILearningPipelineDataStep)} as an input."); } TrainingData = dataStep.Data; Output output = experiment.Add(this); - return new LogisticRegressorPipelineStep(output); + return new LogisticRegressionClassifierPipelineStep(output); } - private class LogisticRegressorPipelineStep : ILearningPipelinePredictorStep + private class LogisticRegressionClassifierPipelineStep : ILearningPipelinePredictorStep { - public LogisticRegressorPipelineStep(Output output) + public LogisticRegressionClassifierPipelineStep(Output output) { Model = output.PredictorModel; } diff --git a/src/Microsoft.ML/LearningPipeline.cs b/src/Microsoft.ML/LearningPipeline.cs index 8056d03418..630084a588 100644 --- a/src/Microsoft.ML/LearningPipeline.cs +++ b/src/Microsoft.ML/LearningPipeline.cs @@ -84,7 +84,7 @@ public LearningPipeline() /// /// Trainers: /// , - /// , + /// , /// , /// , /// etc. diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestCSharpApi.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestCSharpApi.cs index b66d61ae69..ee4f56c260 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestCSharpApi.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestCSharpApi.cs @@ -219,7 +219,7 @@ public void TestCrossValidationBinaryMacro() concatInput.AddColumn("Features", "Categories", "NumericFeatures"); var concatOutput = subGraph.Add(concatInput); - var lrInput = new ML.Trainers.BinaryLogisticRegressor + var lrInput = new ML.Trainers.LogisticRegressionBinaryClassifier { TrainingData = concatOutput.OutputData, NumThreads = 1 diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs index 4fe503b9b7..b52ee90f17 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs @@ -314,7 +314,7 @@ public void EntryPointOptionalParams() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data1', 'NumThreads': 1 @@ -364,7 +364,7 @@ public void EntryPointExecGraphCommand() }} }}, {{ - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': {{ 'TrainingData': '$data1', 'NumThreads': 1 @@ -816,7 +816,7 @@ public void EntryPointEvaluateBinary() var instanceMetricsPath = DeleteOutputPath("instance.idv"); var confusionMatrixPath = DeleteOutputPath("confusion.idv"); - RunTrainScoreEvaluate("Trainers.BinaryLogisticRegressor", "Models.BinaryClassificationEvaluator", dataPath, warningsPath, overallMetricsPath, instanceMetricsPath, confusionMatrixPath); + RunTrainScoreEvaluate("Trainers.LogisticRegressionBinaryClassifier", "Models.BinaryClassificationEvaluator", dataPath, warningsPath, overallMetricsPath, instanceMetricsPath, confusionMatrixPath); using (var loader = new BinaryLoader(Env, new BinaryLoader.Arguments(), warningsPath)) Assert.Equal(1, CountRows(loader)); @@ -840,7 +840,7 @@ public void EntryPointEvaluateMultiClass() var instanceMetricsPath = DeleteOutputPath("instance.idv"); var confusionMatrixPath = DeleteOutputPath("confusion.idv"); - RunTrainScoreEvaluate("Trainers.LogisticRegressor", "Models.ClassificationEvaluator", dataPath, warningsPath, overallMetricsPath, instanceMetricsPath, confusionMatrixPath); + RunTrainScoreEvaluate("Trainers.LogisticRegressionClassifier", "Models.ClassificationEvaluator", dataPath, warningsPath, overallMetricsPath, instanceMetricsPath, confusionMatrixPath); using (var loader = new BinaryLoader(Env, new BinaryLoader.Arguments(), warningsPath)) Assert.Equal(0, CountRows(loader)); @@ -896,7 +896,7 @@ public void EntryPointSDCARegression() [Fact] public void EntryPointLogisticRegressionMultiClass() { - TestEntryPointRoutine("iris.txt", "Trainers.LogisticRegressor"); + TestEntryPointRoutine("iris.txt", "Trainers.LogisticRegressionClassifier"); } [Fact] @@ -1479,7 +1479,7 @@ public void EntryPointNormalizeIfNeeded() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data2', 'NumThreads': 1 @@ -1559,7 +1559,7 @@ public void EntryPointTrainTestBinaryMacro() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data2', 'NumThreads': 1 @@ -1667,7 +1667,7 @@ public void EntryPointTrainTestMacroNoTransformInput() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data2', 'NumThreads': 1 @@ -1782,7 +1782,7 @@ public void EntryPointTrainTestMacro() 'TransformModel': '$transform', 'Nodes': [ { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data1', 'NumThreads': 1 @@ -1910,7 +1910,7 @@ public void EntryPointChainedTrainTestMacros() 'TransformModel': '$CombinedModel', 'Nodes': [ { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data1', 'NumThreads': 1 @@ -2076,7 +2076,7 @@ public void EntryPointChainedCrossValMacros() 'NumFolds': 3, 'Nodes': [ { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data6', 'NumThreads': 1 @@ -2251,7 +2251,7 @@ public void EntryPointMacroEarlyExpansion() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data2', 'NumThreads': 1 @@ -2322,7 +2322,7 @@ public void EntryPointSerialization() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Inputs': { 'TrainingData': '$data2', 'NumThreads': 1 @@ -2391,7 +2391,7 @@ public void EntryPointNodeSchedulingFields() } }, { - 'Name': 'Trainers.BinaryLogisticRegressor', + 'Name': 'Trainers.LogisticRegressionBinaryClassifier', 'Checkpoint': true, 'Cost': 3.14159, 'Inputs': { @@ -2457,7 +2457,7 @@ public void EntryPointPrepareLabelConvertPredictedLabel() }} }}, {{ - 'Name': 'Trainers.LogisticRegressor', + 'Name': 'Trainers.LogisticRegressionClassifier', 'Inputs': {{ 'Data': '$data2' }},