From 4bfaab7a795a1dd0b4f8a97cd9fa955967a5e119 Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Mon, 11 Mar 2019 04:10:05 +0000 Subject: [PATCH 1/7] renaming several trainers --- .../Dynamic/GeneralizedAdditiveModels.cs | 2 +- .../AveragedPerceptronWithOptions.cs | 2 +- .../StochasticDualCoordinateAscent.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 2 +- ...GradientDescentNonCalibratedWithOptions.cs | 2 +- .../StochasticGradientDescentWithOptions.cs | 2 +- .../Dynamic/Trainers/Clustering/KMeans.cs | 2 +- .../Trainers/Clustering/KMeansWithOptions.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 2 +- .../MatrixFactorizationWithOptions.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 2 +- .../MulticlassDataPartitionEnsembleTrainer.cs | 4 +- .../Regression/RegressionEnsembleTrainer.cs | 4 +- .../FastTreeArguments.cs | 6 +- .../FastTreeRegression.cs | 2 +- src/Microsoft.ML.FastTree/FastTreeTweedie.cs | 34 +-- .../GamClassification.cs | 24 +-- src/Microsoft.ML.FastTree/GamRegression.cs | 18 +- src/Microsoft.ML.FastTree/GamTrainer.cs | 24 +-- .../RandomForestRegression.cs | 34 +-- .../TreeTrainersCatalog.cs | 56 ++--- .../KMeansCatalog.cs | 18 +- .../KMeansPlusPlusTrainer.cs | 24 +-- .../MatrixFactorizationPredictor.cs | 2 +- .../MatrixFactorizationTrainer.cs | 18 +- .../RecommenderCatalog.cs | 18 +- .../LogisticRegression/LogisticRegression.cs | 30 +-- .../MulticlassLogisticRegression.cs | 38 ++-- .../MultiClass/MultiClassNaiveBayesTrainer.cs | 22 +- .../MultiClass/OneVersusAllTrainer.cs | 22 +- .../MultiClass/PairwiseCouplingTrainer.cs | 16 +- .../Standard/Online/AveragedPerceptron.cs | 20 +- .../Standard/Online/OnlineGradientDescent.cs | 20 +- .../PoissonRegression/PoissonRegression.cs | 26 +-- .../Standard/SdcaBinary.cs | 54 ++--- .../Standard/SdcaMultiClass.cs | 32 +-- .../Standard/SdcaRegression.cs | 32 +-- .../Standard/Simple/SimpleTrainers.cs | 12 +- .../StandardLearnersCatalog.cs | 202 +++++++++--------- src/Microsoft.ML.StaticPipe/KMeansStatic.cs | 12 +- src/Microsoft.ML.StaticPipe/LbfgsStatic.cs | 36 ++-- .../MatrixFactorizationStatic.cs | 4 +- .../MultiClassNaiveBayesStatic.cs | 2 +- .../OnlineLearnerStatic.cs | 30 +-- .../SdcaStaticExtensions.cs | 24 +-- src/Microsoft.ML.StaticPipe/SgdStatic.cs | 32 +-- .../Algorithms/SmacSweeper.cs | 4 +- .../CommandTrainMlrWithStats-summary.txt | 2 +- .../Common/EntryPoints/core_ep-list.tsv | 26 +-- .../KMeansAndLogisticRegressionBench.cs | 4 +- .../PredictionEngineBench.cs | 6 +- .../Text/MultiClassClassification.cs | 10 +- .../UnitTests/TestEntryPoints.cs | 32 +-- .../DataTransformation.cs | 2 +- .../Evaluation.cs | 14 +- .../Explainability.cs | 2 +- .../IntrospectiveTraining.cs | 14 +- .../TestIniModels.cs | 4 +- .../TestPredictors.cs | 10 +- .../Training.cs | 22 +- .../FeatureContributionTests.cs | 12 +- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 10 +- .../PermutationFeatureImportanceTests.cs | 6 +- .../Estimators/DecomposableTrainAndPredict.cs | 2 +- .../Scenarios/Api/Estimators/Extensibility.cs | 2 +- .../Api/Estimators/Metacomponents.cs | 2 +- .../Api/Estimators/MultithreadedPrediction.cs | 2 +- .../Api/Estimators/PredictAndMetadata.cs | 2 +- .../Api/Estimators/SimpleTrainAndPredict.cs | 2 +- .../Estimators/TrainSaveModelAndPredict.cs | 2 +- .../Estimators/TrainWithInitialPredictor.cs | 2 +- .../Scenarios/Api/TestApi.cs | 2 +- .../Scenarios/ClusteringTests.cs | 2 +- .../Scenarios/IrisPlantClassificationTests.cs | 2 +- ...PlantClassificationWithStringLabelTests.cs | 2 +- test/Microsoft.ML.Tests/Scenarios/OvaTest.cs | 2 +- .../IrisPlantClassificationTests.cs | 2 +- .../TrainerEstimators/LbfgsTests.cs | 4 +- .../MatrixFactorizationTests.cs | 16 +- .../TrainerEstimators/MetalinearEstimators.cs | 8 +- .../TrainerEstimators/OnlineLinearTests.cs | 2 +- .../TrainerEstimators/SdcaTests.cs | 8 +- .../TrainerEstimators/TrainerEstimators.cs | 8 +- .../TrainerEstimators/TreeEstimators.cs | 8 +- 84 files changed, 618 insertions(+), 618 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs index 1a73bdad3c..6523eaaacf 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs @@ -27,7 +27,7 @@ public static void Example() .Where(name => name != labelName) // Drop the Label .ToArray(); var pipeline = mlContext.Transforms.Concatenate("Features", featureNames) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModels( + .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel( labelColumnName: labelName, featureColumnName: "Features", maximumBinCountPerFeature: 16)); var fitPipeline = pipeline.Fit(data); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs index fb1dfacf50..dad86c7efb 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new AveragedPerceptronTrainer.Options() + var options = new AveragedPerceptronBinaryClassificationTrainer.Options() { LossFunction = new SmoothedHingeLoss.Options(), LearningRate = 0.1f, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs index 74d8f8445c..3c4972df5a 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs @@ -61,7 +61,7 @@ public static void Example() // we could do so by tweaking the 'advancedSetting'. var advancedPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features") .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaBinaryTrainer.Options { + new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { LabelColumnName = "Sentiment", FeatureColumnName = "Features", ConvergenceTolerance = 0.01f, // The learning rate for adjusting bias from being regularized diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs index 97475cf45f..cd232ad310 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs @@ -22,7 +22,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new SdcaBinaryTrainer.Options() + var options = new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options() { // Make the convergence tolerance tighter. ConvergenceTolerance = 0.05f, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs index 3c799834d1..3ff87ebd33 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs @@ -23,7 +23,7 @@ public static void Example() // Create data training pipeline. var pipeline = mlContext.BinaryClassification .Trainers.StochasticGradientDescentNonCalibrated( - new SgdNonCalibratedBinaryTrainer.Options + new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options { InitialLearningRate = 0.01, NumberOfIterations = 10, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs index e98aa8af17..0f0b53a5ca 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new SgdBinaryTrainer.Options() + var options = new StochasticGradientDescentBinaryClassificationTrainer.Options() { // Make the convergence tolerance tighter. ConvergenceTolerance = 5e-5, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs index fb9c867e95..a38d768053 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs @@ -27,7 +27,7 @@ public static void Example() // A pipeline for concatenating the age, parity and induced columns together in the Features column and training a KMeans model on them. string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) - .Append(ml.Clustering.Trainers.KMeans(outputColumnName, numberOfClusters: 2)); + .Append(ml.Clustering.Trainers.KMeansPlusPlus(outputColumnName, numberOfClusters: 2)); var model = pipeline.Fit(trainData); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs index 2ffca06920..0c749cc212 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs @@ -29,7 +29,7 @@ public static void Example() string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) .Append(ml.Clustering.Trainers.KMeans( - new KMeansPlusPlusTrainer.Options + new KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = outputColumnName, NumberOfClusters = 2, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs index d803137ce4..6092a33c1a 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs @@ -26,7 +26,7 @@ public static void Example() // CC 1.216908,1.248052,1.391902,0.4326252,1.099942,0.9262842,1.334019,1.08762,0.9468155,0.4811099 // DD 0.7871246,1.053327,0.8971719,1.588544,1.242697,1.362964,0.6303943,0.9810045,0.9431419,1.557455 - var options = new SdcaMultiClassTrainer.Options + var options = new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { // Add custom loss LossFunction = new HingeLoss.Options(), diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs index ba47977e11..ca29bf883a 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs @@ -25,7 +25,7 @@ public static void Example() // Create a matrix factorization trainer which may consume "Value" as the training label, "MatrixColumnIndex" as the // matrix's column index, and "MatrixRowIndex" as the matrix's row index. Here nameof(...) is used to extract field // names' in MatrixElement class. - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs index 5cb29da11c..535c1b32ae 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var split = mlContext.MulticlassClassification.TrainTestSplit(dataView, testFraction: 0.1); // Create trainer options. - var options = new SdcaRegressionTrainer.Options + var options = new StochasticDualCoordinateAscentRegressionTrainer.Options { // Make the convergence tolerance tighter. ConvergenceTolerance = 0.02f, diff --git a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs index 63ecef2e1e..526f23729a 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Multiclass/MulticlassDataPartitionEnsembleTrainer.cs @@ -64,8 +64,8 @@ public Arguments() // non-default column names. Unfortuantely no method of resolving this temporary strikes me as being any // less laborious than the proper fix, which is that this "meta" component should itself be a trainer // estimator, as opposed to a regular trainer. - var trainerEstimator = new MulticlassLogisticRegression(env, LabelColumnName, FeatureColumnName); - return TrainerUtils.MapTrainerEstimatorToTrainer(env, trainerEstimator); }) }; diff --git a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs index ab17f5f28e..651dfe57c8 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs @@ -52,8 +52,8 @@ public Arguments() { ComponentFactoryUtils.CreateFromFunction( env => { - var trainerEstimator = new OnlineGradientDescentTrainer(env); - return TrainerUtils.MapTrainerEstimatorToTrainer(env, trainerEstimator); }) }; diff --git a/src/Microsoft.ML.FastTree/FastTreeArguments.cs b/src/Microsoft.ML.FastTree/FastTreeArguments.cs index 6d64e40ca5..9be0032b4a 100644 --- a/src/Microsoft.ML.FastTree/FastTreeArguments.cs +++ b/src/Microsoft.ML.FastTree/FastTreeArguments.cs @@ -11,7 +11,7 @@ [assembly: EntryPointModule(typeof(FastTreeBinaryClassificationTrainer.Options))] [assembly: EntryPointModule(typeof(FastTreeRegressionTrainer.Options))] -[assembly: EntryPointModule(typeof(FastTreeTweedieTrainer.Options))] +[assembly: EntryPointModule(typeof(FastTreeTweedieRegressionTrainer.Options))] [assembly: EntryPointModule(typeof(FastTreeRankingTrainer.Options))] namespace Microsoft.ML.Trainers.FastTree @@ -136,7 +136,7 @@ public Options() } } - public sealed partial class FastTreeTweedieTrainer + public sealed partial class FastTreeTweedieRegressionTrainer { [TlcModule.Component(Name = LoadNameValue, FriendlyName = UserNameValue, Desc = Summary)] public sealed class Options : BoostedTreeOptions, IFastTreeTrainerFactory @@ -179,7 +179,7 @@ public Options() EarlyStoppingMetric = EarlyStoppingMetric.L1Norm; // Use L1 by default. } - ITrainer IComponentFactory.CreateComponent(IHostEnvironment env) => new FastTreeTweedieTrainer(env, this); + ITrainer IComponentFactory.CreateComponent(IHostEnvironment env) => new FastTreeTweedieRegressionTrainer(env, this); } } diff --git a/src/Microsoft.ML.FastTree/FastTreeRegression.cs b/src/Microsoft.ML.FastTree/FastTreeRegression.cs index a5cbaa3ae4..53021a05a8 100644 --- a/src/Microsoft.ML.FastTree/FastTreeRegression.cs +++ b/src/Microsoft.ML.FastTree/FastTreeRegression.cs @@ -391,7 +391,7 @@ internal sealed class ObjectiveImpl : ObjectiveFunctionBase, IStepSearch { private readonly float[] _labels; - public ObjectiveImpl(Dataset trainData, RegressionGamTrainer.Options options) : + public ObjectiveImpl(Dataset trainData, GeneralizedAdditiveModelRegressionTrainer.Options options) : base( trainData, options.LearningRate, diff --git a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs index fa2e455d01..c76b53e778 100644 --- a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs +++ b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs @@ -14,11 +14,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(FastTreeTweedieTrainer.Summary, typeof(FastTreeTweedieTrainer), typeof(FastTreeTweedieTrainer.Options), +[assembly: LoadableClass(FastTreeTweedieRegressionTrainer.Summary, typeof(FastTreeTweedieRegressionTrainer), typeof(FastTreeTweedieRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer), typeof(SignatureFeatureScorerTrainer) }, - FastTreeTweedieTrainer.UserNameValue, - FastTreeTweedieTrainer.LoadNameValue, - FastTreeTweedieTrainer.ShortName)] + FastTreeTweedieRegressionTrainer.UserNameValue, + FastTreeTweedieRegressionTrainer.LoadNameValue, + FastTreeTweedieRegressionTrainer.ShortName)] [assembly: LoadableClass(typeof(FastTreeTweedieModelParameters), null, typeof(SignatureLoadModel), "FastTree Tweedie Regression Executor", @@ -30,8 +30,8 @@ namespace Microsoft.ML.Trainers.FastTree // Yang, Quan, and Zou. "Insurance Premium Prediction via Gradient Tree-Boosted Tweedie Compound Poisson Models." // https://arxiv.org/pdf/1508.06378.pdf /// - public sealed partial class FastTreeTweedieTrainer - : BoostingFastTreeTrainerBase, FastTreeTweedieModelParameters> + public sealed partial class FastTreeTweedieRegressionTrainer + : BoostingFastTreeTrainerBase, FastTreeTweedieModelParameters> { internal const string LoadNameValue = "FastTreeTweedieRegression"; internal const string UserNameValue = "FastTree (Boosted Trees) Tweedie Regression"; @@ -47,7 +47,7 @@ public sealed partial class FastTreeTweedieTrainer private SchemaShape.Column[] _outputColumns; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -57,7 +57,7 @@ public sealed partial class FastTreeTweedieTrainer /// The minimal number of documents allowed in a leaf of a regression tree, out of the subsampled data. /// The max number of leaves in each regression tree. /// Total number of decision trees to create in the ensemble. - internal FastTreeTweedieTrainer(IHostEnvironment env, + internal FastTreeTweedieRegressionTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -74,11 +74,11 @@ internal FastTreeTweedieTrainer(IHostEnvironment env, } /// - /// Initializes a new instance of by using the class. + /// Initializes a new instance of by using the class. /// /// The instance of . /// Algorithm advanced settings. - internal FastTreeTweedieTrainer(IHostEnvironment env, Options options) + internal FastTreeTweedieRegressionTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { Initialize(); @@ -321,7 +321,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -518,18 +518,18 @@ private protected override void Map(in VBuffer src, ref float dst) internal static partial class FastTree { [TlcModule.EntryPoint(Name = "Trainers.FastTreeTweedieRegressor", - Desc = FastTreeTweedieTrainer.Summary, - UserName = FastTreeTweedieTrainer.UserNameValue, - ShortName = FastTreeTweedieTrainer.ShortName)] - public static CommonOutputs.RegressionOutput TrainTweedieRegression(IHostEnvironment env, FastTreeTweedieTrainer.Options input) + Desc = FastTreeTweedieRegressionTrainer.Summary, + UserName = FastTreeTweedieRegressionTrainer.UserNameValue, + ShortName = FastTreeTweedieRegressionTrainer.ShortName)] + public static CommonOutputs.RegressionOutput TrainTweedieRegression(IHostEnvironment env, FastTreeTweedieRegressionTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainTweeedie"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new FastTreeTweedieTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new FastTreeTweedieRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName)); diff --git a/src/Microsoft.ML.FastTree/GamClassification.cs b/src/Microsoft.ML.FastTree/GamClassification.cs index 8a67f448ed..7848ff9a86 100644 --- a/src/Microsoft.ML.FastTree/GamClassification.cs +++ b/src/Microsoft.ML.FastTree/GamClassification.cs @@ -14,12 +14,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(BinaryClassificationGamTrainer.Summary, - typeof(BinaryClassificationGamTrainer), typeof(BinaryClassificationGamTrainer.Options), +[assembly: LoadableClass(GeneralizedAdditiveModelBinaryClassificationTrainer.Summary, + typeof(GeneralizedAdditiveModelBinaryClassificationTrainer), typeof(GeneralizedAdditiveModelBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - BinaryClassificationGamTrainer.UserNameValue, - BinaryClassificationGamTrainer.LoadNameValue, - BinaryClassificationGamTrainer.ShortName, DocName = "trainer/GAM.md")] + GeneralizedAdditiveModelBinaryClassificationTrainer.UserNameValue, + GeneralizedAdditiveModelBinaryClassificationTrainer.LoadNameValue, + GeneralizedAdditiveModelBinaryClassificationTrainer.ShortName, DocName = "trainer/GAM.md")] [assembly: LoadableClass(typeof(IPredictorProducing), typeof(BinaryClassificationGamModelParameters), null, typeof(SignatureLoadModel), "GAM Binary Class Predictor", @@ -27,8 +27,8 @@ namespace Microsoft.ML.Trainers.FastTree { - public sealed class BinaryClassificationGamTrainer : - GamTrainerBase>, CalibratedModelParametersBase> { @@ -48,16 +48,16 @@ public sealed class Options : OptionsBase private protected override bool NeedCalibration => true; /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal BinaryClassificationGamTrainer(IHostEnvironment env, Options options) + internal GeneralizedAdditiveModelBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { _sigmoidParameter = 1; } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -66,7 +66,7 @@ internal BinaryClassificationGamTrainer(IHostEnvironment env, Options options) /// The number of iterations to use in learning the features. /// The learning rate. GAMs work best with a small learning rate. /// The maximum number of bins to use to approximate features - internal BinaryClassificationGamTrainer(IHostEnvironment env, + internal GeneralizedAdditiveModelBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string rowGroupColumnName = null, @@ -142,7 +142,7 @@ private protected override BinaryPredictionTransformer new BinaryPredictionTransformer>(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public BinaryPredictionTransformer> Fit(IDataView trainData, IDataView validationData) diff --git a/src/Microsoft.ML.FastTree/GamRegression.cs b/src/Microsoft.ML.FastTree/GamRegression.cs index 7ad930c3c1..91e41a085e 100644 --- a/src/Microsoft.ML.FastTree/GamRegression.cs +++ b/src/Microsoft.ML.FastTree/GamRegression.cs @@ -11,12 +11,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(RegressionGamTrainer.Summary, - typeof(RegressionGamTrainer), typeof(RegressionGamTrainer.Options), +[assembly: LoadableClass(GeneralizedAdditiveModelRegressionTrainer.Summary, + typeof(GeneralizedAdditiveModelRegressionTrainer), typeof(GeneralizedAdditiveModelRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - RegressionGamTrainer.UserNameValue, - RegressionGamTrainer.LoadNameValue, - RegressionGamTrainer.ShortName, DocName = "trainer/GAM.md")] + GeneralizedAdditiveModelRegressionTrainer.UserNameValue, + GeneralizedAdditiveModelRegressionTrainer.LoadNameValue, + GeneralizedAdditiveModelRegressionTrainer.ShortName, DocName = "trainer/GAM.md")] [assembly: LoadableClass(typeof(RegressionGamModelParameters), null, typeof(SignatureLoadModel), "GAM Regression Predictor", @@ -24,7 +24,7 @@ namespace Microsoft.ML.Trainers.FastTree { - public sealed class RegressionGamTrainer : GamTrainerBase, RegressionGamModelParameters> + public sealed class GeneralizedAdditiveModelRegressionTrainer : GeneralizedAdditiveModeTrainerBase, RegressionGamModelParameters> { public partial class Options : OptionsBase { @@ -39,7 +39,7 @@ public partial class Options : OptionsBase private protected override PredictionKind PredictionKind => PredictionKind.Regression; - internal RegressionGamTrainer(IHostEnvironment env, Options options) + internal GeneralizedAdditiveModelRegressionTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { } /// @@ -52,7 +52,7 @@ internal RegressionGamTrainer(IHostEnvironment env, Options options) /// The number of iterations to use in learning the features. /// The learning rate. GAMs work best with a small learning rate. /// The maximum number of bins to use to approximate features - internal RegressionGamTrainer(IHostEnvironment env, + internal GeneralizedAdditiveModelRegressionTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string rowGroupColumnName = null, @@ -91,7 +91,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) diff --git a/src/Microsoft.ML.FastTree/GamTrainer.cs b/src/Microsoft.ML.FastTree/GamTrainer.cs index 4c607c2f1c..41ede647bc 100644 --- a/src/Microsoft.ML.FastTree/GamTrainer.cs +++ b/src/Microsoft.ML.FastTree/GamTrainer.cs @@ -49,9 +49,9 @@ namespace Microsoft.ML.Trainers.FastTree /// ]]> /// /// - public abstract partial class GamTrainerBase : TrainerEstimatorBase + public abstract partial class GeneralizedAdditiveModeTrainerBase : TrainerEstimatorBase where TTransformer : ISingleFeaturePredictionTransformer - where TOptions : GamTrainerBase.OptionsBase, new() + where TOptions : GeneralizedAdditiveModeTrainerBase.OptionsBase, new() where TPredictor : class { public abstract class OptionsBase : TrainerInputBaseWithWeight @@ -146,7 +146,7 @@ public abstract class OptionsBase : TrainerInputBaseWithWeight private protected IParallelTraining ParallelTraining; - private protected GamTrainerBase(IHostEnvironment env, + private protected GeneralizedAdditiveModeTrainerBase(IHostEnvironment env, string name, SchemaShape.Column label, string featureColumnName, @@ -174,7 +174,7 @@ private protected GamTrainerBase(IHostEnvironment env, InitializeThreads(); } - private protected GamTrainerBase(IHostEnvironment env, TOptions options, string name, SchemaShape.Column label) + private protected GeneralizedAdditiveModeTrainerBase(IHostEnvironment env, TOptions options, string name, SchemaShape.Column label) : base(Contracts.CheckRef(env, nameof(env)).Register(name), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), label, TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { @@ -663,30 +663,30 @@ public Stump(uint splitPoint, double lteValue, double gtValue) internal static class Gam { - [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelRegressor", Desc = RegressionGamTrainer.Summary, UserName = RegressionGamTrainer.UserNameValue, ShortName = RegressionGamTrainer.ShortName)] - public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, RegressionGamTrainer.Options input) + [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelRegressor", Desc = GeneralizedAdditiveModelRegressionTrainer.Summary, UserName = GeneralizedAdditiveModelRegressionTrainer.UserNameValue, ShortName = GeneralizedAdditiveModelRegressionTrainer.ShortName)] + public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, GeneralizedAdditiveModelRegressionTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainGAM"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new RegressionGamTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new GeneralizedAdditiveModelRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } - [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelBinaryClassifier", Desc = BinaryClassificationGamTrainer.Summary, UserName = BinaryClassificationGamTrainer.UserNameValue, ShortName = BinaryClassificationGamTrainer.ShortName)] - public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, BinaryClassificationGamTrainer.Options input) + [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelBinaryClassifier", Desc = GeneralizedAdditiveModelBinaryClassificationTrainer.Summary, UserName = GeneralizedAdditiveModelBinaryClassificationTrainer.UserNameValue, ShortName = GeneralizedAdditiveModelBinaryClassificationTrainer.ShortName)] + public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, GeneralizedAdditiveModelBinaryClassificationTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainGAM"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new BinaryClassificationGamTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new GeneralizedAdditiveModelBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.FastTree/RandomForestRegression.cs b/src/Microsoft.ML.FastTree/RandomForestRegression.cs index 9ee741b37f..049c608514 100644 --- a/src/Microsoft.ML.FastTree/RandomForestRegression.cs +++ b/src/Microsoft.ML.FastTree/RandomForestRegression.cs @@ -13,11 +13,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(FastForestRegression.Summary, typeof(FastForestRegression), typeof(FastForestRegression.Options), +[assembly: LoadableClass(FastForestRegressionTrainer.Summary, typeof(FastForestRegressionTrainer), typeof(FastForestRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer), typeof(SignatureFeatureScorerTrainer) }, - FastForestRegression.UserNameValue, - FastForestRegression.LoadNameValue, - FastForestRegression.ShortName)] + FastForestRegressionTrainer.UserNameValue, + FastForestRegressionTrainer.LoadNameValue, + FastForestRegressionTrainer.ShortName)] [assembly: LoadableClass(typeof(FastForestRegressionModelParameters), null, typeof(SignatureLoadModel), "FastForest Regression Executor", @@ -243,8 +243,8 @@ ISchemaBindableMapper IQuantileRegressionPredictor.CreateMapper(Double[] quantil } /// - public sealed partial class FastForestRegression - : RandomForestTrainerBase, FastForestRegressionModelParameters> + public sealed partial class FastForestRegressionTrainer + : RandomForestTrainerBase, FastForestRegressionModelParameters> { public sealed class Options : FastForestOptionsBase { @@ -261,7 +261,7 @@ public sealed class Options : FastForestOptionsBase internal const string ShortName = "ffr"; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -270,7 +270,7 @@ public sealed class Options : FastForestOptionsBase /// The max number of leaves in each regression tree. /// Total number of decision trees to create in the ensemble. /// The minimal number of documents allowed in a leaf of a regression tree, out of the subsampled data. - internal FastForestRegression(IHostEnvironment env, + internal FastForestRegressionTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -284,11 +284,11 @@ internal FastForestRegression(IHostEnvironment env, } /// - /// Initializes a new instance of by using the class. + /// Initializes a new instance of by using the class. /// /// The instance of . /// Algorithm advanced settings. - internal FastForestRegression(IHostEnvironment env, Options options) + internal FastForestRegressionTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName), true) { } @@ -331,7 +331,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -425,18 +425,18 @@ public BasicImpl(Dataset trainData, Options options) internal static partial class FastForest { [TlcModule.EntryPoint(Name = "Trainers.FastForestRegressor", - Desc = FastForestRegression.Summary, - UserName = FastForestRegression.LoadNameValue, - ShortName = FastForestRegression.ShortName)] - public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, FastForestRegression.Options input) + Desc = FastForestRegressionTrainer.Summary, + UserName = FastForestRegressionTrainer.LoadNameValue, + ShortName = FastForestRegressionTrainer.ShortName)] + public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, FastForestRegressionTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainFastForest"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new FastForestRegression(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new FastForestRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName)); diff --git a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs index ee86489335..57a955b23f 100644 --- a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs +++ b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs @@ -136,7 +136,7 @@ public static FastTreeRankingTrainer FastTree(this RankingCatalog.RankingTrainer } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// The name of the label column. @@ -145,7 +145,7 @@ public static FastTreeRankingTrainer FastTree(this RankingCatalog.RankingTrainer /// The number of iterations to use in learning the features. /// The maximum number of bins to use to approximate features. /// The learning rate. GAMs work best with a small learning rate. - public static BinaryClassificationGamTrainer GeneralizedAdditiveModels(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdditiveModel(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -155,24 +155,24 @@ public static BinaryClassificationGamTrainer GeneralizedAdditiveModels(this Bina { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new BinaryClassificationGamTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); + return new GeneralizedAdditiveModelBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// Algorithm advanced settings. - public static BinaryClassificationGamTrainer GeneralizedAdditiveModels(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - BinaryClassificationGamTrainer.Options options) + public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdditiveModel(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + GeneralizedAdditiveModelBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new BinaryClassificationGamTrainer(env, options); + return new GeneralizedAdditiveModelBinaryClassificationTrainer(env, options); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// The name of the label column. @@ -181,7 +181,7 @@ public static BinaryClassificationGamTrainer GeneralizedAdditiveModels(this Bina /// The number of iterations to use in learning the features. /// The maximum number of bins to use to approximate features. /// The learning rate. GAMs work best with a small learning rate. - public static RegressionGamTrainer GeneralizedAdditiveModels(this RegressionCatalog.RegressionTrainers catalog, + public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -191,24 +191,24 @@ public static RegressionGamTrainer GeneralizedAdditiveModels(this RegressionCata { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RegressionGamTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); + return new GeneralizedAdditiveModelRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// Algorithm advanced settings. - public static RegressionGamTrainer GeneralizedAdditiveModels(this RegressionCatalog.RegressionTrainers catalog, - RegressionGamTrainer.Options options) + public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel(this RegressionCatalog.RegressionTrainers catalog, + GeneralizedAdditiveModelRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RegressionGamTrainer(env, options); + return new GeneralizedAdditiveModelRegressionTrainer(env, options); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// The name of the label column. @@ -218,7 +218,7 @@ public static RegressionGamTrainer GeneralizedAdditiveModels(this RegressionCata /// The maximum number of leaves per decision tree. /// The minimal number of datapoints allowed in a leaf of the tree, out of the subsampled data. /// The learning rate. - public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, + public static FastTreeTweedieRegressionTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -229,26 +229,26 @@ public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.Regr { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastTreeTweedieTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves, learningRate); + return new FastTreeTweedieRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves, learningRate); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// Algorithm advanced settings. - public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, - FastTreeTweedieTrainer.Options options) + public static FastTreeTweedieRegressionTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, + FastTreeTweedieRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastTreeTweedieTrainer(env, options); + return new FastTreeTweedieRegressionTrainer(env, options); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// The name of the label column. @@ -257,7 +257,7 @@ public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.Regr /// The maximum number of leaves per decision tree. /// Total number of decision trees to create in the ensemble. /// The minimal number of datapoints allowed in a leaf of the tree, out of the subsampled data. - public static FastForestRegression FastForest(this RegressionCatalog.RegressionTrainers catalog, + public static FastForestRegressionTrainer FastForest(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -267,22 +267,22 @@ public static FastForestRegression FastForest(this RegressionCatalog.RegressionT { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastForestRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves); + return new FastForestRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// Algorithm advanced settings. - public static FastForestRegression FastForest(this RegressionCatalog.RegressionTrainers catalog, - FastForestRegression.Options options) + public static FastForestRegressionTrainer FastForest(this RegressionCatalog.RegressionTrainers catalog, + FastForestRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastForestRegression(env, options); + return new FastForestRegressionTrainer(env, options); } /// diff --git a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs index 9d34af0464..ba09aa6ae5 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs @@ -9,12 +9,12 @@ namespace Microsoft.ML { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// The name of the feature column. @@ -26,25 +26,25 @@ public static class KMeansClusteringExtensions /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs)] /// ]]> /// - public static KMeansPlusPlusTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, + public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, - int numberOfClusters = KMeansPlusPlusTrainer.Defaults.NumberOfClusters) + int numberOfClusters = KMeansPlusPlusClusteringTrainer.Defaults.NumberOfClusters) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new KMeansPlusPlusTrainer.Options + var options = new KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = featureColumnName, ExampleWeightColumnName = exampleWeightColumnName, NumberOfClusters = numberOfClusters }; - return new KMeansPlusPlusTrainer(env, options); + return new KMeansPlusPlusClusteringTrainer(env, options); } /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// Algorithm advanced options. @@ -54,13 +54,13 @@ public static KMeansPlusPlusTrainer KMeans(this ClusteringCatalog.ClusteringTrai /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs)] /// ]]> /// - public static KMeansPlusPlusTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusTrainer.Options options) + public static KMeansPlusPlusClusteringTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusClusteringTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new KMeansPlusPlusTrainer(env, options); + return new KMeansPlusPlusClusteringTrainer(env, options); } } } diff --git a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs index 498fa2c861..e7c26b4eab 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs @@ -17,18 +17,18 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(KMeansPlusPlusTrainer.Summary, typeof(KMeansPlusPlusTrainer), typeof(KMeansPlusPlusTrainer.Options), +[assembly: LoadableClass(KMeansPlusPlusClusteringTrainer.Summary, typeof(KMeansPlusPlusClusteringTrainer), typeof(KMeansPlusPlusClusteringTrainer.Options), new[] { typeof(SignatureClusteringTrainer), typeof(SignatureTrainer) }, - KMeansPlusPlusTrainer.UserNameValue, - KMeansPlusPlusTrainer.LoadNameValue, - KMeansPlusPlusTrainer.ShortName, "KMeans")] + KMeansPlusPlusClusteringTrainer.UserNameValue, + KMeansPlusPlusClusteringTrainer.LoadNameValue, + KMeansPlusPlusClusteringTrainer.ShortName, "KMeans")] -[assembly: LoadableClass(typeof(void), typeof(KMeansPlusPlusTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] +[assembly: LoadableClass(typeof(void), typeof(KMeansPlusPlusClusteringTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] namespace Microsoft.ML.Trainers { /// - public class KMeansPlusPlusTrainer : TrainerEstimatorBase, KMeansModelParameters> + public class KMeansPlusPlusClusteringTrainer : TrainerEstimatorBase, KMeansModelParameters> { internal const string LoadNameValue = "KMeansPlusPlus"; internal const string UserNameValue = "KMeans++ Clustering"; @@ -112,11 +112,11 @@ public sealed class Options : UnsupervisedTrainerInputBaseWithWeight private protected override PredictionKind PredictionKind => PredictionKind.Clustering; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The to use. /// The advanced options of the algorithm. - internal KMeansPlusPlusTrainer(IHostEnvironment env, Options options) + internal KMeansPlusPlusClusteringTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), default, TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { Host.CheckValue(options, nameof(options)); @@ -245,7 +245,7 @@ internal static CommonOutputs.ClusteringOutput TrainKMeans(IHostEnvironment env, EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new KMeansPlusPlusTrainer(host, input), + () => new KMeansPlusPlusClusteringTrainer(host, input), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } @@ -739,10 +739,10 @@ public static void Initialize(IHost host, int numThreads, IChannel ch, FeatureFl host.CheckValue(ch, nameof(ch)); ch.CheckValue(cursorFactory, nameof(cursorFactory)); ch.CheckValue(centroids, nameof(centroids)); - ch.CheckUserArg(numThreads > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfThreads), "Must be positive"); - ch.CheckUserArg(k > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfClusters), "Must be positive"); + ch.CheckUserArg(numThreads > 0, nameof(KMeansPlusPlusClusteringTrainer.Options.NumberOfThreads), "Must be positive"); + ch.CheckUserArg(k > 0, nameof(KMeansPlusPlusClusteringTrainer.Options.NumberOfClusters), "Must be positive"); ch.CheckParam(dimensionality > 0, nameof(dimensionality), "Must be positive"); - ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansPlusPlusTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); + ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansPlusPlusClusteringTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); int numRounds; int numSamplesPerRound; diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs index 6b97b90b1c..ab1a39065d 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs @@ -416,7 +416,7 @@ public sealed class MatrixFactorizationPredictionTransformer : PredictionTransfo /// The output column is "Score" by default but user can append a string to it. /// /// Eviroment object for showing information - /// The model trained by one of the training functions in + /// The model trained by one of the training functions in /// Targeted schema that containing columns named as xColumnName /// The name of the column used as role in matrix factorization world /// The name of the column used as role in matrix factorization world diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs index c934fe4704..310fe6e23a 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs @@ -17,9 +17,9 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.Recommender; -[assembly: LoadableClass(MatrixFactorizationTrainer.Summary, typeof(MatrixFactorizationTrainer), typeof(MatrixFactorizationTrainer.Options), +[assembly: LoadableClass(MatrixFactorizationRecommenderTrainer.Summary, typeof(MatrixFactorizationRecommenderTrainer), typeof(MatrixFactorizationRecommenderTrainer.Options), new Type[] { typeof(SignatureTrainer), typeof(SignatureMatrixRecommendingTrainer) }, - "Matrix Factorization", MatrixFactorizationTrainer.LoadNameValue, "libmf", "mf")] + "Matrix Factorization", MatrixFactorizationRecommenderTrainer.LoadNameValue, "libmf", "mf")] namespace Microsoft.ML.Trainers { @@ -86,7 +86,7 @@ namespace Microsoft.ML.Trainers /// ]]> /// /// - public sealed class MatrixFactorizationTrainer : ITrainer, + public sealed class MatrixFactorizationRecommenderTrainer : ITrainer, IEstimator { /// @@ -112,7 +112,7 @@ public enum LossFunctionType }; /// - /// Advanced options for the . + /// Advanced options for the . /// public sealed class Options { @@ -310,12 +310,12 @@ internal static class Defaults private readonly TrainerInfo _info; /// - /// Initializes a new instance of through the class. + /// Initializes a new instance of through the class. /// /// The private instance of . /// An instance of to apply advanced parameters to the algorithm. [BestFriend] - internal MatrixFactorizationTrainer(IHostEnvironment env, Options options) + internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); @@ -348,7 +348,7 @@ internal MatrixFactorizationTrainer(IHostEnvironment env, Options options) } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The private instance of . /// The name of the label column. @@ -358,7 +358,7 @@ internal MatrixFactorizationTrainer(IHostEnvironment env, Options options) /// Initial learning rate. It specifies the speed of the training algorithm. /// Number of training iterations. [BestFriend] - internal MatrixFactorizationTrainer(IHostEnvironment env, + internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, string labelColumnName, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, @@ -491,7 +491,7 @@ private SafeTrainingAndModelBuffer PrepareBuffer() } /// - /// Trains a using both training and validation data, returns a . + /// Trains a using both training and validation data, returns a . /// /// The training data set. /// The validation data set. diff --git a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs index 8b6930ef0a..b31c679712 100644 --- a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs +++ b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs @@ -63,14 +63,14 @@ internal RecommendationTrainers(RecommendationCatalog catalog) /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorization.cs)] /// ]]> /// - public MatrixFactorizationTrainer MatrixFactorization( + public MatrixFactorizationRecommenderTrainer MatrixFactorization( string labelColumn, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, - int approximationRank = MatrixFactorizationTrainer.Defaults.ApproximationRank, - double learningRate = MatrixFactorizationTrainer.Defaults.LearningRate, - int numberOfIterations = MatrixFactorizationTrainer.Defaults.NumIterations) - => new MatrixFactorizationTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, + int approximationRank = MatrixFactorizationRecommenderTrainer.Defaults.ApproximationRank, + double learningRate = MatrixFactorizationRecommenderTrainer.Defaults.LearningRate, + int numberOfIterations = MatrixFactorizationRecommenderTrainer.Defaults.NumIterations) + => new MatrixFactorizationRecommenderTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, approximationRank, learningRate, numberOfIterations); /// @@ -79,7 +79,7 @@ public MatrixFactorizationTrainer MatrixFactorization( /// /// The basic idea of matrix factorization is finding two low-rank factor matrices to apporimate the training matrix. /// In this module, the expected training data is a list of tuples. Every tuple consists of a column index, a row index, - /// and the value at the location specified by the two indexes. The training configuration is encoded in . + /// and the value at the location specified by the two indexes. The training configuration is encoded in . /// /// /// Advanced arguments to the algorithm. @@ -89,9 +89,9 @@ public MatrixFactorizationTrainer MatrixFactorization( /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs)] /// ]]> /// - public MatrixFactorizationTrainer MatrixFactorization( - MatrixFactorizationTrainer.Options options) - => new MatrixFactorizationTrainer(Owner.GetEnvironment(), options); + public MatrixFactorizationRecommenderTrainer MatrixFactorization( + MatrixFactorizationRecommenderTrainer.Options options) + => new MatrixFactorizationRecommenderTrainer(Owner.GetEnvironment(), options); } /// diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs index 405048f3b1..5674aa1fe6 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/LogisticRegression.cs @@ -16,21 +16,21 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(LogisticRegression.Summary, typeof(LogisticRegression), typeof(LogisticRegression.Options), +[assembly: LoadableClass(LogisticRegressionBinaryClassificationTrainer.Summary, typeof(LogisticRegressionBinaryClassificationTrainer), typeof(LogisticRegressionBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - LogisticRegression.UserNameValue, - LogisticRegression.LoadNameValue, - LogisticRegression.ShortName, + LogisticRegressionBinaryClassificationTrainer.UserNameValue, + LogisticRegressionBinaryClassificationTrainer.LoadNameValue, + LogisticRegressionBinaryClassificationTrainer.ShortName, "logisticregressionwrapper")] -[assembly: LoadableClass(typeof(void), typeof(LogisticRegression), null, typeof(SignatureEntryPointModule), LogisticRegression.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(LogisticRegressionBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), LogisticRegressionBinaryClassificationTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { /// /// - public sealed partial class LogisticRegression : LbfgsTrainerBase>, CalibratedModelParametersBase> { @@ -55,7 +55,7 @@ public sealed class Options : OptionsBase /// /// The instance of that computes the std of the training statistics, at the end of training. /// The calculations are not part of Microsoft.ML package, due to the size of MKL. - /// If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize . + /// If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize . /// to the implementation in the Microsoft.ML.Mkl.Components package. /// public ComputeLogisticRegressionStandardDeviation ComputeStandardDeviation; @@ -65,7 +65,7 @@ public sealed class Options : OptionsBase private LinearModelStatistics _stats; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The name of the label column. @@ -74,9 +74,9 @@ public sealed class Options : OptionsBase /// Enforce non-negative weights. /// Weight of L1 regularizer term. /// Weight of L2 regularizer term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. - internal LogisticRegression(IHostEnvironment env, + internal LogisticRegressionBinaryClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -96,9 +96,9 @@ internal LogisticRegression(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal LogisticRegression(IHostEnvironment env, Options options) + internal LogisticRegressionBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { _posWeight = 0; @@ -128,7 +128,7 @@ private protected override BinaryPredictionTransformer new BinaryPredictionTransformer>(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of a using an already trained and returns + /// Continues the training of a using an already trained and returns /// a . /// public BinaryPredictionTransformer> Fit(IDataView trainData, LinearModelParameters modelParameters) @@ -421,7 +421,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnviro EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LogisticRegression(host, input), + () => new LogisticRegressionBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } @@ -440,7 +440,7 @@ public abstract class ComputeLogisticRegressionStandardDeviation /// Computes the standard deviation matrix of each of the non-zero training weights, needed to calculate further the standard deviation, /// p-value and z-Score. /// The calculations are not part of Microsoft.ML package, due to the size of MKL. - /// If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize + /// If you need these calculations, add the Microsoft.ML.Mkl.Components package, and initialize /// to the implementation in the Microsoft.ML.Mkl.Components package. /// Due to the existence of regularization, an approximation is used to compute the variances of the trained linear coefficients. /// diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs index e4175dee8b..88e827ce56 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs @@ -20,12 +20,12 @@ using Microsoft.ML.Trainers; using Newtonsoft.Json.Linq; -[assembly: LoadableClass(typeof(MulticlassLogisticRegression), typeof(MulticlassLogisticRegression.Options), +[assembly: LoadableClass(typeof(LogisticRegressionMulticlassClassificationTrainer), typeof(LogisticRegressionMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - MulticlassLogisticRegression.UserNameValue, - MulticlassLogisticRegression.LoadNameValue, + LogisticRegressionMulticlassClassificationTrainer.UserNameValue, + LogisticRegressionMulticlassClassificationTrainer.LoadNameValue, "MulticlassLogisticRegressionPredictorNew", - MulticlassLogisticRegression.ShortName, + LogisticRegressionMulticlassClassificationTrainer.ShortName, "multilr")] [assembly: LoadableClass(typeof(MulticlassLogisticRegressionModelParameters), null, typeof(SignatureLoadModel), @@ -36,7 +36,7 @@ namespace Microsoft.ML.Trainers { /// /// - public sealed class MulticlassLogisticRegression : LbfgsTrainerBase, MulticlassLogisticRegressionModelParameters> { internal const string LoadNameValue = "MultiClassLogisticRegression"; @@ -72,7 +72,7 @@ public sealed class Options : OptionsBase private protected override int ClassCount => _numClasses; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The name of the label column. @@ -81,9 +81,9 @@ public sealed class Options : OptionsBase /// Enforce non-negative weights. /// Weight of L1 regularizer term. /// Weight of L2 regularizer term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. - internal MulticlassLogisticRegression(IHostEnvironment env, + internal LogisticRegressionMulticlassClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -101,9 +101,9 @@ internal MulticlassLogisticRegression(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal MulticlassLogisticRegression(IHostEnvironment env, Options options) + internal LogisticRegressionMulticlassClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeU4ScalarColumn(options.LabelColumnName)) { ShowTrainingStats = LbfgsTrainerOptions.ShowTrainingStatistics; @@ -329,7 +329,7 @@ private protected override MulticlassPredictionTransformer new MulticlassPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name, LabelColumn.Name); /// - /// Continues the training of a using an already trained and returns + /// Continues the training of a using an already trained and returns /// a . /// public MulticlassPredictionTransformer Fit(IDataView trainData, MulticlassLogisticRegressionModelParameters modelParameters) @@ -430,7 +430,7 @@ internal MulticlassLogisticRegressionModelParameters(IHostEnvironment env, in VB /// /// Initializes a new instance of the class. - /// This constructor is called by to create the predictor. + /// This constructor is called by to create the predictor. /// /// The host environment. /// The array of weights vectors. It should contain weights. @@ -780,7 +780,7 @@ private void Calibrate(Span dst) /// void ICanSaveInTextFormat.SaveAsText(TextWriter writer, RoleMappedSchema schema) { - writer.WriteLine(nameof(MulticlassLogisticRegression) + " bias and non-zero weights"); + writer.WriteLine(nameof(LogisticRegressionMulticlassClassificationTrainer) + " bias and non-zero weights"); foreach (var namedValues in ((ICanGetSummaryInKeyValuePairs)this).GetSummaryInKeyValuePairs(schema)) { @@ -1005,21 +1005,21 @@ DataViewRow ICanGetSummaryAsIRow.GetStatsIRowOrNull(RoleMappedSchema schema) /// /// A component to train a logistic regression model. /// - public partial class LogisticRegression + public partial class LogisticRegressionBinaryClassificationTrainer { [TlcModule.EntryPoint(Name = "Trainers.LogisticRegressionClassifier", Desc = Summary, - UserName = MulticlassLogisticRegression.UserNameValue, - ShortName = MulticlassLogisticRegression.ShortName)] - internal static CommonOutputs.MulticlassClassificationOutput TrainMultiClass(IHostEnvironment env, MulticlassLogisticRegression.Options input) + UserName = LogisticRegressionMulticlassClassificationTrainer.UserNameValue, + ShortName = LogisticRegressionMulticlassClassificationTrainer.ShortName)] + internal static CommonOutputs.MulticlassClassificationOutput TrainMultiClass(IHostEnvironment env, LogisticRegressionMulticlassClassificationTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainLRMultiClass"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new MulticlassLogisticRegression(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new LogisticRegressionMulticlassClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs index 0faacec7c3..f5b8baa612 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs @@ -14,20 +14,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(MultiClassNaiveBayesTrainer.Summary, typeof(MultiClassNaiveBayesTrainer), typeof(MultiClassNaiveBayesTrainer.Options), +[assembly: LoadableClass(NaiveBayesMulticlassClassificationTrainer.Summary, typeof(NaiveBayesMulticlassClassificationTrainer), typeof(NaiveBayesMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - MultiClassNaiveBayesTrainer.UserName, - MultiClassNaiveBayesTrainer.LoadName, - MultiClassNaiveBayesTrainer.ShortName, DocName = "trainer/NaiveBayes.md")] + NaiveBayesMulticlassClassificationTrainer.UserName, + NaiveBayesMulticlassClassificationTrainer.LoadName, + NaiveBayesMulticlassClassificationTrainer.ShortName, DocName = "trainer/NaiveBayes.md")] [assembly: LoadableClass(typeof(MultiClassNaiveBayesModelParameters), null, typeof(SignatureLoadModel), "Multi Class Naive Bayes predictor", MultiClassNaiveBayesModelParameters.LoaderSignature)] -[assembly: LoadableClass(typeof(void), typeof(MultiClassNaiveBayesTrainer), null, typeof(SignatureEntryPointModule), MultiClassNaiveBayesTrainer.LoadName)] +[assembly: LoadableClass(typeof(void), typeof(NaiveBayesMulticlassClassificationTrainer), null, typeof(SignatureEntryPointModule), NaiveBayesMulticlassClassificationTrainer.LoadName)] namespace Microsoft.ML.Trainers { - public sealed class MultiClassNaiveBayesTrainer : TrainerEstimatorBase, MultiClassNaiveBayesModelParameters> + public sealed class NaiveBayesMulticlassClassificationTrainer : TrainerEstimatorBase, MultiClassNaiveBayesModelParameters> { internal const string LoadName = "MultiClassNaiveBayes"; internal const string UserName = "Multiclass Naive Bayes"; @@ -50,12 +50,12 @@ internal sealed class Options : TrainerInputBaseWithLabel public override TrainerInfo Info => _info; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The name of the label column. /// The name of the feature column. - internal MultiClassNaiveBayesTrainer(IHostEnvironment env, + internal NaiveBayesMulticlassClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadName), TrainerUtils.MakeR4VecFeature(featureColumn), @@ -66,9 +66,9 @@ internal MultiClassNaiveBayesTrainer(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal MultiClassNaiveBayesTrainer(IHostEnvironment env, Options options) + internal NaiveBayesMulticlassClassificationTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadName), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), TrainerUtils.MakeU4ScalarColumn(options.LabelColumnName)) { @@ -176,7 +176,7 @@ internal static CommonOutputs.MulticlassClassificationOutput TrainMultiClassNaiv EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new MultiClassNaiveBayesTrainer(host, input), + () => new NaiveBayesMulticlassClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs index 82a3b259ff..2ad3c1cbbb 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs @@ -22,10 +22,10 @@ using Microsoft.ML.Trainers; using Newtonsoft.Json.Linq; -[assembly: LoadableClass(OneVersusAllTrainer.Summary, typeof(OneVersusAllTrainer), typeof(OneVersusAllTrainer.Options), +[assembly: LoadableClass(OneVersusAllMulticlassClassificationTrainer.Summary, typeof(OneVersusAllMulticlassClassificationTrainer), typeof(OneVersusAllMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - OneVersusAllTrainer.UserNameValue, - OneVersusAllTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] + OneVersusAllMulticlassClassificationTrainer.UserNameValue, + OneVersusAllMulticlassClassificationTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] [assembly: LoadableClass(typeof(OneVersusAllModelParameters), null, typeof(SignatureLoadModel), "OVA Executor", @@ -39,7 +39,7 @@ namespace Microsoft.ML.Trainers using TScalarPredictor = IPredictorProducing; using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public sealed class OneVersusAllTrainer : MetaMulticlassTrainer, OneVersusAllModelParameters> + public sealed class OneVersusAllMulticlassClassificationTrainer : MetaMulticlassTrainer, OneVersusAllModelParameters> { internal const string LoadNameValue = "OVA"; internal const string UserNameValue = "One-vs-All"; @@ -50,7 +50,7 @@ public sealed class OneVersusAllTrainer : MetaMulticlassTrainer - /// Options passed to + /// Options passed to /// internal sealed class Options : OptionsBase { @@ -63,18 +63,18 @@ internal sealed class Options : OptionsBase } /// - /// Constructs a trainer supplying a . + /// Constructs a trainer supplying a . /// /// The private for this estimator. /// The legacy - internal OneVersusAllTrainer(IHostEnvironment env, Options options) + internal OneVersusAllMulticlassClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue) { _options = options; } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The instance. /// An instance of a binary used as the base trainer. @@ -83,7 +83,7 @@ internal OneVersusAllTrainer(IHostEnvironment env, Options options) /// If true will treat missing labels as negative labels. /// Number of instances to train the calibrator. /// Use probabilities (vs. raw outputs) to identify top-score category. - internal OneVersusAllTrainer(IHostEnvironment env, + internal OneVersusAllMulticlassClassificationTrainer(IHostEnvironment env, TScalarTrainer binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -204,7 +204,7 @@ public override MulticlassPredictionTransformer Fit } /// - /// Contains the model parameters and prediction functions for . + /// Contains the model parameters and prediction functions for . /// public sealed class OneVersusAllModelParameters : ModelParametersBase>, @@ -278,7 +278,7 @@ internal static OneVersusAllModelParameters Create(IHost host, OutputFormula out ivmd.OutputType != NumberDataViewType.Single || ivmd.DistType != NumberDataViewType.Single)) { - ch.Warning($"{nameof(OneVersusAllTrainer.Options.UseProbabilities)} specified with {nameof(OneVersusAllTrainer.Options.PredictorType)} that can't produce probabilities."); + ch.Warning($"{nameof(OneVersusAllMulticlassClassificationTrainer.Options.UseProbabilities)} specified with {nameof(OneVersusAllMulticlassClassificationTrainer.Options.PredictorType)} that can't produce probabilities."); ivmd = null; } diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs index 53cc39327c..be33d32640 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs @@ -14,9 +14,9 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(PairwiseCouplingTrainer.Summary, typeof(PairwiseCouplingTrainer), typeof(PairwiseCouplingTrainer.Options), +[assembly: LoadableClass(PairwiseCouplingMulticlassClassificationTrainer.Summary, typeof(PairwiseCouplingMulticlassClassificationTrainer), typeof(PairwiseCouplingMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - PairwiseCouplingTrainer.UserNameValue, PairwiseCouplingTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] + PairwiseCouplingMulticlassClassificationTrainer.UserNameValue, PairwiseCouplingMulticlassClassificationTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] [assembly: LoadableClass(typeof(PairwiseCouplingModelParameters), null, typeof(SignatureLoadModel), "PKPD Executor", @@ -52,7 +52,7 @@ namespace Microsoft.ML.Trainers /// L-BFGS history for all classes *simultaneously*, rather than just one-by-one /// as would be needed for a one-versus-all classification model. /// - public sealed class PairwiseCouplingTrainer : MetaMulticlassTrainer, PairwiseCouplingModelParameters> + public sealed class PairwiseCouplingMulticlassClassificationTrainer : MetaMulticlassTrainer, PairwiseCouplingModelParameters> { internal const string LoadNameValue = "PKPD"; internal const string UserNameValue = "Pairwise coupling (PKPD)"; @@ -61,23 +61,23 @@ public sealed class PairwiseCouplingTrainer : MetaMulticlassTrainer - /// Options passed to . + /// Options passed to . /// internal sealed class Options : OptionsBase { } /// - /// Constructs a trainer supplying the base trainer to use, for the classification task + /// Constructs a trainer supplying the base trainer to use, for the classification task /// through the Options. /// - internal PairwiseCouplingTrainer(IHostEnvironment env, Options options) + internal PairwiseCouplingMulticlassClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue) { } /// - /// Initializes a new instance of the + /// Initializes a new instance of the /// /// The instance. /// An instance of a binary used as the base trainer. @@ -85,7 +85,7 @@ internal PairwiseCouplingTrainer(IHostEnvironment env, Options options) /// Whether to treat missing labels as having negative labels, instead of keeping them missing. /// The calibrator to use for each model instance. If a calibrator is not explicitely provided, it will default to /// Number of instances to train the calibrator. - internal PairwiseCouplingTrainer(IHostEnvironment env, + internal PairwiseCouplingMulticlassClassificationTrainer(IHostEnvironment env, TScalarTrainer binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs index 91374d01c3..2633c298ae 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs @@ -14,12 +14,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(AveragedPerceptronTrainer.Summary, typeof(AveragedPerceptronTrainer), typeof(AveragedPerceptronTrainer.Options), +[assembly: LoadableClass(AveragedPerceptronBinaryClassificationTrainer.Summary, typeof(AveragedPerceptronBinaryClassificationTrainer), typeof(AveragedPerceptronBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - AveragedPerceptronTrainer.UserNameValue, - AveragedPerceptronTrainer.LoadNameValue, "avgper", AveragedPerceptronTrainer.ShortName)] + AveragedPerceptronBinaryClassificationTrainer.UserNameValue, + AveragedPerceptronBinaryClassificationTrainer.LoadNameValue, "avgper", AveragedPerceptronBinaryClassificationTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(AveragedPerceptronTrainer), null, typeof(SignatureEntryPointModule), "AP")] +[assembly: LoadableClass(typeof(void), typeof(AveragedPerceptronBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), "AP")] namespace Microsoft.ML.Trainers { @@ -44,7 +44,7 @@ namespace Microsoft.ML.Trainers /// For more information see Wikipedia entry for Perceptron /// or Large Margin Classification Using the Perceptron Algorithm /// - public sealed class AveragedPerceptronTrainer : AveragedLinearTrainer, LinearBinaryModelParameters> + public sealed class AveragedPerceptronBinaryClassificationTrainer : AveragedLinearTrainer, LinearBinaryModelParameters> { internal const string LoadNameValue = "AveragedPerceptron"; internal const string UserNameValue = "Averaged Perceptron"; @@ -54,7 +54,7 @@ public sealed class AveragedPerceptronTrainer : AveragedLinearTrainer - /// Options for the . + /// Options for the . /// public sealed class Options : AveragedLinearOptions { @@ -81,7 +81,7 @@ public sealed class Options : AveragedLinearOptions private sealed class TrainState : AveragedTrainStateBase { - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, AveragedPerceptronTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, AveragedPerceptronBinaryClassificationTrainer parent) : base(ch, numFeatures, predictor, parent) { } @@ -109,7 +109,7 @@ public override LinearBinaryModelParameters CreatePredictor() } } - internal AveragedPerceptronTrainer(IHostEnvironment env, Options options) + internal AveragedPerceptronBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { _args = options; @@ -128,7 +128,7 @@ internal AveragedPerceptronTrainer(IHostEnvironment env, Options options) /// Whether to decrease learning rate as iterations progress. /// L2 Regularization Weight. /// The number of training iterations. - internal AveragedPerceptronTrainer(IHostEnvironment env, + internal AveragedPerceptronBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, IClassificationLoss lossFunction = null, @@ -215,7 +215,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnviro EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new AveragedPerceptronTrainer(host, input), + () => new AveragedPerceptronBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), calibrator: input.Calibrator, maxCalibrationExamples: input.MaxCalibrationExamples); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs index 3e71e063dd..6f3a83831a 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs @@ -13,20 +13,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(OnlineGradientDescentTrainer.Summary, typeof(OnlineGradientDescentTrainer), typeof(OnlineGradientDescentTrainer.Options), +[assembly: LoadableClass(OnlineGradientDescentRegressionTrainer.Summary, typeof(OnlineGradientDescentRegressionTrainer), typeof(OnlineGradientDescentRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - OnlineGradientDescentTrainer.UserNameValue, - OnlineGradientDescentTrainer.LoadNameValue, - OnlineGradientDescentTrainer.ShortName, + OnlineGradientDescentRegressionTrainer.UserNameValue, + OnlineGradientDescentRegressionTrainer.LoadNameValue, + OnlineGradientDescentRegressionTrainer.ShortName, "sgdr", "stochasticgradientdescentregression")] -[assembly: LoadableClass(typeof(void), typeof(OnlineGradientDescentTrainer), null, typeof(SignatureEntryPointModule), "OGD")] +[assembly: LoadableClass(typeof(void), typeof(OnlineGradientDescentRegressionTrainer), null, typeof(SignatureEntryPointModule), "OGD")] namespace Microsoft.ML.Trainers { /// - public sealed class OnlineGradientDescentTrainer : AveragedLinearTrainer, LinearRegressionModelParameters> + public sealed class OnlineGradientDescentRegressionTrainer : AveragedLinearTrainer, LinearRegressionModelParameters> { internal const string LoadNameValue = "OnlineGradientDescent"; internal const string UserNameValue = "Stochastic Gradient Descent (Regression)"; @@ -61,7 +61,7 @@ internal class OgdDefaultArgs : AveragedDefault private sealed class TrainState : AveragedTrainStateBase { - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, OnlineGradientDescentTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, OnlineGradientDescentRegressionTrainer parent) : base(ch, numFeatures, predictor, parent) { } @@ -98,7 +98,7 @@ public override LinearRegressionModelParameters CreatePredictor() /// L2 Regularization Weight. /// Number of training iterations through the data. /// The custom loss functions. Defaults to if not provided. - internal OnlineGradientDescentTrainer(IHostEnvironment env, + internal OnlineGradientDescentRegressionTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, float learningRate = Options.OgdDefaultArgs.LearningRate, @@ -131,7 +131,7 @@ public TrivialFactory(IRegressionLoss loss) IRegressionLoss IComponentFactory.CreateComponent(IHostEnvironment env) => _loss; } - internal OnlineGradientDescentTrainer(IHostEnvironment env, Options options) + internal OnlineGradientDescentRegressionTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { LossFunction = options.LossFunction.CreateComponent(env); @@ -169,7 +169,7 @@ internal static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new OnlineGradientDescentTrainer(host, input), + () => new OnlineGradientDescentRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs index 63d455a58e..a4f464418a 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/PoissonRegression/PoissonRegression.cs @@ -13,20 +13,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(PoissonRegression.Summary, typeof(PoissonRegression), typeof(PoissonRegression.Options), +[assembly: LoadableClass(PoissonRegressionTrainer.Summary, typeof(PoissonRegressionTrainer), typeof(PoissonRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - PoissonRegression.UserNameValue, - PoissonRegression.LoadNameValue, + PoissonRegressionTrainer.UserNameValue, + PoissonRegressionTrainer.LoadNameValue, "PoissonRegressionNew", "Poisson", - PoissonRegression.ShortName)] + PoissonRegressionTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(PoissonRegression), null, typeof(SignatureEntryPointModule), PoissonRegression.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(PoissonRegressionTrainer), null, typeof(SignatureEntryPointModule), PoissonRegressionTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { /// - public sealed class PoissonRegression : LbfgsTrainerBase, PoissonRegressionModelParameters> + public sealed class PoissonRegressionTrainer : LbfgsTrainerBase, PoissonRegressionModelParameters> { internal const string LoadNameValue = "PoissonRegression"; internal const string UserNameValue = "Poisson Regression"; @@ -40,7 +40,7 @@ public sealed class Options : OptionsBase private Double _lossNormalizer; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The name of the label column. @@ -49,9 +49,9 @@ public sealed class Options : OptionsBase /// Weight of L1 regularizer term. /// Weight of L2 regularizer term. /// Threshold for optimizer convergence. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Enforce non-negative weights. - internal PoissonRegression(IHostEnvironment env, + internal PoissonRegressionTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -68,9 +68,9 @@ internal PoissonRegression(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal PoissonRegression(IHostEnvironment env, Options options) + internal PoissonRegressionTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { } @@ -95,7 +95,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of a using an already trained and returns + /// Continues the training of a using an already trained and returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, LinearModelParameters linearModel) @@ -184,7 +184,7 @@ internal static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new PoissonRegression(host, input), + () => new PoissonRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs index 3b077f09f2..acbd756be5 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs @@ -141,10 +141,10 @@ private protected virtual int ComputeNumThreads(FloatLabelCursor.Factory cursorF => Math.Min(8, Math.Max(1, Environment.ProcessorCount / 2)); } - public abstract class SdcaTrainerBase : StochasticTrainerBase + public abstract class StochasticDualCoordinateAscentTrainerBase : StochasticTrainerBase where TTransformer : ISingleFeaturePredictionTransformer where TModel : class - where TOptions : SdcaTrainerBase.OptionsBase, new() + where TOptions : StochasticDualCoordinateAscentTrainerBase.OptionsBase, new() { // REVIEW: Making it even faster and more accurate: // 1. Train with not-too-many threads. nt = 2 or 4 seems to be good enough. Didn't seem additional benefit over more threads. @@ -279,7 +279,7 @@ private protected enum MetricKind private protected override bool ShuffleData => SdcaTrainerOptions.Shuffle; - private const string RegisterName = nameof(SdcaTrainerBase); + private const string RegisterName = nameof(StochasticDualCoordinateAscentTrainerBase); private static TOptions ArgsInit(string featureColumnName, SchemaShape.Column labelColumn) { @@ -290,14 +290,14 @@ private static TOptions ArgsInit(string featureColumnName, SchemaShape.Column la return args; } - internal SdcaTrainerBase(IHostEnvironment env, string featureColumnName, SchemaShape.Column labelColumn, + internal StochasticDualCoordinateAscentTrainerBase(IHostEnvironment env, string featureColumnName, SchemaShape.Column labelColumn, SchemaShape.Column weight = default, float? l2Const = null, float? l1Threshold = null, int? maxIterations = null) : this(env, ArgsInit(featureColumnName, labelColumn), labelColumn, weight, l2Const, l1Threshold, maxIterations) { } - internal SdcaTrainerBase(IHostEnvironment env, TOptions options, SchemaShape.Column label, SchemaShape.Column weight = default, + internal StochasticDualCoordinateAscentTrainerBase(IHostEnvironment env, TOptions options, SchemaShape.Column label, SchemaShape.Column weight = default, float? l2Const = null, float? l1Threshold = null, int? maxIterations = null) : base(Contracts.CheckRef(env, nameof(env)).Register(RegisterName), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), label, weight) { @@ -1426,13 +1426,13 @@ public void Add(Double summand) /// /// SDCA is a general training algorithm for (generalized) linear models such as support vector machine, linear regression, logistic regression, /// and so on. SDCA binary classification trainer family includes several sealed members: - /// (1) supports general loss functions and returns . - /// (2) essentially trains a regularized logistic regression model. Because logistic regression + /// (1) supports general loss functions and returns . + /// (2) essentially trains a regularized logistic regression model. Because logistic regression /// naturally provide probability output, this generated model's type is . /// where is and is . /// public abstract class SdcaBinaryTrainerBase : - SdcaTrainerBase.BinaryOptionsBase, BinaryPredictionTransformer, TModelParameters> + StochasticDualCoordinateAscentTrainerBase.BinaryOptionsBase, BinaryPredictionTransformer, TModelParameters> where TModelParameters : class { private readonly ISupportSdcaClassificationLoss _loss; @@ -1561,17 +1561,17 @@ private protected override BinaryPredictionTransformer MakeTra /// linear function to a . /// /// - public sealed class SdcaBinaryTrainer : + public sealed class StochasticDualCoordinateAscentBinaryClassificationTrainer : SdcaBinaryTrainerBase> { /// - /// Options for the . + /// Options for the . /// public sealed class Options : BinaryOptionsBase { } - internal SdcaBinaryTrainer(IHostEnvironment env, + internal StochasticDualCoordinateAscentBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string weightColumnName = null, @@ -1582,7 +1582,7 @@ internal SdcaBinaryTrainer(IHostEnvironment env, { } - internal SdcaBinaryTrainer(IHostEnvironment env, Options options) + internal StochasticDualCoordinateAscentBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, new LogLoss()) { } @@ -1625,10 +1625,10 @@ private protected override SchemaShape.Column[] ComputeSdcaBinaryClassifierSchem /// The for training a binary logistic regression classification model using the stochastic dual coordinate ascent method. /// /// - public sealed class SdcaNonCalibratedBinaryTrainer : SdcaBinaryTrainerBase + public sealed class StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer : SdcaBinaryTrainerBase { /// - /// Options for the . + /// Options for the . /// public sealed class Options : BinaryOptionsBase { @@ -1642,7 +1642,7 @@ public sealed class Options : BinaryOptionsBase public ISupportSdcaClassificationLossFactory LossFunction = new LogLossFactory(); } - internal SdcaNonCalibratedBinaryTrainer(IHostEnvironment env, + internal StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string weightColumnName = null, @@ -1654,7 +1654,7 @@ internal SdcaNonCalibratedBinaryTrainer(IHostEnvironment env, { } - internal SdcaNonCalibratedBinaryTrainer(IHostEnvironment env, Options options) + internal StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, options.LossFunction.CreateComponent(env)) { } @@ -1680,7 +1680,7 @@ private protected override SchemaShape.Column[] ComputeSdcaBinaryClassifierSchem } /// - /// Comparing with , + /// Comparing with , /// directly outputs a built from /// the learned weights and bias without calibration. /// @@ -1947,7 +1947,7 @@ private protected override BinaryPredictionTransformer MakeTransformer(T => new BinaryPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of a using an already trained and returns a . + /// Continues the training of a using an already trained and returns a . /// public BinaryPredictionTransformer Fit(IDataView trainData, LinearModelParameters modelParameters) => TrainTransformer(trainData, initPredictor: modelParameters); @@ -2182,17 +2182,17 @@ private protected override void CheckLabel(RoleMappedData examples, out int weig /// that supports multi-threading without any locking. If the associated optimization problem is sparse, Hogwild SGD achieves a nearly optimal /// rate of convergence. For more details about Hogwild SGD, please refer to http://arxiv.org/pdf/1106.5730v2.pdf. /// - public sealed class SgdBinaryTrainer : + public sealed class StochasticGradientDescentBinaryClassificationTrainer : SgdBinaryTrainerBase> { /// - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { } - internal SgdBinaryTrainer(IHostEnvironment env, + internal StochasticGradientDescentBinaryClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -2208,7 +2208,7 @@ internal SgdBinaryTrainer(IHostEnvironment env, /// /// The environment to use. /// Advanced arguments to the algorithm. - internal SgdBinaryTrainer(IHostEnvironment env, Options options) + internal StochasticGradientDescentBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, loss: new LogLoss(), doCalibration: false) { } @@ -2242,10 +2242,10 @@ private protected override CalibratedModelParametersBase - /// can train a linear classification model by minimizing any loss function + /// can train a linear classification model by minimizing any loss function /// which implements . /// - public sealed class SgdNonCalibratedBinaryTrainer : + public sealed class StochasticGradientDescentNonCalibratedBinaryClassificationTrainer : SgdBinaryTrainerBase { public sealed class Options : OptionsBase @@ -2257,7 +2257,7 @@ public sealed class Options : OptionsBase public IClassificationLoss Loss = new LogLoss(); } - internal SgdNonCalibratedBinaryTrainer(IHostEnvironment env, + internal StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -2270,11 +2270,11 @@ internal SgdNonCalibratedBinaryTrainer(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// Advanced arguments to the algorithm. - internal SgdNonCalibratedBinaryTrainer(IHostEnvironment env, Options options) + internal StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, loss: options.Loss, doCalibration: false) { } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs index 1abb3029ab..31fae9cd59 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs @@ -17,11 +17,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(SdcaMultiClassTrainer.Summary, typeof(SdcaMultiClassTrainer), typeof(SdcaMultiClassTrainer.Options), +[assembly: LoadableClass(StochasticDualCoordinateAscentMulticlassClassificationTrainer.Summary, typeof(StochasticDualCoordinateAscentMulticlassClassificationTrainer), typeof(StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - SdcaMultiClassTrainer.UserNameValue, - SdcaMultiClassTrainer.LoadNameValue, - SdcaMultiClassTrainer.ShortName)] + StochasticDualCoordinateAscentMulticlassClassificationTrainer.UserNameValue, + StochasticDualCoordinateAscentMulticlassClassificationTrainer.LoadNameValue, + StochasticDualCoordinateAscentMulticlassClassificationTrainer.ShortName)] namespace Microsoft.ML.Trainers { @@ -29,7 +29,7 @@ namespace Microsoft.ML.Trainers /// The for training a multiclass logistic regression classification model using the stochastic dual coordinate ascent method. /// /// - public sealed class SdcaMultiClassTrainer : SdcaTrainerBase, MulticlassLogisticRegressionModelParameters> + public sealed class StochasticDualCoordinateAscentMulticlassClassificationTrainer : StochasticDualCoordinateAscentTrainerBase, MulticlassLogisticRegressionModelParameters> { internal const string LoadNameValue = "SDCAMC"; internal const string UserNameValue = "Fast Linear Multi-class Classification (SA-SDCA)"; @@ -37,7 +37,7 @@ public sealed class SdcaMultiClassTrainer : SdcaTrainerBase - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { @@ -56,7 +56,7 @@ public sealed class Options : OptionsBase private protected override PredictionKind PredictionKind => PredictionKind.MultiClassClassification; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The label, or dependent variable. @@ -66,7 +66,7 @@ public sealed class Options : OptionsBase /// The L2 regularization hyperparameter. /// The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. /// The maximum number of passes to perform over the data. - internal SdcaMultiClassTrainer(IHostEnvironment env, + internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -83,7 +83,7 @@ internal SdcaMultiClassTrainer(IHostEnvironment env, Loss = _loss; } - internal SdcaMultiClassTrainer(IHostEnvironment env, Options options, + internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) : base(env, options, TrainerUtils.MakeU4ScalarColumn(labelColumn), TrainerUtils.MakeR4ScalarWeightColumn(weightColumn)) { @@ -94,7 +94,7 @@ internal SdcaMultiClassTrainer(IHostEnvironment env, Options options, Loss = _loss; } - internal SdcaMultiClassTrainer(IHostEnvironment env, Options options) + internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.LabelColumnName) { } @@ -454,18 +454,18 @@ private protected override MulticlassPredictionTransformer(host, input, - () => new SdcaMultiClassTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new StochasticDualCoordinateAscentMulticlassClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs index 01bed21182..a78ac44719 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs @@ -14,11 +14,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(SdcaRegressionTrainer.Summary, typeof(SdcaRegressionTrainer), typeof(SdcaRegressionTrainer.Options), +[assembly: LoadableClass(StochasticDualCoordinateAscentRegressionTrainer.Summary, typeof(StochasticDualCoordinateAscentRegressionTrainer), typeof(StochasticDualCoordinateAscentRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - SdcaRegressionTrainer.UserNameValue, - SdcaRegressionTrainer.LoadNameValue, - SdcaRegressionTrainer.ShortName)] + StochasticDualCoordinateAscentRegressionTrainer.UserNameValue, + StochasticDualCoordinateAscentRegressionTrainer.LoadNameValue, + StochasticDualCoordinateAscentRegressionTrainer.ShortName)] namespace Microsoft.ML.Trainers { @@ -26,7 +26,7 @@ namespace Microsoft.ML.Trainers /// The for training a regression model using the stochastic dual coordinate ascent method. /// /// - public sealed class SdcaRegressionTrainer : SdcaTrainerBase, LinearRegressionModelParameters> + public sealed class StochasticDualCoordinateAscentRegressionTrainer : StochasticDualCoordinateAscentTrainerBase, LinearRegressionModelParameters> { internal const string LoadNameValue = "SDCAR"; internal const string UserNameValue = "Fast Linear Regression (SA-SDCA)"; @@ -34,7 +34,7 @@ public sealed class SdcaRegressionTrainer : SdcaTrainerBase - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { @@ -65,7 +65,7 @@ public Options() private protected override PredictionKind PredictionKind => PredictionKind.Regression; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The label, or dependent variable. @@ -75,7 +75,7 @@ public Options() /// The L2 regularization hyperparameter. /// The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. /// The maximum number of passes to perform over the data. - internal SdcaRegressionTrainer(IHostEnvironment env, + internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -92,7 +92,7 @@ internal SdcaRegressionTrainer(IHostEnvironment env, Loss = _loss; } - internal SdcaRegressionTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) + internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) : base(env, options, TrainerUtils.MakeR4ScalarColumn(labelColumn), TrainerUtils.MakeR4ScalarWeightColumn(weightColumn)) { Host.CheckValue(labelColumn, nameof(labelColumn)); @@ -102,7 +102,7 @@ internal SdcaRegressionTrainer(IHostEnvironment env, Options options, string fea Loss = _loss; } - internal SdcaRegressionTrainer(IHostEnvironment env, Options options) + internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.LabelColumnName) { } @@ -174,18 +174,18 @@ private protected override RegressionPredictionTransformer(host, input, - () => new SdcaRegressionTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new StochasticDualCoordinateAscentRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs b/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs index 6a3d021caa..1f6b7b2ee9 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs @@ -12,10 +12,10 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(PriorTrainer.Summary, typeof(PriorTrainer), typeof(PriorTrainer.Options), +[assembly: LoadableClass(PriorBinaryClassificationTrainer.Summary, typeof(PriorBinaryClassificationTrainer), typeof(PriorBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer) }, - PriorTrainer.UserNameValue, - PriorTrainer.LoadNameValue, + PriorBinaryClassificationTrainer.UserNameValue, + PriorBinaryClassificationTrainer.LoadNameValue, "prior", "constant")] @@ -167,7 +167,7 @@ private void MapDist(in VBuffer src, ref float score, ref float prob) /// /// Learns the prior distribution for 0/1 class labels and outputs that. /// - public sealed class PriorTrainer : ITrainer, + public sealed class PriorBinaryClassificationTrainer : ITrainer, ITrainerEstimator, PriorModelParameters> { internal const string LoadNameValue = "PriorPredictor"; @@ -193,7 +193,7 @@ internal sealed class Options /// public TrainerInfo Info => _info; - internal PriorTrainer(IHostEnvironment env, Options options) + internal PriorBinaryClassificationTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); @@ -203,7 +203,7 @@ internal PriorTrainer(IHostEnvironment env, Options options) /// /// Initializes PriorTrainer object. /// - internal PriorTrainer(IHostEnvironment env, String labelColumn, String weightColunn = null) + internal PriorBinaryClassificationTrainer(IHostEnvironment env, String labelColumn, String weightColunn = null) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); diff --git a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs index 2e64b87302..33330ce8f2 100644 --- a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs +++ b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML { - using LROptions = LogisticRegression.Options; + using LROptions = LogisticRegressionBinaryClassificationTrainer.Options; /// /// TrainerEstimator extension methods. @@ -17,7 +17,7 @@ namespace Microsoft.ML public static class StandardLearnersCatalog { /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -33,22 +33,22 @@ public static class StandardLearnersCatalog /// ]]> /// /// - public static SgdBinaryTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static StochasticGradientDescentBinaryClassificationTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, - int numberOfIterations = SgdBinaryTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = SgdBinaryTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = SgdBinaryTrainer.Options.Defaults.L2Regularization) + int numberOfIterations = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.L2Regularization) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SgdBinaryTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, + return new StochasticGradientDescentBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, initialLearningRate, l2Regularization); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -59,18 +59,18 @@ public static SgdBinaryTrainer StochasticGradientDescent(this BinaryClassificati /// ]]> /// /// - public static SgdBinaryTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SgdBinaryTrainer.Options options) + public static StochasticGradientDescentBinaryClassificationTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + StochasticGradientDescentBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SgdBinaryTrainer(env, options); + return new StochasticGradientDescentBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -87,23 +87,23 @@ public static SgdBinaryTrainer StochasticGradientDescent(this BinaryClassificati /// ]]> /// /// - public static SgdNonCalibratedBinaryTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, IClassificationLoss loss = null, - int numberOfIterations = SgdNonCalibratedBinaryTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = SgdNonCalibratedBinaryTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = SgdNonCalibratedBinaryTrainer.Options.Defaults.L2Regularization) + int numberOfIterations = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.L2Regularization) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SgdNonCalibratedBinaryTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, + return new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, initialLearningRate, l2Regularization, loss); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -114,18 +114,18 @@ public static SgdNonCalibratedBinaryTrainer StochasticGradientDescentNonCalibrat /// ]]> /// /// - public static SgdNonCalibratedBinaryTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SgdNonCalibratedBinaryTrainer.Options options) + public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SgdNonCalibratedBinaryTrainer(env, options); + return new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear regression model trained with . + /// Predict a target using a linear regression model trained with . /// /// The regression catalog trainer object. /// The name of the label column. @@ -141,7 +141,7 @@ public static SgdNonCalibratedBinaryTrainer StochasticGradientDescentNonCalibrat /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static SdcaRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, + public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -152,11 +152,11 @@ public static SdcaRegressionTrainer StochasticDualCoordinateAscent(this Regressi { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new StochasticDualCoordinateAscentRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear regression model trained with and advanced options. + /// Predict a target using a linear regression model trained with and advanced options. /// /// The regression catalog trainer object. /// Trainer options. @@ -166,18 +166,18 @@ public static SdcaRegressionTrainer StochasticDualCoordinateAscent(this Regressi /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static SdcaRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, - SdcaRegressionTrainer.Options options) + public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, + StochasticDualCoordinateAscentRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaRegressionTrainer(env, options); + return new StochasticDualCoordinateAscentRegressionTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -192,7 +192,7 @@ public static SdcaRegressionTrainer StochasticDualCoordinateAscent(this Regressi /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static SdcaBinaryTrainer StochasticDualCoordinateAscent( + public static StochasticDualCoordinateAscentBinaryClassificationTrainer StochasticDualCoordinateAscent( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -203,11 +203,11 @@ public static SdcaBinaryTrainer StochasticDualCoordinateAscent( { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaBinaryTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -217,19 +217,19 @@ public static SdcaBinaryTrainer StochasticDualCoordinateAscent( /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static SdcaBinaryTrainer StochasticDualCoordinateAscent( + public static StochasticDualCoordinateAscentBinaryClassificationTrainer StochasticDualCoordinateAscent( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SdcaBinaryTrainer.Options options) + StochasticDualCoordinateAscentBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaBinaryTrainer(env, options); + return new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -245,7 +245,7 @@ public static SdcaBinaryTrainer StochasticDualCoordinateAscent( /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs)] /// ]]> /// - public static SdcaNonCalibratedBinaryTrainer StochasticDualCoordinateAscentNonCalibrated( + public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer StochasticDualCoordinateAscentNonCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -257,27 +257,27 @@ public static SdcaNonCalibratedBinaryTrainer StochasticDualCoordinateAscentNonCa { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaNonCalibratedBinaryTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. - public static SdcaNonCalibratedBinaryTrainer StochasticDualCoordinateAscentNonCalibrated( + public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer StochasticDualCoordinateAscentNonCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SdcaNonCalibratedBinaryTrainer.Options options) + StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaNonCalibratedBinaryTrainer(env, options); + return new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear multiclass classification model trained with . + /// Predict a target using a linear multiclass classification model trained with . /// /// The multiclass classification catalog trainer object. /// The name of the label column. @@ -293,7 +293,7 @@ public static SdcaNonCalibratedBinaryTrainer StochasticDualCoordinateAscentNonCa /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static SdcaMultiClassTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static StochasticDualCoordinateAscentMulticlassClassificationTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -304,11 +304,11 @@ public static SdcaMultiClassTrainer StochasticDualCoordinateAscent(this Multicla { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaMultiClassTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear multiclass classification model trained with and advanced options. + /// Predict a target using a linear multiclass classification model trained with and advanced options. /// /// The multiclass classification catalog trainer object. /// Trainer options. @@ -318,18 +318,18 @@ public static SdcaMultiClassTrainer StochasticDualCoordinateAscent(this Multicla /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static SdcaMultiClassTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, - SdcaMultiClassTrainer.Options options) + public static StochasticDualCoordinateAscentMulticlassClassificationTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SdcaMultiClassTrainer(env, options); + return new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with . + /// Predict a target using a linear binary classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -349,7 +349,7 @@ public static SdcaMultiClassTrainer StochasticDualCoordinateAscent(this Multicla /// ]]> /// /// - public static AveragedPerceptronTrainer AveragedPerceptron( + public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -362,11 +362,11 @@ public static AveragedPerceptronTrainer AveragedPerceptron( Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new AveragedPerceptronTrainer(env, labelColumnName, featureColumnName, lossFunction ?? new LogLoss(), learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); + return new AveragedPerceptronBinaryClassificationTrainer(env, labelColumnName, featureColumnName, lossFunction ?? new LogLoss(), learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); } /// - /// Predict a target using a linear binary classification model trained with and advanced options. + /// Predict a target using a linear binary classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -377,14 +377,14 @@ public static AveragedPerceptronTrainer AveragedPerceptron( /// ]]> /// /// - public static AveragedPerceptronTrainer AveragedPerceptron( - this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, AveragedPerceptronTrainer.Options options) + public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( + this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, AveragedPerceptronBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new AveragedPerceptronTrainer(env, options); + return new AveragedPerceptronBinaryClassificationTrainer(env, options); } private sealed class TrivialClassificationLossFactory : ISupportClassificationLossFactory @@ -403,7 +403,7 @@ public IClassificationLoss CreateComponent(IHostEnvironment env) } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The name of the label column. @@ -413,38 +413,38 @@ public IClassificationLoss CreateComponent(IHostEnvironment env) /// Decrease learning rate as iterations progress. /// L2 regularization weight. /// Number of training iterations through the data. - public static OnlineGradientDescentTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, + public static OnlineGradientDescentRegressionTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, IRegressionLoss lossFunction = null, - float learningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.LearningRate, - bool decreaseLearningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, + float learningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.LearningRate, + bool decreaseLearningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, float l2RegularizerWeight = AveragedLinearOptions.AveragedDefault.L2RegularizerWeight, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new OnlineGradientDescentTrainer(env, labelColumnName, featureColumnName, learningRate, decreaseLearningRate, l2RegularizerWeight, + return new OnlineGradientDescentRegressionTrainer(env, labelColumnName, featureColumnName, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations, lossFunction); } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// Advanced arguments to the algorithm. - public static OnlineGradientDescentTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, - OnlineGradientDescentTrainer.Options options) + public static OnlineGradientDescentRegressionTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, + OnlineGradientDescentRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new OnlineGradientDescentTrainer(env, options); + return new OnlineGradientDescentRegressionTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -453,7 +453,7 @@ public static OnlineGradientDescentTrainer OnlineGradientDescent(this Regression /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// /// @@ -462,7 +462,7 @@ public static OnlineGradientDescentTrainer OnlineGradientDescent(this Regression /// ]]> /// /// - public static LogisticRegression LogisticRegression(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static LogisticRegressionBinaryClassificationTrainer LogisticRegression(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -474,25 +474,25 @@ public static LogisticRegression LogisticRegression(this BinaryClassificationCat { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); + return new LogisticRegressionBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// Advanced arguments to the algorithm. - public static LogisticRegression LogisticRegression(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, LROptions options) + public static LogisticRegressionBinaryClassificationTrainer LogisticRegression(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, LROptions options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new LogisticRegression(env, options); + return new LogisticRegressionBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The name of the label column. @@ -501,9 +501,9 @@ public static LogisticRegression LogisticRegression(this BinaryClassificationCat /// Weight of L1 regularization term. /// Weight of L2 regularization term. /// Threshold for optimizer convergence. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Enforce non-negative weights. - public static PoissonRegression PoissonRegression(this RegressionCatalog.RegressionTrainers catalog, + public static PoissonRegressionTrainer PoissonRegression(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -515,25 +515,25 @@ public static PoissonRegression PoissonRegression(this RegressionCatalog.Regress { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new PoissonRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); + return new PoissonRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// Advanced arguments to the algorithm. - public static PoissonRegression PoissonRegression(this RegressionCatalog.RegressionTrainers catalog, PoissonRegression.Options options) + public static PoissonRegressionTrainer PoissonRegression(this RegressionCatalog.RegressionTrainers catalog, PoissonRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new PoissonRegression(env, options); + return new PoissonRegressionTrainer(env, options); } /// - /// Predict a target using a linear multiclass classification model trained with the trainer. + /// Predict a target using a linear multiclass classification model trained with the trainer. /// /// The . /// The name of the label column. @@ -542,9 +542,9 @@ public static PoissonRegression PoissonRegression(this RegressionCatalog.Regress /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. - public static MulticlassLogisticRegression LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static LogisticRegressionMulticlassClassificationTrainer LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -556,37 +556,37 @@ public static MulticlassLogisticRegression LogisticRegression(this MulticlassCla { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new MulticlassLogisticRegression(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); + return new LogisticRegressionMulticlassClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); } /// - /// Predict a target using a linear multiclass classification model trained with the trainer. + /// Predict a target using a linear multiclass classification model trained with the trainer. /// /// The . /// Advanced arguments to the algorithm. - public static MulticlassLogisticRegression LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, - MulticlassLogisticRegression.Options options) + public static LogisticRegressionMulticlassClassificationTrainer LogisticRegression(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + LogisticRegressionMulticlassClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new MulticlassLogisticRegression(env, options); + return new LogisticRegressionMulticlassClassificationTrainer(env, options); } /// - /// Predicts a target using a linear multiclass classification model trained with the . - /// The trains a multiclass Naive Bayes predictor that supports binary feature values. + /// Predicts a target using a linear multiclass classification model trained with the . + /// The trains a multiclass Naive Bayes predictor that supports binary feature values. /// /// The . /// The name of the label column. /// The name of the feature column. - public static MultiClassNaiveBayesTrainer NaiveBayes(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static NaiveBayesMulticlassClassificationTrainer NaiveBayes(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features) { Contracts.CheckValue(catalog, nameof(catalog)); - return new MultiClassNaiveBayesTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName); + return new NaiveBayesMulticlassClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName); } /// @@ -610,11 +610,11 @@ private static ICalibratorTrainer GetCalibratorTrainerOrThrow(IExceptionContext } /// - /// Predicts a target using a linear multiclass classification model trained with the . + /// Predicts a target using a linear multiclass classification model trained with the . /// /// /// - /// In In this strategy, a binary classification algorithm is used to train one classifier for each class, + /// In In this strategy, a binary classification algorithm is used to train one classifier for each class, /// which distinguishes that class from all other classes. Prediction is then performed by running these binary classifiers, /// and choosing the prediction with the highest confidence score. /// @@ -627,7 +627,7 @@ private static ICalibratorTrainer GetCalibratorTrainerOrThrow(IExceptionContext /// Number of instances to train the calibrator. /// Use probabilities (vs. raw outputs) to identify top-score category. /// The type of the model. This type parameter will usually be inferred automatically from . - public static OneVersusAllTrainer OneVersusAll(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static OneVersusAllMulticlassClassificationTrainer OneVersusAll(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, ITrainerEstimator, TModel> binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -640,11 +640,11 @@ public static OneVersusAllTrainer OneVersusAll(this MulticlassClassifica var env = CatalogUtils.GetEnvironment(catalog); if (!(binaryEstimator is ITrainerEstimator>, IPredictorProducing> est)) throw env.ExceptParam(nameof(binaryEstimator), "Trainer estimator does not appear to produce the right kind of model."); - return new OneVersusAllTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maxCalibrationExamples, useProbabilities); + return new OneVersusAllMulticlassClassificationTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maxCalibrationExamples, useProbabilities); } /// - /// Predicts a target using a linear multiclass classification model trained with the . + /// Predicts a target using a linear multiclass classification model trained with the . /// /// /// @@ -660,7 +660,7 @@ public static OneVersusAllTrainer OneVersusAll(this MulticlassClassifica /// Whether to treat missing labels as having negative labels, instead of keeping them missing. /// Number of instances to train the calibrator. /// The type of the model. This type parameter will usually be inferred automatically from . - public static PairwiseCouplingTrainer PairwiseCoupling(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCoupling(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, ITrainerEstimator, TModel> binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -672,7 +672,7 @@ public static PairwiseCouplingTrainer PairwiseCoupling(this MulticlassCl var env = CatalogUtils.GetEnvironment(catalog); if (!(binaryEstimator is ITrainerEstimator>, IPredictorProducing> est)) throw env.ExceptParam(nameof(binaryEstimator), "Trainer estimator does not appear to produce the right kind of model."); - return new PairwiseCouplingTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, + return new PairwiseCouplingMulticlassClassificationTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maximumCalibrationExampleCount); } @@ -731,7 +731,7 @@ public static LinearSvmTrainer LinearSupportVectorMachines(this BinaryClassifica } /// - /// Predict a target using a binary classification model trained with trainer. + /// Predict a target using a binary classification model trained with trainer. /// /// /// This trainer uses the proportion of a label in the training set as the probability of that label. @@ -746,12 +746,12 @@ public static LinearSvmTrainer LinearSupportVectorMachines(this BinaryClassifica /// [!code-csharp[FastTree](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/PriorTrainerSample.cs)] /// ]]> /// - public static PriorTrainer Prior(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static PriorBinaryClassificationTrainer Prior(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string exampleWeightColumnName = null) { Contracts.CheckValue(catalog, nameof(catalog)); - return new PriorTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, exampleWeightColumnName); + return new PriorBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, exampleWeightColumnName); } } } diff --git a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs index 17b5ecd247..5a93df90ce 100644 --- a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs +++ b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML.StaticPipe { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { @@ -28,7 +28,7 @@ public static class KMeansClusteringExtensions /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights = null, - int clustersCount = KMeansPlusPlusTrainer.Defaults.NumberOfClusters, + int clustersCount = KMeansPlusPlusClusteringTrainer.Defaults.NumberOfClusters, Action onFit = null) { Contracts.CheckValue(features, nameof(features)); @@ -39,14 +39,14 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste var rec = new TrainerEstimatorReconciler.Clustering( (env, featuresName, weightsName) => { - var options = new KMeansPlusPlusTrainer.Options + var options = new KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = featuresName, NumberOfClusters = clustersCount, ExampleWeightColumnName = weightsName }; - var trainer = new KMeansPlusPlusTrainer(env, options); + var trainer = new KMeansPlusPlusClusteringTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -72,7 +72,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights, - KMeansPlusPlusTrainer.Options options, + KMeansPlusPlusClusteringTrainer.Options options, Action onFit = null) { Contracts.CheckValueOrNull(onFit); @@ -84,7 +84,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new KMeansPlusPlusTrainer(env, options); + var trainer = new KMeansPlusPlusClusteringTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs b/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs index 96be5260d2..9dee1abcd2 100644 --- a/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs +++ b/src/Microsoft.ML.StaticPipe/LbfgsStatic.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML.StaticPipe { - using Options = LogisticRegression.Options; + using Options = LogisticRegressionBinaryClassificationTrainer.Options; /// /// Binary Classification trainer estimators. @@ -17,7 +17,7 @@ namespace Microsoft.ML.StaticPipe public static class LbfgsBinaryClassificationStaticExtensions { /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The label, or dependent variable. @@ -26,7 +26,7 @@ public static class LbfgsBinaryClassificationStaticExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -50,7 +50,7 @@ public static (Scalar score, Scalar probability, Scalar pred var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new LogisticRegression(env, labelName, featuresName, weightsName, + var trainer = new LogisticRegressionBinaryClassificationTrainer(env, labelName, featuresName, weightsName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) @@ -63,7 +63,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The label, or dependent variable. @@ -95,7 +95,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new LogisticRegression(env, options); + var trainer = new LogisticRegressionBinaryClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -113,7 +113,7 @@ public static (Scalar score, Scalar probability, Scalar pred public static class LbfgsRegressionExtensions { /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -122,7 +122,7 @@ public static class LbfgsRegressionExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -146,7 +146,7 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new PoissonRegression(env, labelName, featuresName, weightsName, + var trainer = new PoissonRegressionTrainer(env, labelName, featuresName, weightsName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) @@ -159,7 +159,7 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -176,7 +176,7 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT Scalar label, Vector features, Scalar weights, - PoissonRegression.Options options, + PoissonRegressionTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -191,7 +191,7 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new PoissonRegression(env, options); + var trainer = new PoissonRegressionTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -209,7 +209,7 @@ public static Scalar PoissonRegression(this RegressionCatalog.RegressionT public static class LbfgsMulticlassExtensions { /// - /// Predict a target using a linear multiclass classification model trained with the trainer. + /// Predict a target using a linear multiclass classification model trained with the trainer. /// /// The multiclass classification catalog trainer object. /// The label, or dependent variable. @@ -218,7 +218,7 @@ public static class LbfgsMulticlassExtensions /// Enforce non-negative weights. /// Weight of L1 regularization term. /// Weight of L2 regularization term. - /// Memory size for . Low=faster, less accurate. + /// Memory size for . Low=faster, less accurate. /// Threshold for optimizer convergence. /// A delegate that is called every time the /// method is called on the @@ -243,7 +243,7 @@ public static (Vector score, Key predictedLabel) var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new MulticlassLogisticRegression(env, labelName, featuresName, weightsName, + var trainer = new LogisticRegressionMulticlassClassificationTrainer(env, labelName, featuresName, weightsName, l1Regularization, l2Regularization, optimizationTolerance, historySize, enforceNonNegativity); if (onFit != null) @@ -255,7 +255,7 @@ public static (Vector score, Key predictedLabel) } /// - /// Predict a target using a linear multiclass classification model trained with the trainer. + /// Predict a target using a linear multiclass classification model trained with the trainer. /// /// The multiclass classification catalog trainer object. /// The label, or dependent variable. @@ -273,7 +273,7 @@ public static (Vector score, Key predictedLabel) Key label, Vector features, Scalar weights, - MulticlassLogisticRegression.Options options, + LogisticRegressionMulticlassClassificationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -288,7 +288,7 @@ public static (Vector score, Key predictedLabel) options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new MulticlassLogisticRegression(env, options); + var trainer = new LogisticRegressionMulticlassClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs index 0408ca85d9..ef3815b630 100644 --- a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs +++ b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs @@ -30,7 +30,7 @@ public static class MatrixFactorizationExtensions /// The predicted output. public static Scalar MatrixFactorization(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Key matrixColumnIndex, Key matrixRowIndex, - MatrixFactorizationTrainer.Options options, + MatrixFactorizationRecommenderTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -45,7 +45,7 @@ public static Scalar MatrixFactorization(this RegressionCatalog.Regres options.MatrixRowIndexColumnName = matrixRowIndexColName; options.LabelColumnName = labelColName; - var trainer = new MatrixFactorizationTrainer(env, options); + var trainer = new MatrixFactorizationRecommenderTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs b/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs index fa602f4859..e7518cfce2 100644 --- a/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs +++ b/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs @@ -38,7 +38,7 @@ public static (Vector score, Key predictedLabel) var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new MultiClassNaiveBayesTrainer(env, labelName, featuresName); + var trainer = new NaiveBayesMulticlassClassificationTrainer(env, labelName, featuresName); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs b/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs index 72a65aebc5..bbcae7096d 100644 --- a/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs +++ b/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs @@ -32,7 +32,7 @@ public static class AveragedPerceptronStaticExtensions /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// /// /// score, Scalar predictedLabel) AveragedPercept (env, labelName, featuresName, weightsName) => { - var trainer = new AveragedPerceptronTrainer(env, labelName, featuresName, lossFunction, + var trainer = new AveragedPerceptronBinaryClassificationTrainer(env, labelName, featuresName, lossFunction, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); if (onFit != null) @@ -89,7 +89,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// /// /// score, Scalar predictedLabel) AveragedPercept Vector features, Scalar weights, IClassificationLoss lossFunction, - AveragedPerceptronTrainer.Options options, + AveragedPerceptronBinaryClassificationTrainer.Options options, Action onFit = null ) { @@ -120,7 +120,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new AveragedPerceptronTrainer(env, options); + var trainer = new AveragedPerceptronBinaryClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -139,7 +139,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept public static class OnlineGradientDescentExtensions { /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -157,16 +157,16 @@ public static class OnlineGradientDescentExtensions /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// The predicted output. public static Scalar OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights = null, IRegressionLoss lossFunction = null, - float learningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.LearningRate, - bool decreaseLearningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, - float l2RegularizerWeight = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.L2RegularizerWeight, + float learningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.LearningRate, + bool decreaseLearningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, + float l2RegularizerWeight = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.L2RegularizerWeight, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations, Action onFit = null) { @@ -176,7 +176,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new OnlineGradientDescentTrainer(env, labelName, featuresName, learningRate, + var trainer = new OnlineGradientDescentRegressionTrainer(env, labelName, featuresName, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations, lossFunction); if (onFit != null) @@ -189,7 +189,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -203,13 +203,13 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// The predicted output. public static Scalar OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights, - OnlineGradientDescentTrainer.Options options, + OnlineGradientDescentRegressionTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -224,7 +224,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new OnlineGradientDescentTrainer(env, options); + var trainer = new OnlineGradientDescentRegressionTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs b/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs index 2da753c331..bc71bbba4f 100644 --- a/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs +++ b/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs @@ -57,7 +57,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new SdcaRegressionTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new StochasticDualCoordinateAscentRegressionTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -88,7 +88,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal /// public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights, - SdcaRegressionTrainer.Options options, + StochasticDualCoordinateAscentRegressionTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -103,7 +103,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new SdcaRegressionTrainer(env, options); + var trainer = new StochasticDualCoordinateAscentRegressionTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -154,7 +154,7 @@ public static (Scalar score, Scalar probability, Scalar pred var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new SdcaBinaryTrainer(env, labelName, featuresName, weightsName, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, labelName, featuresName, weightsName, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -192,7 +192,7 @@ public static (Scalar score, Scalar probability, Scalar pred public static (Scalar score, Scalar probability, Scalar predictedLabel) Sdca( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Scalar label, Vector features, Scalar weights, - SdcaBinaryTrainer.Options options, + StochasticDualCoordinateAscentBinaryClassificationTrainer.Options options, Action> onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -207,7 +207,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new SdcaBinaryTrainer(env, options); + var trainer = new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, options); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -263,7 +263,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( (env, labelName, featuresName, weightsName) => { - var trainer = new SdcaNonCalibratedBinaryTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -299,7 +299,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Scalar label, Vector features, Scalar weights, ISupportSdcaClassificationLoss loss, - SdcaNonCalibratedBinaryTrainer.Options options, + StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -314,7 +314,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat options.FeatureColumnName = featuresName; options.LabelColumnName = labelName; - var trainer = new SdcaNonCalibratedBinaryTrainer(env, options); + var trainer = new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, options); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -368,7 +368,7 @@ public static (Vector score, Key predictedLabel) Sdca( var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new SdcaMultiClassTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -396,7 +396,7 @@ public static (Vector score, Key predictedLabel) Sdca( Key label, Vector features, Scalar weights, - SdcaMultiClassTrainer.Options options, + StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -411,7 +411,7 @@ public static (Vector score, Key predictedLabel) Sdca( options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new SdcaMultiClassTrainer(env, options); + var trainer = new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; diff --git a/src/Microsoft.ML.StaticPipe/SgdStatic.cs b/src/Microsoft.ML.StaticPipe/SgdStatic.cs index e2da102afe..92296d2ef3 100644 --- a/src/Microsoft.ML.StaticPipe/SgdStatic.cs +++ b/src/Microsoft.ML.StaticPipe/SgdStatic.cs @@ -14,7 +14,7 @@ namespace Microsoft.ML.StaticPipe public static class SgdStaticExtensions { /// - /// Predict a target using logistic regression trained with the trainer. + /// Predict a target using logistic regression trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -34,15 +34,15 @@ public static (Scalar score, Scalar probability, Scalar pred Scalar label, Vector features, Scalar weights = null, - int numberOfIterations = SgdBinaryTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = SgdBinaryTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = SgdBinaryTrainer.Options.Defaults.L2Regularization, + int numberOfIterations = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.L2Regularization, Action> onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new SgdBinaryTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization); + var trainer = new StochasticGradientDescentBinaryClassificationTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -54,7 +54,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using logistic regression trained with the trainer. + /// Predict a target using logistic regression trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -72,7 +72,7 @@ public static (Scalar score, Scalar probability, Scalar pred Scalar label, Vector features, Scalar weights, - SgdBinaryTrainer.Options options, + StochasticGradientDescentBinaryClassificationTrainer.Options options, Action> onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifier( @@ -82,7 +82,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.LabelColumnName = labelName; options.ExampleWeightColumnName = weightsName; - var trainer = new SgdBinaryTrainer(env, options); + var trainer = new StochasticGradientDescentBinaryClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -94,7 +94,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using a linear classification model trained with the trainer. + /// Predict a target using a linear classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -115,16 +115,16 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi Scalar label, Vector features, Scalar weights = null, - int numberOfIterations = SgdNonCalibratedBinaryTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = SgdNonCalibratedBinaryTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = SgdNonCalibratedBinaryTrainer.Options.Defaults.L2Regularization, + int numberOfIterations = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.L2Regularization, IClassificationLoss loss = null, Action onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( (env, labelName, featuresName, weightsName) => { - var trainer = new SgdNonCalibratedBinaryTrainer(env, labelName, featuresName, weightsName, + var trainer = new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization, loss); if (onFit != null) @@ -137,7 +137,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi } /// - /// Predict a target using a linear classification model trained with the trainer. + /// Predict a target using a linear classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -155,7 +155,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi Scalar label, Vector features, Scalar weights, - SgdNonCalibratedBinaryTrainer.Options options, + StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options options, Action onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( @@ -165,7 +165,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi options.LabelColumnName = labelName; options.ExampleWeightColumnName = weightsName; - var trainer = new SgdNonCalibratedBinaryTrainer(env, options); + var trainer = new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.Sweeper/Algorithms/SmacSweeper.cs b/src/Microsoft.ML.Sweeper/Algorithms/SmacSweeper.cs index 61cffff813..498eabfba3 100644 --- a/src/Microsoft.ML.Sweeper/Algorithms/SmacSweeper.cs +++ b/src/Microsoft.ML.Sweeper/Algorithms/SmacSweeper.cs @@ -134,8 +134,8 @@ private FastForestRegressionModelParameters FitModel(IEnumerable pre { // Set relevant random forest arguments. // Train random forest. - var trainer = new FastForestRegression(_host, - new FastForestRegression.Options + var trainer = new FastForestRegressionTrainer(_host, + new FastForestRegressionTrainer.Options { FeatureFraction = _args.SplitRatio, NumberOfTrees = _args.NumOfTrees, diff --git a/test/BaselineOutput/Common/Command/CommandTrainMlrWithStats-summary.txt b/test/BaselineOutput/Common/Command/CommandTrainMlrWithStats-summary.txt index f8e0fadf34..18e66a6f8a 100644 --- a/test/BaselineOutput/Common/Command/CommandTrainMlrWithStats-summary.txt +++ b/test/BaselineOutput/Common/Command/CommandTrainMlrWithStats-summary.txt @@ -1,4 +1,4 @@ -MulticlassLogisticRegression bias and non-zero weights +LogisticRegressionMulticlassClassificationTrainer bias and non-zero weights Iris-setosa+(Bias) 2.265129 Iris-versicolor+(Bias) 0.7695086 Iris-virginica+(Bias) -3.034663 diff --git a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv index 27113bc17d..f08fe6fb4f 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv +++ b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv @@ -39,35 +39,35 @@ TimeSeriesProcessingEntryPoints.PValueTransform This P-Value transform calculate TimeSeriesProcessingEntryPoints.SlidingWindowTransform Returns the last values for a time series [y(t-d-l+1), y(t-d-l+2), ..., y(t-l-1), y(t-l)] where d is the size of the window, l the lag and y is a Float. Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SlidingWindowTransform Microsoft.ML.Transforms.TimeSeries.SlidingWindowTransformBase`1+Arguments[System.Single] Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput TimeSeriesProcessingEntryPoints.SsaChangePointDetector This transform detects the change-points in a seasonal time-series using Singular Spectrum Analysis (SSA). Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SsaChangePointDetector Microsoft.ML.Transforms.TimeSeries.SsaChangePointDetector+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput TimeSeriesProcessingEntryPoints.SsaSpikeDetector This transform detects the spikes in a seasonal time-series using Singular Spectrum Analysis (SSA). Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SsaSpikeDetector Microsoft.ML.Transforms.TimeSeries.SsaSpikeDetector+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput -Trainers.AveragedPerceptronBinaryClassifier Averaged Perceptron Binary Classifier. Microsoft.ML.Trainers.AveragedPerceptronTrainer TrainBinary Microsoft.ML.Trainers.AveragedPerceptronTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.AveragedPerceptronBinaryClassifier Averaged Perceptron Binary Classifier. Microsoft.ML.Trainers.AveragedPerceptronBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.AveragedPerceptronBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.EnsembleBinaryClassifier Train binary ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateBinaryEnsemble Microsoft.ML.Trainers.Ensemble.EnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.EnsembleClassification Train multiclass ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateMultiClassEnsemble Microsoft.ML.Trainers.Ensemble.MulticlassDataPartitionEnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.EnsembleRegression Train regression ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateRegressionEnsemble Microsoft.ML.Trainers.Ensemble.RegressionEnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.FastForestBinaryClassifier Uses a random forest learner to perform binary classification. Microsoft.ML.Trainers.FastTree.FastForest TrainBinary Microsoft.ML.Trainers.FastTree.FastForestClassification+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.FastForestRegressor Trains a random forest to fit target values using least-squares. Microsoft.ML.Trainers.FastTree.FastForest TrainRegression Microsoft.ML.Trainers.FastTree.FastForestRegression+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.FastForestRegressor Trains a random forest to fit target values using least-squares. Microsoft.ML.Trainers.FastTree.FastForest TrainRegression Microsoft.ML.Trainers.FastTree.FastForestRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.FastTreeBinaryClassifier Uses a logit-boost boosted tree learner to perform binary classification. Microsoft.ML.Trainers.FastTree.FastTree TrainBinary Microsoft.ML.Trainers.FastTree.FastTreeBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.FastTreeRanker Trains gradient boosted decision trees to the LambdaRank quasi-gradient. Microsoft.ML.Trainers.FastTree.FastTree TrainRanking Microsoft.ML.Trainers.FastTree.FastTreeRankingTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput Trainers.FastTreeRegressor Trains gradient boosted decision trees to fit target values using least-squares. Microsoft.ML.Trainers.FastTree.FastTree TrainRegression Microsoft.ML.Trainers.FastTree.FastTreeRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.FastTreeTweedieRegressor Trains gradient boosted decision trees to fit target values using a Tweedie loss function. This learner is a generalization of Poisson, compound Poisson, and gamma regression. Microsoft.ML.Trainers.FastTree.FastTree TrainTweedieRegression Microsoft.ML.Trainers.FastTree.FastTreeTweedieTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.FastTreeTweedieRegressor Trains gradient boosted decision trees to fit target values using a Tweedie loss function. This learner is a generalization of Poisson, compound Poisson, and gamma regression. Microsoft.ML.Trainers.FastTree.FastTree TrainTweedieRegression Microsoft.ML.Trainers.FastTree.FastTreeTweedieRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.FieldAwareFactorizationMachineBinaryClassifier Train a field-aware factorization machine for binary classification Microsoft.ML.Trainers.FieldAwareFactorizationMachineBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.FieldAwareFactorizationMachineBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.GeneralizedAdditiveModelBinaryClassifier 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.Trainers.FastTree.Gam TrainBinary Microsoft.ML.Trainers.FastTree.BinaryClassificationGamTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -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.Trainers.FastTree.Gam TrainRegression Microsoft.ML.Trainers.FastTree.RegressionGamTrainer+Options Microsoft.ML.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.Trainers.KMeansPlusPlusTrainer TrainKMeans Microsoft.ML.Trainers.KMeansPlusPlusTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput +Trainers.GeneralizedAdditiveModelBinaryClassifier 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.Trainers.FastTree.Gam TrainBinary Microsoft.ML.Trainers.FastTree.GeneralizedAdditiveModelBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +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.Trainers.FastTree.Gam TrainRegression Microsoft.ML.Trainers.FastTree.GeneralizedAdditiveModelRegressionTrainer+Options Microsoft.ML.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.Trainers.KMeansPlusPlusClusteringTrainer TrainKMeans Microsoft.ML.Trainers.KMeansPlusPlusClusteringTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput Trainers.LightGbmBinaryClassifier Train a LightGBM binary classification model. Microsoft.ML.LightGBM.LightGbm TrainBinary Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LightGbmClassifier Train a LightGBM multi class model. Microsoft.ML.LightGBM.LightGbm TrainMultiClass Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.LightGbmRanker Train a LightGBM ranking model. Microsoft.ML.LightGBM.LightGbm TrainRanking Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput Trainers.LightGbmRegressor LightGBM Regression Microsoft.ML.LightGBM.LightGbm TrainRegression Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Trainers.LinearSvmTrainer TrainLinearSvm Microsoft.ML.Trainers.LinearSvmTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.LogisticRegressionBinaryClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegression TrainBinary Microsoft.ML.Trainers.LogisticRegression+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.LogisticRegressionClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegression TrainMultiClass Microsoft.ML.Trainers.MulticlassLogisticRegression+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Trainers.MultiClassNaiveBayesTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Trainers.MultiClassNaiveBayesTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Trainers.OnlineGradientDescentTrainer TrainRegression Microsoft.ML.Trainers.OnlineGradientDescentTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.LogisticRegressionBinaryClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.LogisticRegressionClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainMultiClass Microsoft.ML.Trainers.LogisticRegressionMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer TrainRegression Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.OrdinaryLeastSquaresRegressor Train an OLS regression model. Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer TrainRegression Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.PcaAnomalyDetector Train an PCA Anomaly model. Microsoft.ML.Trainers.RandomizedPrincipalComponentAnalyzer TrainPcaAnomaly Microsoft.ML.Trainers.RandomizedPrincipalComponentAnalyzer+Options Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput -Trainers.PoissonRegressor Train an Poisson regression model. Microsoft.ML.Trainers.PoissonRegression TrainRegression Microsoft.ML.Trainers.PoissonRegression+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.PoissonRegressor Train an Poisson regression model. Microsoft.ML.Trainers.PoissonRegressionTrainer TrainRegression Microsoft.ML.Trainers.PoissonRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticDualCoordinateAscentBinaryClassifier Train an SDCA binary model. Microsoft.ML.Trainers.Sdca TrainBinary Microsoft.ML.Trainers.LegacySdcaBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.StochasticDualCoordinateAscentClassifier The SDCA linear multi-class classification trainer. Microsoft.ML.Trainers.Sdca TrainMultiClass Microsoft.ML.Trainers.SdcaMultiClassTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.StochasticDualCoordinateAscentRegressor The SDCA linear regression trainer. Microsoft.ML.Trainers.Sdca TrainRegression Microsoft.ML.Trainers.SdcaRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.StochasticDualCoordinateAscentClassifier The SDCA linear multi-class classification trainer. Microsoft.ML.Trainers.Sdca TrainMultiClass Microsoft.ML.Trainers.StochasticDualCoordinateAscentMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.StochasticDualCoordinateAscentRegressor The SDCA linear regression trainer. Microsoft.ML.Trainers.Sdca TrainRegression Microsoft.ML.Trainers.StochasticDualCoordinateAscentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticGradientDescentBinaryClassifier Train an Hogwild SGD binary model. Microsoft.ML.Trainers.LegacySgdBinaryTrainer TrainBinary Microsoft.ML.Trainers.LegacySgdBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.SymSgdBinaryClassifier Train a symbolic SGD. Microsoft.ML.Trainers.SymbolicStochasticGradientDescentClassificationTrainer TrainSymSgd Microsoft.ML.Trainers.SymbolicStochasticGradientDescentClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Transforms.ApproximateBootstrapSampler Approximate bootstrap sampling. Microsoft.ML.Transforms.BootstrapSample GetSample Microsoft.ML.Transforms.BootstrapSamplingTransformer+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput diff --git a/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs b/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs index a1b11352d5..2fc12537d4 100644 --- a/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs +++ b/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs @@ -37,10 +37,10 @@ public CalibratedModelParametersBase(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -69,7 +69,7 @@ public void CV_Multiclass_WikiDetox_WordEmbeddings_OVAAveragedPerceptron() " xf=WordEmbeddingsTransform{col=FeaturesWordEmbedding:FeaturesText_TransformedText model=FastTextWikipedia300D}" + " xf=Concat{col=Features:FeaturesText,FeaturesWordEmbedding,logged_in,ns}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -85,7 +85,7 @@ public void CV_Multiclass_WikiDetox_WordEmbeddings_SDCAMC() " xf=WordEmbeddingsTransform{col=FeaturesWordEmbedding:FeaturesText_TransformedText model=FastTextWikipedia300D}" + " xf=Concat{col=Features:FeaturesWordEmbedding,logged_in,ns}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } } @@ -113,7 +113,7 @@ public void SetupScoringSpeedTests() " tr=OVA{p=AveragedPerceptron{iter=10}}" + " out={" + _modelPath_Wiki + "}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -124,7 +124,7 @@ public void Test_Multiclass_WikiDetox_BigramsAndTrichar_OVAAveragedPerceptron() string modelpath = Path.Combine(Path.GetDirectoryName(typeof(MultiClassClassificationTest).Assembly.Location), @"WikiModel.fold000.zip"); string cmd = @"Test data=" + _dataPath_Wiki + " in=" + modelpath; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } } diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs index 4077d932bb..a27475e62b 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs @@ -134,7 +134,7 @@ public void EntryPointScoring() var dataView = GetBreastCancerDataviewWithTextColumns(); dataView = Env.CreateTransform("Term{col=F1}", dataView); var trainData = FeatureCombiner.PrepareFeatures(Env, new FeatureCombiner.FeatureCombinerInput() { Data = dataView, Features = new[] { "F1", "F2", "Rest" } }); - var lrModel = LogisticRegression.TrainBinary(Env, new LogisticRegression.Options { TrainingData = trainData.OutputData }).PredictorModel; + var lrModel = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = trainData.OutputData }).PredictorModel; var model = ModelOperations.CombineTwoModels(Env, new ModelOperations.SimplePredictorModelInput() { TransformModel = trainData.Model, PredictorModel = lrModel }).PredictorModel; var scored1 = ScoreModel.Score(Env, new ScoreModel.Input() { Data = dataView, PredictorModel = model }).ScoredData; @@ -364,12 +364,12 @@ public void EntryPointInputBuilderOptionals() { var catalog = Env.ComponentCatalog; - InputBuilder ib1 = new InputBuilder(Env, typeof(LogisticRegression.Options), catalog); + InputBuilder ib1 = new InputBuilder(Env, typeof(LogisticRegressionBinaryClassificationTrainer.Options), catalog); // Ensure that InputBuilder unwraps the Optional correctly. var weightType = ib1.GetFieldTypeOrNull("ExampleWeightColumnName"); Assert.True(weightType.Equals(typeof(string))); - var instance = ib1.GetInstance() as LogisticRegression.Options; + var instance = ib1.GetInstance() as LogisticRegressionBinaryClassificationTrainer.Options; Assert.True(instance.ExampleWeightColumnName == null); ib1.TrySetValue("ExampleWeightColumnName", "OtherWeight"); @@ -422,14 +422,14 @@ public void EntryPointCreateEnsemble() for (int i = 0; i < nModels; i++) { var data = splitOutput.TrainData[i]; - var lrInput = new LogisticRegression.Options + var lrInput = new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = data, L1Regularization = (Single)0.1 * i, L2Regularization = (Single)0.01 * (1 + i), NormalizeFeatures = NormalizeOption.No }; - predictorModels[i] = LogisticRegression.TrainBinary(Env, lrInput).PredictorModel; + predictorModels[i] = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, lrInput).PredictorModel; individualScores[i] = ScoreModel.Score(Env, new ScoreModel.Input { Data = splitOutput.TestData[nModels], PredictorModel = predictorModels[i] }) @@ -678,7 +678,7 @@ public void EntryPointCalibrate() var splitOutput = CVSplit.Split(Env, new CVSplit.Input { Data = dataView, NumFolds = 3 }); - var lrModel = LogisticRegression.TrainBinary(Env, new LogisticRegression.Options { TrainingData = splitOutput.TestData[0] }).PredictorModel; + var lrModel = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = splitOutput.TestData[0] }).PredictorModel; var calibratedLrModel = Calibrate.FixedPlatt(Env, new Calibrate.FixedPlattInput { Data = splitOutput.TestData[1], UncalibratedPredictorModel = lrModel }).PredictorModel; @@ -726,14 +726,14 @@ public void EntryPointPipelineEnsemble() data = new ColumnConcatenatingTransformer(Env, "Features", new[] { "Features1", "Features2" }).Transform(data); data = new ValueToKeyMappingEstimator(Env, "Label", "Label", sort: ValueToKeyMappingEstimator.SortOrder.Value).Fit(data).Transform(data); - var lrInput = new LogisticRegression.Options + var lrInput = new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = data, L1Regularization = (Single)0.1 * i, L2Regularization = (Single)0.01 * (1 + i), NormalizeFeatures = NormalizeOption.Yes }; - predictorModels[i] = LogisticRegression.TrainBinary(Env, lrInput).PredictorModel; + predictorModels[i] = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, lrInput).PredictorModel; var transformModel = new TransformModelImpl(Env, data, splitOutput.TrainData[i]); predictorModels[i] = ModelOperations.CombineTwoModels(Env, @@ -987,14 +987,14 @@ public void EntryPointPipelineEnsembleText() }, data); } - var lrInput = new LogisticRegression.Options + var lrInput = new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = data, L1Regularization = (Single)0.1 * i, L2Regularization = (Single)0.01 * (1 + i), NormalizeFeatures = NormalizeOption.Yes }; - predictorModels[i] = LogisticRegression.TrainBinary(Env, lrInput).PredictorModel; + predictorModels[i] = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, lrInput).PredictorModel; var transformModel = new TransformModelImpl(Env, data, splitOutput.TrainData[i]); predictorModels[i] = ModelOperations.CombineTwoModels(Env, @@ -1320,7 +1320,7 @@ public void EntryPointPipelineEnsembleGetSummary() data = new ColumnConcatenatingTransformer(Env, new ColumnConcatenatingTransformer.ColumnOptions("Features", i % 2 == 0 ? new[] { "Features", "Cat" } : new[] { "Cat", "Features" })).Transform(data); if (i % 2 == 0) { - var lrInput = new LogisticRegression.Options + var lrInput = new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = data, NormalizeFeatures = NormalizeOption.Yes, @@ -1328,7 +1328,7 @@ public void EntryPointPipelineEnsembleGetSummary() ShowTrainingStatistics = true, ComputeStandardDeviation = new ComputeLRTrainingStdThroughMkl() }; - predictorModels[i] = LogisticRegression.TrainBinary(Env, lrInput).PredictorModel; + predictorModels[i] = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, lrInput).PredictorModel; var transformModel = new TransformModelImpl(Env, data, splitOutput.TrainData[i]); predictorModels[i] = ModelOperations.CombineTwoModels(Env, @@ -3317,7 +3317,7 @@ public void EntryPointLinearPredictorSummary() InputFile = inputFile, }).Data; - var lrInput = new LogisticRegression.Options + var lrInput = new LogisticRegressionBinaryClassificationTrainer.Options { TrainingData = dataView, NormalizeFeatures = NormalizeOption.Yes, @@ -3325,16 +3325,16 @@ public void EntryPointLinearPredictorSummary() ShowTrainingStatistics = true, ComputeStandardDeviation = new ComputeLRTrainingStdThroughMkl() }; - var model = LogisticRegression.TrainBinary(Env, lrInput).PredictorModel; + var model = LogisticRegressionBinaryClassificationTrainer.TrainBinary(Env, lrInput).PredictorModel; - var mcLrInput = new MulticlassLogisticRegression.Options + var mcLrInput = new LogisticRegressionMulticlassClassificationTrainer.Options { TrainingData = dataView, NormalizeFeatures = NormalizeOption.Yes, NumberOfThreads = 1, ShowTrainingStatistics = true }; - var mcModel = LogisticRegression.TrainMultiClass(Env, mcLrInput).PredictorModel; + var mcModel = LogisticRegressionBinaryClassificationTrainer.TrainMultiClass(Env, mcLrInput).PredictorModel; var output = SummarizePredictor.Summarize(Env, new SummarizePredictor.Input() { PredictorModel = model }); diff --git a/test/Microsoft.ML.Functional.Tests/DataTransformation.cs b/test/Microsoft.ML.Functional.Tests/DataTransformation.cs index f24d62d5e9..68eb944c6a 100644 --- a/test/Microsoft.ML.Functional.Tests/DataTransformation.cs +++ b/test/Microsoft.ML.Functional.Tests/DataTransformation.cs @@ -145,7 +145,7 @@ void ExtensibilityModifyTextFeaturization() }, "SentimentText") .AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Functional.Tests/Evaluation.cs b/test/Microsoft.ML.Functional.Tests/Evaluation.cs index b10dec8c05..da25a519e1 100644 --- a/test/Microsoft.ML.Functional.Tests/Evaluation.cs +++ b/test/Microsoft.ML.Functional.Tests/Evaluation.cs @@ -65,7 +65,7 @@ public void TrainAndEvaluateBinaryClassification() var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -94,7 +94,7 @@ public void TrainAndEvaluateBinaryClassificationWithCalibration() var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers.LogisticRegression( - new LogisticRegression.Options { NumberOfThreads = 1 })); + new LogisticRegressionBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -122,7 +122,7 @@ public void TrainAndEvaluateClustering() // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Clustering.Trainers.KMeans(new KMeansPlusPlusTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.Clustering.Trainers.KMeans(new KMeansPlusPlusClusteringTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -151,7 +151,7 @@ public void TrainAndEvaluateMulticlassClassification() var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .AppendCacheCheckpoint(mlContext) .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { NumberOfThreads = 1})); + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1})); // Train the model. var model = pipeline.Fit(data); @@ -209,7 +209,7 @@ public void TrainAndEvaluateRecommendation() // Create a pipeline to train on the sentiment data. var pipeline = mlContext.Recommendation().Trainers.MatrixFactorization( - new MatrixFactorizationTrainer.Options{ + new MatrixFactorizationRecommenderTrainer.Options{ MatrixColumnIndexColumnName = "MatrixColumnIndex", MatrixRowIndexColumnName = "MatrixRowIndex", LabelColumnName = "Label", @@ -241,7 +241,7 @@ public void TrainAndEvaluateRegression() var data = mlContext.Data.LoadFromTextFile(GetDataPath(TestDatasets.housing.trainFilename), hasHeader: true); // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.FastForest(new FastForestRegression.Options { NumberOfThreads = 1 })); + .Append(mlContext.Regression.Trainers.FastForest(new FastForestRegressionTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -273,7 +273,7 @@ public void TrainAndEvaluateWithPrecisionRecallCurves() var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers.LogisticRegression( - new LogisticRegression.Options { NumberOfThreads = 1 })); + new LogisticRegressionBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Functional.Tests/Explainability.cs b/test/Microsoft.ML.Functional.Tests/Explainability.cs index b268bf468d..09a9635010 100644 --- a/test/Microsoft.ML.Functional.Tests/Explainability.cs +++ b/test/Microsoft.ML.Functional.Tests/Explainability.cs @@ -256,7 +256,7 @@ public void LocalFeatureImportanceForGamModel() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModels(numberOfIterations: 2)); + .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel(numberOfIterations: 2)); // Fit the pipeline and transform the data. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs index 08f5431a55..b11e73cd3d 100644 --- a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs +++ b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs @@ -38,7 +38,7 @@ public void InspectFastForestRegresionTrees() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) .Append(mlContext.Regression.Trainers.FastForest( - new FastForestRegression.Options { NumberOfLeaves = 5, NumberOfTrees = 3, NumberOfThreads = 1 })); + new FastForestRegressionTrainer.Options { NumberOfLeaves = 5, NumberOfTrees = 3, NumberOfThreads = 1 })); // Fit the pipeline. var model = pipeline.Fit(data); @@ -142,8 +142,8 @@ void IntrospectGamShapeFunctions() // Compose the transformation. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModels( - new RegressionGamTrainer.Options { NumberOfIterations = 100, NumberOfThreads = 1 })); + .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel( + new GeneralizedAdditiveModelRegressionTrainer.Options { NumberOfIterations = 100, NumberOfThreads = 1 })); // Fit the pipeline. var model = pipeline.Fit(data); @@ -217,7 +217,7 @@ public void InpsectLinearModelParameters() var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Fit the pipeline. var model = pipeline.Fit(data); @@ -421,9 +421,9 @@ private IEstimator (r.label, score: catalog.Trainers.Sdca(r.label, r.features, null, - new SdcaRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new StochasticDualCoordinateAscentRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: p => pred = p))); var pipe = reader.Append(est); @@ -87,7 +87,7 @@ public void SdcaRegressionNameCollision() var est = reader.MakeNewEstimator() .Append(r => (r.label, r.Score, score: catalog.Trainers.Sdca(r.label, r.features, null, - new SdcaRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }))); + new StochasticDualCoordinateAscentRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }))); var pipe = reader.Append(est); @@ -118,7 +118,7 @@ public void SdcaBinaryClassification() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.Sdca(r.label, r.features, null, - new SdcaBinaryTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -198,7 +198,7 @@ public void SdcaBinaryClassificationNoCalibration() // With a custom loss function we no longer get calibrated predictions. var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.SdcaNonCalibrated(r.label, r.features, null, loss, - new SdcaNonCalibratedBinaryTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: p => pred = p))); var pipe = reader.Append(est); @@ -618,7 +618,7 @@ public void PoissonRegression() var est = reader.MakeNewEstimator() .Append(r => (r.label, score: catalog.Trainers.PoissonRegression(r.label, r.features, null, - new PoissonRegression.Options { L2Regularization = 2, EnforceNonNegativity = true, NumberOfThreads = 1 }, + new PoissonRegressionTrainer.Options { L2Regularization = 2, EnforceNonNegativity = true, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -655,7 +655,7 @@ public void LogisticRegressionBinaryClassification() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.LogisticRegressionBinaryClassifier(r.label, r.features, null, - new LogisticRegression.Options { L1Regularization = 10, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); + new LogisticRegressionBinaryClassificationTrainer.Options { L1Regularization = 10, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -695,7 +695,7 @@ public void MulticlassLogisticRegression() r.label, r.features, null, - new MulticlassLogisticRegression.Options { NumberOfThreads = 1 }, + new LogisticRegressionMulticlassClassificationTrainer.Options { NumberOfThreads = 1 }, onFit: p => pred = p))); var pipe = reader.Append(est); @@ -784,7 +784,7 @@ public void KMeans() ( r.features, null, - options: new KMeansPlusPlusTrainer.Options + options: new KMeansPlusPlusClusteringTrainer.Options { NumberOfClusters = 3, NumberOfThreads = 1 @@ -1009,7 +1009,7 @@ public void HogwildSGDLogisticRegression() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.StochasticGradientDescentClassificationTrainer(r.label, r.features, null, - new SgdBinaryTrainer.Options { L2Regularization = 0, NumberOfThreads = 1 }, + new StochasticGradientDescentBinaryClassificationTrainer.Options { L2Regularization = 0, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -1082,7 +1082,7 @@ public void HogwildSGDSupportVectorMachine() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.StochasticGradientDescentNonCalibratedClassificationTrainer(r.label, r.features, null, - new SgdNonCalibratedBinaryTrainer.Options { L2Regularization = 0, NumberOfThreads = 1, Loss = new HingeLoss()}, + new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options { L2Regularization = 0, NumberOfThreads = 1, Loss = new HingeLoss()}, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -1162,7 +1162,7 @@ public void MatrixFactorization() var matrixFactorizationEstimator = reader.MakeNewEstimator() .Append(r => (r.label, score: mlContext.Regression.Trainers.MatrixFactorization( r.label, r.matrixRowIndex, r.matrixColumnIndex, - new MatrixFactorizationTrainer.Options { NumberOfThreads = 1 }, + new MatrixFactorizationRecommenderTrainer.Options { NumberOfThreads = 1 }, onFit: p => pred = p))); // Create a pipeline from the reader (the 1st step) and the matrix factorization estimator (the 2nd step). diff --git a/test/Microsoft.ML.Tests/FeatureContributionTests.cs b/test/Microsoft.ML.Tests/FeatureContributionTests.cs index fc6469f809..6dacda3b6f 100644 --- a/test/Microsoft.ML.Tests/FeatureContributionTests.cs +++ b/test/Microsoft.ML.Tests/FeatureContributionTests.cs @@ -75,7 +75,7 @@ public void TestFastTreeTweedieRegression() public void TestSDCARegression() { TestFeatureContribution(ML.Regression.Trainers.StochasticDualCoordinateAscent( - new SdcaRegressionTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(numberOfInstances: 100), "SDCARegression"); + new StochasticDualCoordinateAscentRegressionTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(numberOfInstances: 100), "SDCARegression"); } [Fact] @@ -88,13 +88,13 @@ public void TestOnlineGradientDescentRegression() public void TestPoissonRegression() { TestFeatureContribution(ML.Regression.Trainers.PoissonRegression( - new PoissonRegression.Options { NumberOfThreads = 1 }), GetSparseDataset(numberOfInstances: 100), "PoissonRegression"); + new PoissonRegressionTrainer.Options { NumberOfThreads = 1 }), GetSparseDataset(numberOfInstances: 100), "PoissonRegression"); } [Fact] public void TestGAMRegression() { - TestFeatureContribution(ML.Regression.Trainers.GeneralizedAdditiveModels(), GetSparseDataset(numberOfInstances: 100), "GAMRegression"); + TestFeatureContribution(ML.Regression.Trainers.GeneralizedAdditiveModel(), GetSparseDataset(numberOfInstances: 100), "GAMRegression"); } // Tests for ranking trainers that implement IFeatureContributionMapper interface. @@ -151,14 +151,14 @@ public void TestLightGbmBinary() public void TestSDCABinary() { TestFeatureContribution(ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(TaskType.BinaryClassification, 100), "SDCABinary", precision: 5); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(TaskType.BinaryClassification, 100), "SDCABinary", precision: 5); } [Fact] public void TestSGDBinary() { TestFeatureContribution(ML.BinaryClassification.Trainers.StochasticGradientDescent( - new SgdBinaryTrainer.Options { NumberOfThreads = 1}), + new StochasticGradientDescentBinaryClassificationTrainer.Options { NumberOfThreads = 1}), GetSparseDataset(TaskType.BinaryClassification, 100), "SGDBinary"); } @@ -171,7 +171,7 @@ public void TestSSGDBinary() [Fact] public void TestGAMBinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.GeneralizedAdditiveModels(), GetSparseDataset(TaskType.BinaryClassification, 100), "GAMBinary"); + TestFeatureContribution(ML.BinaryClassification.Trainers.GeneralizedAdditiveModel(), GetSparseDataset(TaskType.BinaryClassification, 100), "GAMBinary"); } private void TestFeatureContribution( diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index 6c0b9ced47..a500eac88a 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -59,7 +59,7 @@ public void SimpleEndToEndOnnxConversionTest() var dynamicPipeline = mlContext.Transforms.Normalize("FeatureVector") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new SdcaRegressionTrainer.Options() { + .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new StochasticDualCoordinateAscentRegressionTrainer.Options() { LabelColumnName = "Target", FeatureColumnName = "FeatureVector", NumberOfThreads = 1 @@ -138,13 +138,13 @@ public void KmeansOnnxConversionTest() hasHeader: true); var pipeline = mlContext.Transforms.Normalize("Features"). - Append(mlContext.Clustering.Trainers.KMeans(new Trainers.KMeansPlusPlusTrainer.Options + Append(mlContext.Clustering.Trainers.KMeans(new Trainers.KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = DefaultColumnNames.Features, MaximumNumberOfIterations = 1, NumberOfClusters = 4, NumberOfThreads = 1, - InitializationAlgorithm = Trainers.KMeansPlusPlusTrainer.InitializationAlgorithm.Random + InitializationAlgorithm = Trainers.KMeansPlusPlusClusteringTrainer.InitializationAlgorithm.Random })); var model = pipeline.Fit(data); @@ -317,7 +317,7 @@ public void LogisticRegressionOnnxConversionTest() var dynamicPipeline = mlContext.Transforms.Normalize("FeatureVector") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new SdcaRegressionTrainer.Options() { + .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new StochasticDualCoordinateAscentRegressionTrainer.Options() { LabelColumnName = "Target", FeatureColumnName = "FeatureVector", NumberOfThreads = 1 @@ -385,7 +385,7 @@ public void MulticlassLogisticRegressionOnnxConversionTest() var pipeline = mlContext.Transforms.Normalize("Features"). Append(mlContext.Transforms.Conversion.MapValueToKey("Label")). - Append(mlContext.MulticlassClassification.Trainers.LogisticRegression(new MulticlassLogisticRegression.Options() { NumberOfThreads = 1 })); + Append(mlContext.MulticlassClassification.Trainers.LogisticRegression(new LogisticRegressionMulticlassClassificationTrainer.Options() { NumberOfThreads = 1 })); var model = pipeline.Fit(data); var transformedData = model.Transform(data); diff --git a/test/Microsoft.ML.Tests/PermutationFeatureImportanceTests.cs b/test/Microsoft.ML.Tests/PermutationFeatureImportanceTests.cs index 92ff2fbddf..a694a4c0f8 100644 --- a/test/Microsoft.ML.Tests/PermutationFeatureImportanceTests.cs +++ b/test/Microsoft.ML.Tests/PermutationFeatureImportanceTests.cs @@ -153,7 +153,7 @@ public void TestPfiBinaryClassificationOnDenseFeatures() { var data = GetDenseDataset(TaskType.BinaryClassification); var model = ML.BinaryClassification.Trainers.LogisticRegression( - new LogisticRegression.Options { NumberOfThreads = 1 }).Fit(data); + new LogisticRegressionBinaryClassificationTrainer.Options { NumberOfThreads = 1 }).Fit(data); var pfi = ML.BinaryClassification.PermutationFeatureImportance(model, data); // Pfi Indices: @@ -191,7 +191,7 @@ public void TestPfiBinaryClassificationOnSparseFeatures() { var data = GetSparseDataset(TaskType.BinaryClassification); var model = ML.BinaryClassification.Trainers.LogisticRegression( - new LogisticRegression.Options { NumberOfThreads = 1 }).Fit(data); + new LogisticRegressionBinaryClassificationTrainer.Options { NumberOfThreads = 1 }).Fit(data); var pfi = ML.BinaryClassification.PermutationFeatureImportance(model, data); // Pfi Indices: @@ -270,7 +270,7 @@ public void TestPfiMulticlassClassificationOnSparseFeatures() { var data = GetSparseDataset(TaskType.MulticlassClassification); var model = ML.MulticlassClassification.Trainers.LogisticRegression( - new MulticlassLogisticRegression.Options { NumberOfIterations = 1000 }).Fit(data); + new LogisticRegressionMulticlassClassificationTrainer.Options { NumberOfIterations = 1000 }).Fit(data); var pfi = ML.MulticlassClassification.PermutationFeatureImportance(model, data); // Pfi Indices: diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs index b4e82c1f09..d6119069f7 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs @@ -32,7 +32,7 @@ void DecomposableTrainAndPredict() var pipeline = new ColumnConcatenatingEstimator (ml, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(new ValueToKeyMappingEstimator(ml, "Label"), TransformerScope.TrainTest) .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })) + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })) .Append(new KeyToValueMappingEstimator(ml, "PredictedLabel")); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs index 9517cd45d6..e8ff194fba 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs @@ -41,7 +41,7 @@ void Extensibility() .Append(new CustomMappingEstimator(ml, action, null), TransformerScope.TrainTest) .Append(new ValueToKeyMappingEstimator(ml, "Label"), TransformerScope.TrainTest) .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 })) + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 })) .Append(new KeyToValueMappingEstimator(ml, "PredictedLabel")); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs index 6f909cef69..d0b751e8df 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs @@ -24,7 +24,7 @@ public void Metacomponents() var data = ml.Data.LoadFromTextFile(GetDataPath(TestDatasets.irisData.trainFilename), separatorChar: ','); var sdcaTrainer = ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, }); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, }); var pipeline = new ColumnConcatenatingEstimator (ml, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(ml.Transforms.Conversion.MapValueToKey("Label"), TransformerScope.TrainTest) diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs index 843795ed75..77d4010b49 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs @@ -30,7 +30,7 @@ void MultithreadedPrediction() var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs index 7c166f81f3..2957e7fada 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs @@ -30,7 +30,7 @@ void PredictAndMetadata() var pipeline = ml.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(ml.Transforms.Conversion.MapValueToKey("Label"), TransformerScope.TrainTest) .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })); + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); var engine = model.CreatePredictionEngine(ml); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs index 154bac9986..2e983c7cd1 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs @@ -27,7 +27,7 @@ public void SimpleTrainAndPredict() var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs index e662657801..a998386a67 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs @@ -29,7 +29,7 @@ public void TrainSaveModelAndPredict() var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs index 2b7e3ee85b..4dd69e7a51 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs @@ -32,7 +32,7 @@ public void TrainWithInitialPredictor() // Train the first predictor. var trainer = ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { NumberOfThreads = 1 }); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 }); var firstModel = trainer.Fit(trainData); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs index a1fb6691e0..68500736a3 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs @@ -183,7 +183,7 @@ public void TrainAveragedPerceptronWithCache() var cached = mlContext.Data.Cache(xf); var estimator = mlContext.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronTrainer.Options { NumberOfIterations = 2 }); + new AveragedPerceptronBinaryClassificationTrainer.Options { NumberOfIterations = 2 }); estimator.Fit(cached).Transform(cached); diff --git a/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs b/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs index ef95c95b45..b310dc2ea8 100644 --- a/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs @@ -63,7 +63,7 @@ public void PredictClusters() var testData = mlContext.Data.LoadFromEnumerable(clusters); // Create Estimator - var pipe = mlContext.Clustering.Trainers.KMeans("Features", numberOfClusters: k); + var pipe = mlContext.Clustering.Trainers.KMeansPlusPlus("Features", numberOfClusters: k); // Train the pipeline var trainedModel = pipe.Fit(trainData); diff --git a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs index 06f1a166ef..faf2f714a0 100644 --- a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs @@ -32,7 +32,7 @@ public void TrainAndPredictIrisModelTest() .Append(mlContext.Transforms.Normalize("Features")) .AppendCacheCheckpoint(mlContext) .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); // Read training and test data sets string dataPath = GetDataPath(TestDatasets.iris.trainFilename); diff --git a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs index 1534c2b77e..b52dbb18d0 100644 --- a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs @@ -38,7 +38,7 @@ public void TrainAndPredictIrisModelWithStringLabelTest() .Append(mlContext.Transforms.Conversion.MapValueToKey("Label", "IrisPlantType"), TransformerScope.TrainTest) .AppendCacheCheckpoint(mlContext) .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { NumberOfThreads = 1 })) + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })) .Append(mlContext.Transforms.Conversion.MapKeyToValue(("Plant", "PredictedLabel"))); // Train the pipeline diff --git a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs index c6e47bb8eb..1929906106 100644 --- a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs +++ b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs @@ -65,7 +65,7 @@ public void OvaAveragedPerceptron() // Pipeline var ap = mlContext.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronTrainer.Options { Shuffle = true }); + new AveragedPerceptronBinaryClassificationTrainer.Options { Shuffle = true }); var pipeline = mlContext.MulticlassClassification.Trainers.OneVersusAll(ap, useProbabilities: false); var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs index 04c3770233..cf3122806d 100644 --- a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs +++ b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs @@ -30,7 +30,7 @@ public void TrainAndPredictIrisModelUsingDirectInstantiationTest() .Append(mlContext.Transforms.Normalize("Features")) .AppendCacheCheckpoint(mlContext) .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { NumberOfThreads = 1 })); + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); // Read training and test data sets string dataPath = GetDataPath(TestDatasets.iris.trainFilename); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/LbfgsTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/LbfgsTests.cs index d8483f6ee5..d5bbbd4094 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/LbfgsTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/LbfgsTests.cs @@ -57,7 +57,7 @@ public void TestLogisticRegressionNoStats() { (IEstimator pipe, IDataView dataView) = GetBinaryClassificationPipeline(); - pipe = pipe.Append(ML.BinaryClassification.Trainers.LogisticRegression(new LogisticRegression.Options { ShowTrainingStatistics = true })); + pipe = pipe.Append(ML.BinaryClassification.Trainers.LogisticRegression(new LogisticRegressionBinaryClassificationTrainer.Options { ShowTrainingStatistics = true })); var transformerChain = pipe.Fit(dataView) as TransformerChain>>; var linearModel = transformerChain.LastTransformer.Model.SubModel as LinearBinaryModelParameters; @@ -74,7 +74,7 @@ public void TestLogisticRegressionWithStats() (IEstimator pipe, IDataView dataView) = GetBinaryClassificationPipeline(); pipe = pipe.Append(ML.BinaryClassification.Trainers.LogisticRegression( - new LogisticRegression.Options + new LogisticRegressionBinaryClassificationTrainer.Options { ShowTrainingStatistics = true, ComputeStandardDeviation = new ComputeLRTrainingStdThroughMkl(), diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs index f0e6ed6b5e..60afc83351 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs @@ -33,7 +33,7 @@ public void MatrixFactorization_Estimator() var invalidData = new TextLoader(Env, GetLoaderArgs(labelColumnName, matrixColumnIndexColumnName + "Renamed", matrixRowIndexColumnName + "Renamed")) .Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.testFilename))); - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = matrixColumnIndexColumnName, MatrixRowIndexColumnName = matrixRowIndexColumnName, @@ -68,7 +68,7 @@ public void MatrixFactorizationSimpleTrainAndPredict() var data = reader.Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.trainFilename))); // Create a pipeline with a single operator. - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = userColumnName, MatrixRowIndexColumnName = itemColumnName, @@ -205,7 +205,7 @@ public void MatrixFactorizationInMemoryData() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -295,7 +295,7 @@ public void MatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -415,12 +415,12 @@ public void OneClassMatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationRecommenderTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. @@ -551,12 +551,12 @@ public void OneClassMatrixFactorizationWithUnseenColumnAndRow() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationTrainer.Options + var options = new MatrixFactorizationRecommenderTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationRecommenderTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs index 51df6e7189..e183d199cf 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs @@ -22,7 +22,7 @@ public void OVAWithAllConstructorArgs() var (pipeline, data) = GetMultiClassPipeline(); var calibrator = new PlattCalibratorEstimator(Env); var averagePerceptron = ML.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronTrainer.Options { Shuffle = true }); + new AveragedPerceptronBinaryClassificationTrainer.Options { Shuffle = true }); var ova = ML.MulticlassClassification.Trainers.OneVersusAll(averagePerceptron, imputeMissingLabelsAsNegative: true, calibrator: calibrator, maxCalibrationExamples: 10000, useProbabilities: true); @@ -42,7 +42,7 @@ public void OVAUncalibrated() { var (pipeline, data) = GetMultiClassPipeline(); var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); pipeline = pipeline.Append(ML.MulticlassClassification.Trainers.OneVersusAll(sdcaTrainer, useProbabilities: false)) .Append(new KeyToValueMappingEstimator(Env, "PredictedLabel")); @@ -60,7 +60,7 @@ public void PairwiseCouplingTrainer() var (pipeline, data) = GetMultiClassPipeline(); var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); pipeline = pipeline.Append(ML.MulticlassClassification.Trainers.PairwiseCoupling(sdcaTrainer)) .Append(ML.Transforms.Conversion.MapKeyToValue("PredictedLabel")); @@ -83,7 +83,7 @@ public void MetacomponentsFeaturesRenamed() var data = loader.Load(GetDataPath(TestDatasets.irisData.trainFilename)); var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { LabelColumnName = "Label", FeatureColumnName = "Vars", MaximumNumberOfIterations = 100, diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs index 73f4d85ddb..798f9a81c7 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs @@ -37,7 +37,7 @@ public void OnlineLinearWorkout() var binaryTrainData = binaryPipe.Fit(binaryData).Transform(binaryData).AsDynamic; var apTrainer = ML.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronTrainer.Options{ LearningRate = 0.5f }); + new AveragedPerceptronBinaryClassificationTrainer.Options{ LearningRate = 0.5f }); TestEstimatorCore(apTrainer, binaryTrainData); var apModel = apTrainer.Fit(binaryTrainData); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs index e96ef170ad..88486f6f39 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs @@ -21,19 +21,19 @@ public void SdcaWorkout() .Load(dataPath).Cache(); var binaryTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaBinaryTrainer.Options { ConvergenceTolerance = 1e-2f }); + new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(binaryTrainer, data.AsDynamic); var nonCalibratedBinaryTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new SdcaNonCalibratedBinaryTrainer.Options { ConvergenceTolerance = 1e-2f }); + new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(nonCalibratedBinaryTrainer, data.AsDynamic); var regressionTrainer = ML.Regression.Trainers.StochasticDualCoordinateAscent( - new SdcaRegressionTrainer.Options { ConvergenceTolerance = 1e-2f }); + new StochasticDualCoordinateAscentRegressionTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(regressionTrainer, data.AsDynamic); var mcTrainer = ML.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new SdcaMultiClassTrainer.Options { ConvergenceTolerance = 1e-2f }); + new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(mcTrainer, data.AsDynamic); Done(); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs index 800fac7162..1d2db2ce0c 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs @@ -71,11 +71,11 @@ public void KMeansEstimator() // Pipeline. - var pipeline = new KMeansPlusPlusTrainer(Env, new KMeansPlusPlusTrainer.Options + var pipeline = new KMeansPlusPlusClusteringTrainer(Env, new KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = featureColumn, ExampleWeightColumnName = weights, - InitializationAlgorithm = KMeansPlusPlusTrainer.InitializationAlgorithm.KMeansYinyang, + InitializationAlgorithm = KMeansPlusPlusClusteringTrainer.InitializationAlgorithm.KMeansYinyang, }); TestEstimatorCore(pipeline, data); @@ -90,7 +90,7 @@ public void KMeansEstimator() public void TestEstimatorHogwildSGD() { var trainers = new[] { ML.BinaryClassification.Trainers.StochasticGradientDescent(l2Regularization: 0, numberOfIterations: 80), - ML.BinaryClassification.Trainers.StochasticGradientDescent(new Trainers.SgdBinaryTrainer.Options(){ L2Regularization = 0, NumberOfIterations = 80})}; + ML.BinaryClassification.Trainers.StochasticGradientDescent(new Trainers.StochasticGradientDescentBinaryClassificationTrainer.Options(){ L2Regularization = 0, NumberOfIterations = 80})}; foreach (var trainer in trainers) { @@ -122,7 +122,7 @@ public void TestEstimatorHogwildSGD() public void TestEstimatorHogwildSGDNonCalibrated() { var trainers = new[] { ML.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(loss : new SmoothedHingeLoss()), - ML.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(new Trainers.SgdNonCalibratedBinaryTrainer.Options() { Loss = new HingeLoss() }) }; + ML.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(new Trainers.StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options() { Loss = new HingeLoss() }) }; foreach (var trainer in trainers) { diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs index 21d6eedf92..678bb50349 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs @@ -70,7 +70,7 @@ public void GAMClassificationEstimator() { var (pipe, dataView) = GetBinaryClassificationPipeline(); - var trainer = new BinaryClassificationGamTrainer(Env, new BinaryClassificationGamTrainer.Options + var trainer = new GeneralizedAdditiveModelBinaryClassificationTrainer(Env, new GeneralizedAdditiveModelBinaryClassificationTrainer.Options { GainConfidenceLevel = 0, NumberOfIterations = 15, @@ -188,7 +188,7 @@ public void LightGBMRegressorEstimator() public void GAMRegressorEstimator() { var dataView = GetRegressionPipeline(); - var trainer = new RegressionGamTrainer(Env, new RegressionGamTrainer.Options + var trainer = new GeneralizedAdditiveModelRegressionTrainer(Env, new GeneralizedAdditiveModelRegressionTrainer.Options { EnablePruning = false, NumberOfIterations = 15, @@ -207,7 +207,7 @@ public void TweedieRegressorEstimator() { var dataView = GetRegressionPipeline(); var trainer = ML.Regression.Trainers.FastTreeTweedie( - new FastTreeTweedieTrainer.Options + new FastTreeTweedieRegressionTrainer.Options { EntropyCoefficient = 0.3, OptimizationAlgorithm = BoostedTreeOptions.OptimizationAlgorithmType.AcceleratedGradientDescent, @@ -226,7 +226,7 @@ public void FastForestRegressorEstimator() { var dataView = GetRegressionPipeline(); var trainer = ML.Regression.Trainers.FastForest( - new FastForestRegression.Options + new FastForestRegressionTrainer.Options { BaggingSize = 2, NumberOfTrees = 10, From a843f9b57340fd63560fb21befc23b4fec37e1d0 Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Mon, 11 Mar 2019 05:14:05 +0000 Subject: [PATCH 2/7] updating some of the trainers with acronyms --- .../AnomalyDetection/RandomizedPcaSample.cs | 2 +- .../RandomizedPcaSampleWithOptions.cs | 4 +-- .../SymbolicStochasticGradientDescent.cs | 2 +- ...licStochasticGradientDescentWithOptions.cs | 4 +-- .../Trainers/Clustering/KMeansWithOptions.cs | 2 +- .../MatrixFactorizationWithOptions.cs | 2 +- .../Trainer/Binary/EnsembleTrainer.cs | 4 +-- .../KMeansCatalog.cs | 2 +- .../LightGbmStaticExtensions.cs | 24 ++++++------- .../LightGbmArguments.cs | 2 +- .../LightGbmBinaryTrainer.cs | 22 ++++++------ src/Microsoft.ML.LightGBM/LightGbmCatalog.cs | 36 +++++++++---------- .../LightGbmMulticlassTrainer.cs | 20 +++++------ .../LightGbmRegressionTrainer.cs | 22 ++++++------ .../MklComponentsCatalog.cs | 22 ++++++------ .../SymSgdClassificationTrainer.cs | 32 ++++++++--------- src/Microsoft.ML.PCA/PCACatalog.cs | 10 +++--- src/Microsoft.ML.PCA/PcaTrainer.cs | 22 ++++++------ .../MatrixFactorizationPredictor.cs | 2 +- .../MatrixFactorizationTrainer.cs | 18 +++++----- .../RecommenderCatalog.cs | 18 +++++----- .../MultiClass/MetaMulticlassTrainer.cs | 2 +- .../Standard/Online/LinearSvm.cs | 22 ++++++------ .../StandardLearnersCatalog.cs | 14 ++++---- .../MatrixFactorizationStatic.cs | 4 +-- .../Common/EntryPoints/core_ep-list.tsv | 6 ++-- .../Common/EntryPoints/core_manifest.json | 8 ++--- .../Numeric/Ranking.cs | 2 +- .../Text/MultiClassClassification.cs | 2 +- .../UnitTests/TestEntryPoints.cs | 6 ++-- .../Evaluation.cs | 6 ++-- .../IntrospectiveTraining.cs | 2 +- .../TestPredictors.cs | 2 +- .../Training.cs | 2 +- .../AnomalyDetectionTests.cs | 10 +++--- .../FeatureContributionTests.cs | 4 +-- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 2 +- .../Api/Estimators/SimpleTrainAndPredict.cs | 2 +- test/Microsoft.ML.Tests/Scenarios/OvaTest.cs | 2 +- .../MatrixFactorizationTests.cs | 16 ++++----- .../TrainerEstimators/OnlineLinearTests.cs | 2 +- .../SymSgdClassificationTests.cs | 6 ++-- .../TrainerEstimators/TrainerEstimators.cs | 2 +- .../TrainerEstimators/TreeEstimators.cs | 2 +- 44 files changed, 199 insertions(+), 199 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs index e9d8536a88..a42c760da0 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs @@ -29,7 +29,7 @@ public static void Example() var data = mlContext.Data.LoadFromEnumerable(samples); // Create an anomaly detector. Its underlying algorithm is randomized PCA. - var pipeline = mlContext.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(featureColumnName: nameof(DataPoint.Features), rank: 1, ensureZeroMean: false); + var pipeline = mlContext.AnomalyDetection.Trainers.RandomizedPca(featureColumnName: nameof(DataPoint.Features), rank: 1, ensureZeroMean: false); // Train the anomaly detector. var model = pipeline.Fit(data); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs index 8aba2c8f84..f53d9a40af 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs @@ -28,7 +28,7 @@ public static void Example() // Convert the List to IDataView, a consumble format to ML.NET functions. var data = mlContext.Data.LoadFromEnumerable(samples); - var options = new ML.Trainers.RandomizedPrincipalComponentAnalyzer.Options() + var options = new ML.Trainers.RandomizedPcaAnomalyDetectionTrainer.Options() { FeatureColumnName = nameof(DataPoint.Features), Rank = 1, @@ -36,7 +36,7 @@ public static void Example() }; // Create an anomaly detector. Its underlying algorithm is randomized PCA. - var pipeline = mlContext.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(options); + var pipeline = mlContext.AnomalyDetection.Trainers.RandomizedPca(options); // Train the anomaly detector. var model = pipeline.Fit(data); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescent.cs index c3f1e1508e..85c5683d23 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescent.cs @@ -19,7 +19,7 @@ public static void Example() // Leave out 10% of data for testing. var split = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Create data training pipeline. - var pipeline = mlContext.BinaryClassification.Trainers.SymbolicStochasticGradientDescent(labelColumnName: "IsOver50K", numberOfIterations: 25); + var pipeline = mlContext.BinaryClassification.Trainers.SymbolicSgd(labelColumnName: "IsOver50K", numberOfIterations: 25); var model = pipeline.Fit(split.TrainSet); // Evaluate how the model is doing on the test data. diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs index de4f4ff386..cb25625544 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs @@ -19,8 +19,8 @@ public static void Example() // Leave out 10% of data for testing. var split = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Create data training pipeline - var pipeline = mlContext.BinaryClassification.Trainers.SymbolicStochasticGradientDescent( - new ML.Trainers.SymbolicStochasticGradientDescentClassificationTrainer.Options() + var pipeline = mlContext.BinaryClassification.Trainers.SymbolicSgd( + new ML.Trainers.SymbolicSgdBinaryClassificationTrainer.Options() { LearningRate = 0.2f, NumberOfIterations = 10, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs index 0c749cc212..f54f4e8685 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs @@ -28,7 +28,7 @@ public static void Example() // A pipeline for concatenating the age, parity and induced columns together in the Features column and training a KMeans model on them. string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) - .Append(ml.Clustering.Trainers.KMeans( + .Append(ml.Clustering.Trainers.KMeansPlusPlus( new KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = outputColumnName, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs index ca29bf883a..648133b326 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs @@ -25,7 +25,7 @@ public static void Example() // Create a matrix factorization trainer which may consume "Value" as the training label, "MatrixColumnIndex" as the // matrix's column index, and "MatrixRowIndex" as the matrix's row index. Here nameof(...) is used to extract field // names' in MatrixElement class. - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), diff --git a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs index 92c3b2e21b..316827475b 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs @@ -57,8 +57,8 @@ public Arguments() { ComponentFactoryUtils.CreateFromFunction( env => { - var trainerEstimator = new LinearSvmTrainer(env); - return TrainerUtils.MapTrainerEstimatorToTrainer(env, trainerEstimator); }) }; diff --git a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs index ba09aa6ae5..1f72d73e6a 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs @@ -54,7 +54,7 @@ public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCata /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs)] /// ]]> /// - public static KMeansPlusPlusClusteringTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusClusteringTrainer.Options options) + public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusClusteringTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); diff --git a/src/Microsoft.ML.LightGBM.StaticPipe/LightGbmStaticExtensions.cs b/src/Microsoft.ML.LightGBM.StaticPipe/LightGbmStaticExtensions.cs index 6e4ac7000e..290b7ba878 100644 --- a/src/Microsoft.ML.LightGBM.StaticPipe/LightGbmStaticExtensions.cs +++ b/src/Microsoft.ML.LightGBM.StaticPipe/LightGbmStaticExtensions.cs @@ -16,7 +16,7 @@ namespace Microsoft.ML.LightGBM.StaticPipe public static class LightGbmStaticExtensions { /// - /// Predict a target using a tree regression model trained with the . + /// Predict a target using a tree regression model trained with the . /// /// The . /// The label column. @@ -51,7 +51,7 @@ public static Scalar LightGbm(this RegressionCatalog.RegressionTrainers c var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new LightGbmRegressorTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, + var trainer = new LightGbmRegressionTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -62,7 +62,7 @@ public static Scalar LightGbm(this RegressionCatalog.RegressionTrainers c } /// - /// Predict a target using a tree regression model trained with the . + /// Predict a target using a tree regression model trained with the . /// /// The . /// The label column. @@ -89,7 +89,7 @@ public static Scalar LightGbm(this RegressionCatalog.RegressionTrainers c options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new LightGbmRegressorTrainer(env, options); + var trainer = new LightGbmRegressionTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -99,7 +99,7 @@ public static Scalar LightGbm(this RegressionCatalog.RegressionTrainers c } /// - /// Predict a target using a tree binary classification model trained with the . + /// Predict a target using a tree binary classification model trained with the . /// /// The . /// The label column. @@ -137,7 +137,7 @@ public static (Scalar score, Scalar probability, Scalar pred var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new LightGbmBinaryTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, + var trainer = new LightGbmBinaryClassificationTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); if (onFit != null) @@ -150,7 +150,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using a tree binary classification model trained with the . + /// Predict a target using a tree binary classification model trained with the . /// /// The . /// The label column. @@ -178,7 +178,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new LightGbmBinaryTrainer(env, options); + var trainer = new LightGbmBinaryClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -279,7 +279,7 @@ public static Scalar LightGbm(this RankingCatalog.RankingTrainers c } /// - /// Predict a target using a tree multiclass classification model trained with the . + /// Predict a target using a tree multiclass classification model trained with the . /// /// The multiclass classification catalog trainer object. /// The label, or dependent variable. @@ -318,7 +318,7 @@ public static (Vector score, Key predictedLabel) var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new LightGbmMulticlassTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, + var trainer = new LightGbmMulticlassClassificationTrainer(env, labelName, featuresName, weightsName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); if (onFit != null) @@ -330,7 +330,7 @@ public static (Vector score, Key predictedLabel) } /// - /// Predict a target using a tree multiclass classification model trained with the . + /// Predict a target using a tree multiclass classification model trained with the . /// /// The multiclass classification catalog trainer object. /// The label, or dependent variable. @@ -360,7 +360,7 @@ public static (Vector score, Key predictedLabel) options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new LightGbmMulticlassTrainer(env, options); + var trainer = new LightGbmMulticlassClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.LightGBM/LightGbmArguments.cs b/src/Microsoft.ML.LightGBM/LightGbmArguments.cs index c243e23f2b..bd2bc1f326 100644 --- a/src/Microsoft.ML.LightGBM/LightGbmArguments.cs +++ b/src/Microsoft.ML.LightGBM/LightGbmArguments.cs @@ -371,7 +371,7 @@ public enum EvalMetricType [TGUI(Label = "Ranking Label Gain")] public string CustomGains = "0,3,7,15,31,63,127,255,511,1023,2047,4095"; - [Argument(ArgumentType.AtMostOnce, HelpText = "Parameter for the sigmoid function. Used only in " + nameof(LightGbmBinaryTrainer) + ", " + nameof(LightGbmMulticlassTrainer) + + [Argument(ArgumentType.AtMostOnce, HelpText = "Parameter for the sigmoid function. Used only in " + nameof(LightGbmBinaryClassificationTrainer) + ", " + nameof(LightGbmMulticlassClassificationTrainer) + " and in " + nameof(LightGbmRankingTrainer) + ".", ShortName = "sigmoid")] [TGUI(Label = "Sigmoid", SuggestedSweeps = "0.5,1")] public double Sigmoid = 0.5; diff --git a/src/Microsoft.ML.LightGBM/LightGbmBinaryTrainer.cs b/src/Microsoft.ML.LightGBM/LightGbmBinaryTrainer.cs index 7259e25d54..12276415e7 100644 --- a/src/Microsoft.ML.LightGBM/LightGbmBinaryTrainer.cs +++ b/src/Microsoft.ML.LightGBM/LightGbmBinaryTrainer.cs @@ -12,9 +12,9 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(LightGbmBinaryTrainer.Summary, typeof(LightGbmBinaryTrainer), typeof(Options), +[assembly: LoadableClass(LightGbmBinaryClassificationTrainer.Summary, typeof(LightGbmBinaryClassificationTrainer), typeof(Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer) }, - LightGbmBinaryTrainer.UserName, LightGbmBinaryTrainer.LoadNameValue, LightGbmBinaryTrainer.ShortName, DocName = "trainer/LightGBM.md")] + LightGbmBinaryClassificationTrainer.UserName, LightGbmBinaryClassificationTrainer.LoadNameValue, LightGbmBinaryClassificationTrainer.ShortName, DocName = "trainer/LightGBM.md")] [assembly: LoadableClass(typeof(IPredictorProducing), typeof(LightGbmBinaryModelParameters), null, typeof(SignatureLoadModel), "LightGBM Binary Executor", @@ -87,7 +87,7 @@ private static IPredictorProducing Create(IHostEnvironment env, ModelLoad /// Light GBM is an open source implementation of boosted trees. /// GitHub: LightGBM /// - public sealed class LightGbmBinaryTrainer : LightGbmTrainerBase>, CalibratedModelParametersBase> { @@ -98,13 +98,13 @@ public sealed class LightGbmBinaryTrainer : LightGbmTrainerBase PredictionKind.BinaryClassification; - internal LightGbmBinaryTrainer(IHostEnvironment env, Options options) + internal LightGbmBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, LoadNameValue, options, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of The label column. @@ -114,7 +114,7 @@ internal LightGbmBinaryTrainer(IHostEnvironment env, Options options) /// The minimal number of data points allowed in a leaf of the tree, out of the subsampled data. /// The learning rate. /// Number of iterations. - internal LightGbmBinaryTrainer(IHostEnvironment env, + internal LightGbmBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -170,7 +170,7 @@ private protected override BinaryPredictionTransformer new BinaryPredictionTransformer>(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public BinaryPredictionTransformer> Fit(IDataView trainData, IDataView validationData) @@ -184,9 +184,9 @@ internal static partial class LightGbm { [TlcModule.EntryPoint( Name = "Trainers.LightGbmBinaryClassifier", - Desc = LightGbmBinaryTrainer.Summary, - UserName = LightGbmBinaryTrainer.UserName, - ShortName = LightGbmBinaryTrainer.ShortName)] + Desc = LightGbmBinaryClassificationTrainer.Summary, + UserName = LightGbmBinaryClassificationTrainer.UserName, + ShortName = LightGbmBinaryClassificationTrainer.ShortName)] public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, Options input) { Contracts.CheckValue(env, nameof(env)); @@ -195,7 +195,7 @@ public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironm EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LightGbmBinaryTrainer(host, input), + () => new LightGbmBinaryClassificationTrainer(host, input), getLabel: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.LightGBM/LightGbmCatalog.cs b/src/Microsoft.ML.LightGBM/LightGbmCatalog.cs index 1c3877625d..279b1f27a2 100644 --- a/src/Microsoft.ML.LightGBM/LightGbmCatalog.cs +++ b/src/Microsoft.ML.LightGBM/LightGbmCatalog.cs @@ -14,7 +14,7 @@ namespace Microsoft.ML public static class LightGbmExtensions { /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// The name of the label column. @@ -31,7 +31,7 @@ public static class LightGbmExtensions /// ]]> /// /// - public static LightGbmRegressorTrainer LightGbm(this RegressionCatalog.RegressionTrainers catalog, + public static LightGbmRegressionTrainer LightGbm(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -42,11 +42,11 @@ public static LightGbmRegressorTrainer LightGbm(this RegressionCatalog.Regressio { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmRegressorTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); + return new LightGbmRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// Advanced options to the algorithm. @@ -57,16 +57,16 @@ public static LightGbmRegressorTrainer LightGbm(this RegressionCatalog.Regressio /// ]]> /// /// - public static LightGbmRegressorTrainer LightGbm(this RegressionCatalog.RegressionTrainers catalog, + public static LightGbmRegressionTrainer LightGbm(this RegressionCatalog.RegressionTrainers catalog, Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmRegressorTrainer(env, options); + return new LightGbmRegressionTrainer(env, options); } /// - /// Predict a target using a decision tree binary classification model trained with the . + /// Predict a target using a decision tree binary classification model trained with the . /// /// The . /// The name of the label column. @@ -83,7 +83,7 @@ public static LightGbmRegressorTrainer LightGbm(this RegressionCatalog.Regressio /// ]]> /// /// - public static LightGbmBinaryTrainer LightGbm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static LightGbmBinaryClassificationTrainer LightGbm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -94,11 +94,11 @@ public static LightGbmBinaryTrainer LightGbm(this BinaryClassificationCatalog.Bi { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmBinaryTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); + return new LightGbmBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); } /// - /// Predict a target using a decision tree binary classification model trained with the . + /// Predict a target using a decision tree binary classification model trained with the . /// /// The . /// Advanced options to the algorithm. @@ -109,12 +109,12 @@ public static LightGbmBinaryTrainer LightGbm(this BinaryClassificationCatalog.Bi /// ]]> /// /// - public static LightGbmBinaryTrainer LightGbm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static LightGbmBinaryClassificationTrainer LightGbm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmBinaryTrainer(env, options); + return new LightGbmBinaryClassificationTrainer(env, options); } /// @@ -158,7 +158,7 @@ public static LightGbmRankingTrainer LightGbm(this RankingCatalog.RankingTrainer } /// - /// Predict a target using a decision tree multiclass classification model trained with the . + /// Predict a target using a decision tree multiclass classification model trained with the . /// /// The . /// The name of the label column. @@ -175,7 +175,7 @@ public static LightGbmRankingTrainer LightGbm(this RankingCatalog.RankingTrainer /// ]]> /// /// - public static LightGbmMulticlassTrainer LightGbm(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static LightGbmMulticlassClassificationTrainer LightGbm(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -186,11 +186,11 @@ public static LightGbmMulticlassTrainer LightGbm(this MulticlassClassificationCa { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmMulticlassTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); + return new LightGbmMulticlassClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, minimumExampleCountPerLeaf, learningRate, numberOfIterations); } /// - /// Predict a target using a decision tree multiclass classification model trained with the . + /// Predict a target using a decision tree multiclass classification model trained with the . /// /// The . /// Advanced options to the algorithm. @@ -201,12 +201,12 @@ public static LightGbmMulticlassTrainer LightGbm(this MulticlassClassificationCa /// ]]> /// /// - public static LightGbmMulticlassTrainer LightGbm(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static LightGbmMulticlassClassificationTrainer LightGbm(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new LightGbmMulticlassTrainer(env, options); + return new LightGbmMulticlassClassificationTrainer(env, options); } } } diff --git a/src/Microsoft.ML.LightGBM/LightGbmMulticlassTrainer.cs b/src/Microsoft.ML.LightGBM/LightGbmMulticlassTrainer.cs index c149f38818..6b2363c80d 100644 --- a/src/Microsoft.ML.LightGBM/LightGbmMulticlassTrainer.cs +++ b/src/Microsoft.ML.LightGBM/LightGbmMulticlassTrainer.cs @@ -14,13 +14,13 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(LightGbmMulticlassTrainer.Summary, typeof(LightGbmMulticlassTrainer), typeof(Options), +[assembly: LoadableClass(LightGbmMulticlassClassificationTrainer.Summary, typeof(LightGbmMulticlassClassificationTrainer), typeof(Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - "LightGBM Multi-class Classifier", LightGbmMulticlassTrainer.LoadNameValue, LightGbmMulticlassTrainer.ShortName, DocName = "trainer/LightGBM.md")] + "LightGBM Multi-class Classifier", LightGbmMulticlassClassificationTrainer.LoadNameValue, LightGbmMulticlassClassificationTrainer.ShortName, DocName = "trainer/LightGBM.md")] namespace Microsoft.ML.LightGBM { - public sealed class LightGbmMulticlassTrainer : LightGbmTrainerBase, MulticlassPredictionTransformer, OneVersusAllModelParameters> + public sealed class LightGbmMulticlassClassificationTrainer : LightGbmTrainerBase, MulticlassPredictionTransformer, OneVersusAllModelParameters> { internal const string Summary = "LightGBM Multi Class Classifier"; internal const string LoadNameValue = "LightGBMMulticlass"; @@ -32,14 +32,14 @@ public sealed class LightGbmMulticlassTrainer : LightGbmTrainerBase PredictionKind.MultiClassClassification; - internal LightGbmMulticlassTrainer(IHostEnvironment env, Options options) + internal LightGbmMulticlassClassificationTrainer(IHostEnvironment env, Options options) : base(env, LoadNameValue, options, TrainerUtils.MakeU4ScalarColumn(options.LabelColumnName)) { _numClass = -1; } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of The label column. @@ -49,7 +49,7 @@ internal LightGbmMulticlassTrainer(IHostEnvironment env, Options options) /// The minimal number of data points allowed in a leaf of the tree, out of the subsampled data. /// The learning rate. /// The number of iterations to use. - internal LightGbmMulticlassTrainer(IHostEnvironment env, + internal LightGbmMulticlassClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -221,7 +221,7 @@ private protected override MulticlassPredictionTransformer new MulticlassPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name, LabelColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public MulticlassPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -236,8 +236,8 @@ internal static partial class LightGbm [TlcModule.EntryPoint( Name = "Trainers.LightGbmClassifier", Desc = "Train a LightGBM multi class model.", - UserName = LightGbmMulticlassTrainer.Summary, - ShortName = LightGbmMulticlassTrainer.ShortName)] + UserName = LightGbmMulticlassClassificationTrainer.Summary, + ShortName = LightGbmMulticlassClassificationTrainer.ShortName)] public static CommonOutputs.MulticlassClassificationOutput TrainMultiClass(IHostEnvironment env, Options input) { Contracts.CheckValue(env, nameof(env)); @@ -246,7 +246,7 @@ public static CommonOutputs.MulticlassClassificationOutput TrainMultiClass(IHost EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LightGbmMulticlassTrainer(host, input), + () => new LightGbmMulticlassClassificationTrainer(host, input), getLabel: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.LightGBM/LightGbmRegressionTrainer.cs b/src/Microsoft.ML.LightGBM/LightGbmRegressionTrainer.cs index 2932b1e6ab..03ade4241b 100644 --- a/src/Microsoft.ML.LightGBM/LightGbmRegressionTrainer.cs +++ b/src/Microsoft.ML.LightGBM/LightGbmRegressionTrainer.cs @@ -11,9 +11,9 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(LightGbmRegressorTrainer.Summary, typeof(LightGbmRegressorTrainer), typeof(Options), +[assembly: LoadableClass(LightGbmRegressionTrainer.Summary, typeof(LightGbmRegressionTrainer), typeof(Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer) }, - LightGbmRegressorTrainer.UserNameValue, LightGbmRegressorTrainer.LoadNameValue, LightGbmRegressorTrainer.ShortName, DocName = "trainer/LightGBM.md")] + LightGbmRegressionTrainer.UserNameValue, LightGbmRegressionTrainer.LoadNameValue, LightGbmRegressionTrainer.ShortName, DocName = "trainer/LightGBM.md")] [assembly: LoadableClass(typeof(LightGbmRegressionModelParameters), null, typeof(SignatureLoadModel), "LightGBM Regression Executor", @@ -72,7 +72,7 @@ private static LightGbmRegressionModelParameters Create(IHostEnvironment env, Mo } } - public sealed class LightGbmRegressorTrainer : LightGbmTrainerBase, LightGbmRegressionModelParameters> + public sealed class LightGbmRegressionTrainer : LightGbmTrainerBase, LightGbmRegressionModelParameters> { internal const string Summary = "LightGBM Regression"; internal const string LoadNameValue = "LightGBMRegression"; @@ -82,7 +82,7 @@ public sealed class LightGbmRegressorTrainer : LightGbmTrainerBase PredictionKind.Regression; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -92,7 +92,7 @@ public sealed class LightGbmRegressorTrainer : LightGbmTrainerBaseThe minimal number of data points allowed in a leaf of the tree, out of the subsampled data. /// The learning rate. /// Number of iterations. - internal LightGbmRegressorTrainer(IHostEnvironment env, + internal LightGbmRegressionTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -104,7 +104,7 @@ internal LightGbmRegressorTrainer(IHostEnvironment env, { } - internal LightGbmRegressorTrainer(IHostEnvironment env, Options options) + internal LightGbmRegressionTrainer(IHostEnvironment env, Options options) : base(env, LoadNameValue, options, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { } @@ -149,7 +149,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -162,9 +162,9 @@ public RegressionPredictionTransformer Fit(ID internal static partial class LightGbm { [TlcModule.EntryPoint(Name = "Trainers.LightGbmRegressor", - Desc = LightGbmRegressorTrainer.Summary, - UserName = LightGbmRegressorTrainer.UserNameValue, - ShortName = LightGbmRegressorTrainer.ShortName)] + Desc = LightGbmRegressionTrainer.Summary, + UserName = LightGbmRegressionTrainer.UserNameValue, + ShortName = LightGbmRegressionTrainer.ShortName)] public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, Options input) { Contracts.CheckValue(env, nameof(env)); @@ -173,7 +173,7 @@ public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment en EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LightGbmRegressorTrainer(host, input), + () => new LightGbmRegressionTrainer(host, input), getLabel: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs index b6b1fbc43c..f0d44306cd 100644 --- a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs +++ b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs @@ -10,7 +10,7 @@ namespace Microsoft.ML { /// - /// The trainer catalog extensions for the and . + /// The trainer catalog extensions for the and . /// public static class MklComponentsCatalog { @@ -69,7 +69,7 @@ public static OrdinaryLeastSquaresRegressionTrainer OrdinaryLeastSquares( } /// - /// Predict a target using a linear binary classification model trained with the . + /// Predict a target using a linear binary classification model trained with the . /// /// The . /// The name of the label column. @@ -82,28 +82,28 @@ public static OrdinaryLeastSquaresRegressionTrainer OrdinaryLeastSquares( /// ]]> /// /// - public static SymbolicStochasticGradientDescentClassificationTrainer SymbolicStochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static SymbolicSgdBinaryClassificationTrainer SymbolicSgd(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, - int numberOfIterations = SymbolicStochasticGradientDescentClassificationTrainer.Defaults.NumberOfIterations) + int numberOfIterations = SymbolicSgdBinaryClassificationTrainer.Defaults.NumberOfIterations) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new SymbolicStochasticGradientDescentClassificationTrainer.Options + var options = new SymbolicSgdBinaryClassificationTrainer.Options { LabelColumnName = labelColumnName, FeatureColumnName = featureColumnName, }; - return new SymbolicStochasticGradientDescentClassificationTrainer(env, options); + return new SymbolicSgdBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with the . + /// Predict a target using a linear binary classification model trained with the . /// /// The . - /// Algorithm advanced options. See . + /// Algorithm advanced options. See . /// /// /// /// /// - public static SymbolicStochasticGradientDescentClassificationTrainer SymbolicStochasticGradientDescent( + public static SymbolicSgdBinaryClassificationTrainer SymbolicSgd( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SymbolicStochasticGradientDescentClassificationTrainer.Options options) + SymbolicSgdBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SymbolicStochasticGradientDescentClassificationTrainer(env, options); + return new SymbolicSgdBinaryClassificationTrainer(env, options); } /// diff --git a/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs b/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs index 397b01f778..d413f70a4a 100644 --- a/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs +++ b/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs @@ -20,20 +20,20 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; -[assembly: LoadableClass(typeof(SymbolicStochasticGradientDescentClassificationTrainer), typeof(SymbolicStochasticGradientDescentClassificationTrainer.Options), +[assembly: LoadableClass(typeof(SymbolicSgdBinaryClassificationTrainer), typeof(SymbolicSgdBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - SymbolicStochasticGradientDescentClassificationTrainer.UserNameValue, - SymbolicStochasticGradientDescentClassificationTrainer.LoadNameValue, - SymbolicStochasticGradientDescentClassificationTrainer.ShortName)] + SymbolicSgdBinaryClassificationTrainer.UserNameValue, + SymbolicSgdBinaryClassificationTrainer.LoadNameValue, + SymbolicSgdBinaryClassificationTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(SymbolicStochasticGradientDescentClassificationTrainer), null, typeof(SignatureEntryPointModule), SymbolicStochasticGradientDescentClassificationTrainer.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(SymbolicSgdBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), SymbolicSgdBinaryClassificationTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { using TPredictor = CalibratedModelParametersBase; /// - public sealed class SymbolicStochasticGradientDescentClassificationTrainer : TrainerEstimatorBase, TPredictor> + public sealed class SymbolicSgdBinaryClassificationTrainer : TrainerEstimatorBase, TPredictor> { internal const string LoadNameValue = "SymbolicSGD"; internal const string UserNameValue = "Symbolic SGD (binary)"; @@ -196,9 +196,9 @@ private protected override TPredictor TrainModelCore(TrainContext context) private protected override PredictionKind PredictionKind => PredictionKind.BinaryClassification; /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal SymbolicStochasticGradientDescentClassificationTrainer(IHostEnvironment env, Options options) + internal SymbolicSgdBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { @@ -224,7 +224,7 @@ private protected override BinaryPredictionTransformer MakeTransform => new BinaryPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of using an already trained + /// Continues the training of using an already trained /// a . /// public BinaryPredictionTransformer Fit(IDataView trainData, LinearModelParameters modelParameters) @@ -242,8 +242,8 @@ private protected override SchemaShape.Column[] GetOutputColumnsCore(SchemaShape [TlcModule.EntryPoint(Name = "Trainers.SymSgdBinaryClassifier", Desc = "Train a symbolic SGD.", - UserName = SymbolicStochasticGradientDescentClassificationTrainer.UserNameValue, - ShortName = SymbolicStochasticGradientDescentClassificationTrainer.ShortName)] + UserName = SymbolicSgdBinaryClassificationTrainer.UserNameValue, + ShortName = SymbolicSgdBinaryClassificationTrainer.ShortName)] internal static CommonOutputs.BinaryClassificationOutput TrainSymSgd(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); @@ -252,7 +252,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainSymSgd(IHostEnviro EntryPointUtils.CheckInputArgs(host, options); return TrainerEntryPointsUtils.Train(host, options, - () => new SymbolicStochasticGradientDescentClassificationTrainer(host, options), + () => new SymbolicSgdBinaryClassificationTrainer(host, options), () => TrainerEntryPointsUtils.FindColumn(host, options.TrainingData.Schema, options.LabelColumnName)); } @@ -325,7 +325,7 @@ public void Free() // giving an array, we are at _storage[_storageIndex][_indexInCurArray]. private int _indexInCurArray; // This is used to access AccelMemBudget, AccelChunkSize and UsedMemory - private readonly SymbolicStochasticGradientDescentClassificationTrainer _trainer; + private readonly SymbolicSgdBinaryClassificationTrainer _trainer; private readonly IChannel _ch; @@ -337,7 +337,7 @@ public void Free() /// /// /// - public ArrayManager(SymbolicStochasticGradientDescentClassificationTrainer trainer, IChannel ch) + public ArrayManager(SymbolicSgdBinaryClassificationTrainer trainer, IChannel ch) { _storage = new List(); // Setting the default value to 2^17. @@ -501,7 +501,7 @@ private sealed class InputDataManager : IDisposable // This is the index to go over the instances in instanceProperties private int _instanceIndex; // This is used to access AccelMemBudget, AccelChunkSize and UsedMemory - private readonly SymbolicStochasticGradientDescentClassificationTrainer _trainer; + private readonly SymbolicSgdBinaryClassificationTrainer _trainer; private readonly IChannel _ch; // Whether memorySize was big enough to load the entire instances into the buffer @@ -512,7 +512,7 @@ private sealed class InputDataManager : IDisposable // Tells if we have gone through the dataset entirely. public bool FinishedTheLoad => !_cursorMoveNext; - public InputDataManager(SymbolicStochasticGradientDescentClassificationTrainer trainer, FloatLabelCursor.Factory cursorFactory, IChannel ch) + public InputDataManager(SymbolicSgdBinaryClassificationTrainer trainer, FloatLabelCursor.Factory cursorFactory, IChannel ch) { _instIndices = new ArrayManager(trainer, ch); _instValues = new ArrayManager(trainer, ch); diff --git a/src/Microsoft.ML.PCA/PCACatalog.cs b/src/Microsoft.ML.PCA/PCACatalog.cs index be6c13ff4d..2e5b1aa0bf 100644 --- a/src/Microsoft.ML.PCA/PCACatalog.cs +++ b/src/Microsoft.ML.PCA/PCACatalog.cs @@ -6,7 +6,7 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; -using static Microsoft.ML.Trainers.RandomizedPrincipalComponentAnalyzer; +using static Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer; namespace Microsoft.ML { @@ -54,7 +54,7 @@ public static PrincipalComponentAnalyzer ProjectToPrincipalComponents(this Trans /// [!code-csharp[RPCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs)] /// ]]> /// - public static RandomizedPrincipalComponentAnalyzer AnalyzeRandomizedPrincipalComponents(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, + public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, int rank = Options.Defaults.NumComponents, @@ -64,7 +64,7 @@ public static RandomizedPrincipalComponentAnalyzer AnalyzeRandomizedPrincipalCom { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RandomizedPrincipalComponentAnalyzer(env, featureColumnName, exampleWeightColumnName, rank, oversampling, ensureZeroMean, seed); + return new RandomizedPcaAnomalyDetectionTrainer(env, featureColumnName, exampleWeightColumnName, rank, oversampling, ensureZeroMean, seed); } /// @@ -78,11 +78,11 @@ public static RandomizedPrincipalComponentAnalyzer AnalyzeRandomizedPrincipalCom /// [!code-csharp[RPCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs)] /// ]]> /// - public static RandomizedPrincipalComponentAnalyzer AnalyzeRandomizedPrincipalComponents(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, Options options) + public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RandomizedPrincipalComponentAnalyzer(env, options); + return new RandomizedPcaAnomalyDetectionTrainer(env, options); } } } diff --git a/src/Microsoft.ML.PCA/PcaTrainer.cs b/src/Microsoft.ML.PCA/PcaTrainer.cs index 1ea09467df..7c2673117b 100644 --- a/src/Microsoft.ML.PCA/PcaTrainer.cs +++ b/src/Microsoft.ML.PCA/PcaTrainer.cs @@ -18,16 +18,16 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(RandomizedPrincipalComponentAnalyzer.Summary, typeof(RandomizedPrincipalComponentAnalyzer), typeof(RandomizedPrincipalComponentAnalyzer.Options), +[assembly: LoadableClass(RandomizedPcaAnomalyDetectionTrainer.Summary, typeof(RandomizedPcaAnomalyDetectionTrainer), typeof(RandomizedPcaAnomalyDetectionTrainer.Options), new[] { typeof(SignatureAnomalyDetectorTrainer), typeof(SignatureTrainer) }, - RandomizedPrincipalComponentAnalyzer.UserNameValue, - RandomizedPrincipalComponentAnalyzer.LoadNameValue, - RandomizedPrincipalComponentAnalyzer.ShortName)] + RandomizedPcaAnomalyDetectionTrainer.UserNameValue, + RandomizedPcaAnomalyDetectionTrainer.LoadNameValue, + RandomizedPcaAnomalyDetectionTrainer.ShortName)] [assembly: LoadableClass(typeof(PrincipleComponentModelParameters), null, typeof(SignatureLoadModel), "PCA Anomaly Executor", PrincipleComponentModelParameters.LoaderSignature)] -[assembly: LoadableClass(typeof(void), typeof(RandomizedPrincipalComponentAnalyzer), null, typeof(SignatureEntryPointModule), RandomizedPrincipalComponentAnalyzer.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(RandomizedPcaAnomalyDetectionTrainer), null, typeof(SignatureEntryPointModule), RandomizedPcaAnomalyDetectionTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { @@ -40,7 +40,7 @@ namespace Microsoft.ML.Trainers /// /// This PCA can be made into Kernel PCA by using Random Fourier Features transform /// - public sealed class RandomizedPrincipalComponentAnalyzer : TrainerEstimatorBase, PrincipleComponentModelParameters> + public sealed class RandomizedPcaAnomalyDetectionTrainer : TrainerEstimatorBase, PrincipleComponentModelParameters> { internal const string LoadNameValue = "pcaAnomaly"; internal const string UserNameValue = "PCA Anomaly Detector"; @@ -88,7 +88,7 @@ internal static class Defaults public override TrainerInfo Info => _info; /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The local instance of the . /// The name of the feature column. @@ -97,7 +97,7 @@ internal static class Defaults /// Oversampling parameter for randomized PCA training. /// If enabled, data is centered to be zero mean. /// The seed for random number generation. - internal RandomizedPrincipalComponentAnalyzer(IHostEnvironment env, + internal RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, string featureColumnName, string exampleWeightColumnName = null, int rank = Options.Defaults.NumComponents, @@ -108,12 +108,12 @@ internal RandomizedPrincipalComponentAnalyzer(IHostEnvironment env, { } - internal RandomizedPrincipalComponentAnalyzer(IHostEnvironment env, Options options) + internal RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.ExampleWeightColumnName) { } - private RandomizedPrincipalComponentAnalyzer(IHostEnvironment env, Options options, string featureColumnName, string exampleWeightColumnName, + private RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, Options options, string featureColumnName, string exampleWeightColumnName, int rank = 20, int oversampling = 20, bool center = true, int? seed = null) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(featureColumnName), default, TrainerUtils.MakeR4ScalarWeightColumn(exampleWeightColumnName)) { @@ -359,7 +359,7 @@ internal static CommonOutputs.AnomalyDetectionOutput TrainPcaAnomaly(IHostEnviro EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new RandomizedPrincipalComponentAnalyzer(host, input), + () => new RandomizedPcaAnomalyDetectionTrainer(host, input), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } } diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs index ab1a39065d..126f650e36 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs @@ -416,7 +416,7 @@ public sealed class MatrixFactorizationPredictionTransformer : PredictionTransfo /// The output column is "Score" by default but user can append a string to it. /// /// Eviroment object for showing information - /// The model trained by one of the training functions in + /// The model trained by one of the training functions in /// Targeted schema that containing columns named as xColumnName /// The name of the column used as role in matrix factorization world /// The name of the column used as role in matrix factorization world diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs index 310fe6e23a..03fa0d4904 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs @@ -17,9 +17,9 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.Recommender; -[assembly: LoadableClass(MatrixFactorizationRecommenderTrainer.Summary, typeof(MatrixFactorizationRecommenderTrainer), typeof(MatrixFactorizationRecommenderTrainer.Options), +[assembly: LoadableClass(MatrixFactorizationRecommendationTrainer.Summary, typeof(MatrixFactorizationRecommendationTrainer), typeof(MatrixFactorizationRecommendationTrainer.Options), new Type[] { typeof(SignatureTrainer), typeof(SignatureMatrixRecommendingTrainer) }, - "Matrix Factorization", MatrixFactorizationRecommenderTrainer.LoadNameValue, "libmf", "mf")] + "Matrix Factorization", MatrixFactorizationRecommendationTrainer.LoadNameValue, "libmf", "mf")] namespace Microsoft.ML.Trainers { @@ -86,7 +86,7 @@ namespace Microsoft.ML.Trainers /// ]]> /// /// - public sealed class MatrixFactorizationRecommenderTrainer : ITrainer, + public sealed class MatrixFactorizationRecommendationTrainer : ITrainer, IEstimator { /// @@ -112,7 +112,7 @@ public enum LossFunctionType }; /// - /// Advanced options for the . + /// Advanced options for the . /// public sealed class Options { @@ -310,12 +310,12 @@ internal static class Defaults private readonly TrainerInfo _info; /// - /// Initializes a new instance of through the class. + /// Initializes a new instance of through the class. /// /// The private instance of . /// An instance of to apply advanced parameters to the algorithm. [BestFriend] - internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, Options options) + internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); @@ -348,7 +348,7 @@ internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, Options opt } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The private instance of . /// The name of the label column. @@ -358,7 +358,7 @@ internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, Options opt /// Initial learning rate. It specifies the speed of the training algorithm. /// Number of training iterations. [BestFriend] - internal MatrixFactorizationRecommenderTrainer(IHostEnvironment env, + internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, string labelColumnName, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, @@ -491,7 +491,7 @@ private SafeTrainingAndModelBuffer PrepareBuffer() } /// - /// Trains a using both training and validation data, returns a . + /// Trains a using both training and validation data, returns a . /// /// The training data set. /// The validation data set. diff --git a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs index b31c679712..ea52b412c4 100644 --- a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs +++ b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs @@ -63,14 +63,14 @@ internal RecommendationTrainers(RecommendationCatalog catalog) /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorization.cs)] /// ]]> /// - public MatrixFactorizationRecommenderTrainer MatrixFactorization( + public MatrixFactorizationRecommendationTrainer MatrixFactorization( string labelColumn, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, - int approximationRank = MatrixFactorizationRecommenderTrainer.Defaults.ApproximationRank, - double learningRate = MatrixFactorizationRecommenderTrainer.Defaults.LearningRate, - int numberOfIterations = MatrixFactorizationRecommenderTrainer.Defaults.NumIterations) - => new MatrixFactorizationRecommenderTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, + int approximationRank = MatrixFactorizationRecommendationTrainer.Defaults.ApproximationRank, + double learningRate = MatrixFactorizationRecommendationTrainer.Defaults.LearningRate, + int numberOfIterations = MatrixFactorizationRecommendationTrainer.Defaults.NumIterations) + => new MatrixFactorizationRecommendationTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, approximationRank, learningRate, numberOfIterations); /// @@ -79,7 +79,7 @@ public MatrixFactorizationRecommenderTrainer MatrixFactorization( /// /// The basic idea of matrix factorization is finding two low-rank factor matrices to apporimate the training matrix. /// In this module, the expected training data is a list of tuples. Every tuple consists of a column index, a row index, - /// and the value at the location specified by the two indexes. The training configuration is encoded in . + /// and the value at the location specified by the two indexes. The training configuration is encoded in . /// /// /// Advanced arguments to the algorithm. @@ -89,9 +89,9 @@ public MatrixFactorizationRecommenderTrainer MatrixFactorization( /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs)] /// ]]> /// - public MatrixFactorizationRecommenderTrainer MatrixFactorization( - MatrixFactorizationRecommenderTrainer.Options options) - => new MatrixFactorizationRecommenderTrainer(Owner.GetEnvironment(), options); + public MatrixFactorizationRecommendationTrainer MatrixFactorization( + MatrixFactorizationRecommendationTrainer.Options options) + => new MatrixFactorizationRecommendationTrainer(Owner.GetEnvironment(), options); } /// diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs index c7e3647ee1..d065a3b8df 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs @@ -87,7 +87,7 @@ private TScalarTrainer CreateTrainer() { return Args.PredictorType != null ? Args.PredictorType.CreateComponent(Host) : - new LinearSvmTrainer(Host, new LinearSvmTrainer.Options()); + new LinearSvmBinaryClassificationTrainer(Host, new LinearSvmBinaryClassificationTrainer.Options()); } private protected IDataView MapLabelsCore(DataViewType type, InPredicate equalsTarget, RoleMappedData data) diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs index 60f379465e..36648b0dd6 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs @@ -16,20 +16,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(LinearSvmTrainer.Summary, typeof(LinearSvmTrainer), typeof(LinearSvmTrainer.Options), +[assembly: LoadableClass(LinearSvmBinaryClassificationTrainer.Summary, typeof(LinearSvmBinaryClassificationTrainer), typeof(LinearSvmBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - LinearSvmTrainer.UserNameValue, - LinearSvmTrainer.LoadNameValue, - LinearSvmTrainer.ShortName)] + LinearSvmBinaryClassificationTrainer.UserNameValue, + LinearSvmBinaryClassificationTrainer.LoadNameValue, + LinearSvmBinaryClassificationTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(LinearSvmTrainer), null, typeof(SignatureEntryPointModule), "LinearSvm")] +[assembly: LoadableClass(typeof(void), typeof(LinearSvmBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), "LinearSvm")] namespace Microsoft.ML.Trainers { /// /// Linear SVM that implements PEGASOS for training. See: http://ttic.uchicago.edu/~shai/papers/ShalevSiSr07.pdf /// - public sealed class LinearSvmTrainer : OnlineLinearTrainer, LinearBinaryModelParameters> + public sealed class LinearSvmBinaryClassificationTrainer : OnlineLinearTrainer, LinearBinaryModelParameters> { internal const string LoadNameValue = "LinearSVM"; internal const string ShortName = "svm"; @@ -92,7 +92,7 @@ private sealed class TrainState : TrainStateBase private readonly bool _performProjection; private readonly float _lambda; - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, LinearSvmTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, LinearSvmBinaryClassificationTrainer parent) : base(ch, numFeatures, predictor, parent) { _batchSize = parent.Opts.BatchSize; @@ -227,7 +227,7 @@ public override LinearBinaryModelParameters CreatePredictor() private protected override bool NeedCalibration => true; /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The environment to use. /// The name of the label column. @@ -235,7 +235,7 @@ public override LinearBinaryModelParameters CreatePredictor() /// The optional name of the weight column. /// The number of training iteraitons. [BestFriend] - internal LinearSvmTrainer(IHostEnvironment env, + internal LinearSvmBinaryClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -250,7 +250,7 @@ internal LinearSvmTrainer(IHostEnvironment env, { } - internal LinearSvmTrainer(IHostEnvironment env, Options options) + internal LinearSvmBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { Contracts.CheckUserArg(options.Lambda > 0, nameof(options.Lambda), UserErrorPositive); @@ -288,7 +288,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainLinearSvm(IHostEnv EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LinearSvmTrainer(host, input), + () => new LinearSvmBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), calibrator: input.Calibrator, maxCalibrationExamples: input.MaxCalibrationExamples); } diff --git a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs index 33330ce8f2..2736fecfa2 100644 --- a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs +++ b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs @@ -677,7 +677,7 @@ public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCoupling - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// /// @@ -695,18 +695,18 @@ public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCouplingThe name of the feature column. /// The name of the example weight column (optional). /// The number of training iteraitons. - public static LinearSvmTrainer LinearSupportVectorMachines(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations) { Contracts.CheckValue(catalog, nameof(catalog)); - return new LinearSvmTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName, exampleWeightColumnName, numIterations); + return new LinearSvmBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName, exampleWeightColumnName, numIterations); } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// /// @@ -721,13 +721,13 @@ public static LinearSvmTrainer LinearSupportVectorMachines(this BinaryClassifica /// /// The . /// Advanced arguments to the algorithm. - public static LinearSvmTrainer LinearSupportVectorMachines(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - LinearSvmTrainer.Options options) + public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + LinearSvmBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); - return new LinearSvmTrainer(CatalogUtils.GetEnvironment(catalog), options); + return new LinearSvmBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), options); } /// diff --git a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs index ef3815b630..fee207ad7b 100644 --- a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs +++ b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs @@ -30,7 +30,7 @@ public static class MatrixFactorizationExtensions /// The predicted output. public static Scalar MatrixFactorization(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Key matrixColumnIndex, Key matrixRowIndex, - MatrixFactorizationRecommenderTrainer.Options options, + MatrixFactorizationRecommendationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -45,7 +45,7 @@ public static Scalar MatrixFactorization(this RegressionCatalog.Regres options.MatrixRowIndexColumnName = matrixRowIndexColName; options.LabelColumnName = labelColName; - var trainer = new MatrixFactorizationRecommenderTrainer(env, options); + var trainer = new MatrixFactorizationRecommendationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv index f08fe6fb4f..36e0afffda 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv +++ b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv @@ -57,19 +57,19 @@ Trainers.LightGbmBinaryClassifier Train a LightGBM binary classification model. Trainers.LightGbmClassifier Train a LightGBM multi class model. Microsoft.ML.LightGBM.LightGbm TrainMultiClass Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.LightGbmRanker Train a LightGBM ranking model. Microsoft.ML.LightGBM.LightGbm TrainRanking Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput Trainers.LightGbmRegressor LightGBM Regression Microsoft.ML.LightGBM.LightGbm TrainRegression Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Trainers.LinearSvmTrainer TrainLinearSvm Microsoft.ML.Trainers.LinearSvmTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Trainers.LinearSvmBinaryClassificationTrainer TrainLinearSvm Microsoft.ML.Trainers.LinearSvmBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LogisticRegressionBinaryClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LogisticRegressionClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainMultiClass Microsoft.ML.Trainers.LogisticRegressionMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer TrainRegression Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.OrdinaryLeastSquaresRegressor Train an OLS regression model. Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer TrainRegression Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.PcaAnomalyDetector Train an PCA Anomaly model. Microsoft.ML.Trainers.RandomizedPrincipalComponentAnalyzer TrainPcaAnomaly Microsoft.ML.Trainers.RandomizedPrincipalComponentAnalyzer+Options Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput +Trainers.PcaAnomalyDetector Train an PCA Anomaly model. Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer TrainPcaAnomaly Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput Trainers.PoissonRegressor Train an Poisson regression model. Microsoft.ML.Trainers.PoissonRegressionTrainer TrainRegression Microsoft.ML.Trainers.PoissonRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticDualCoordinateAscentBinaryClassifier Train an SDCA binary model. Microsoft.ML.Trainers.Sdca TrainBinary Microsoft.ML.Trainers.LegacySdcaBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.StochasticDualCoordinateAscentClassifier The SDCA linear multi-class classification trainer. Microsoft.ML.Trainers.Sdca TrainMultiClass Microsoft.ML.Trainers.StochasticDualCoordinateAscentMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.StochasticDualCoordinateAscentRegressor The SDCA linear regression trainer. Microsoft.ML.Trainers.Sdca TrainRegression Microsoft.ML.Trainers.StochasticDualCoordinateAscentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticGradientDescentBinaryClassifier Train an Hogwild SGD binary model. Microsoft.ML.Trainers.LegacySgdBinaryTrainer TrainBinary Microsoft.ML.Trainers.LegacySgdBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.SymSgdBinaryClassifier Train a symbolic SGD. Microsoft.ML.Trainers.SymbolicStochasticGradientDescentClassificationTrainer TrainSymSgd Microsoft.ML.Trainers.SymbolicStochasticGradientDescentClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.SymSgdBinaryClassifier Train a symbolic SGD. Microsoft.ML.Trainers.SymbolicSgdBinaryClassificationTrainer TrainSymSgd Microsoft.ML.Trainers.SymbolicSgdBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Transforms.ApproximateBootstrapSampler Approximate bootstrap sampling. Microsoft.ML.Transforms.BootstrapSample GetSample Microsoft.ML.Transforms.BootstrapSamplingTransformer+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput Transforms.BinaryPredictionScoreColumnsRenamer For binary prediction, it renames the PredictedLabel and Score columns to include the name of the positive class. Microsoft.ML.EntryPoints.ScoreModel RenameBinaryPredictionScoreColumns Microsoft.ML.EntryPoints.ScoreModel+RenameBinaryPredictionScoreColumnsInput Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput Transforms.BinNormalizer The values are assigned into equidensity bins and a value is mapped to its bin_number/number_of_bins. Microsoft.ML.Data.Normalize Bin Microsoft.ML.Transforms.NormalizeTransform+BinArguments Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput diff --git a/test/BaselineOutput/Common/EntryPoints/core_manifest.json b/test/BaselineOutput/Common/EntryPoints/core_manifest.json index 3f190a7257..bb1e4a6d2c 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_manifest.json +++ b/test/BaselineOutput/Common/EntryPoints/core_manifest.json @@ -11372,7 +11372,7 @@ { "Name": "Sigmoid", "Type": "Float", - "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryTrainer, LightGbmMulticlassTrainer and in LightGbmRankingTrainer.", + "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryClassificationTrainer, LightGbmMulticlassClassificationTrainer and in LightGbmRankingTrainer.", "Aliases": [ "sigmoid" ], @@ -11875,7 +11875,7 @@ { "Name": "Sigmoid", "Type": "Float", - "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryTrainer, LightGbmMulticlassTrainer and in LightGbmRankingTrainer.", + "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryClassificationTrainer, LightGbmMulticlassClassificationTrainer and in LightGbmRankingTrainer.", "Aliases": [ "sigmoid" ], @@ -12378,7 +12378,7 @@ { "Name": "Sigmoid", "Type": "Float", - "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryTrainer, LightGbmMulticlassTrainer and in LightGbmRankingTrainer.", + "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryClassificationTrainer, LightGbmMulticlassClassificationTrainer and in LightGbmRankingTrainer.", "Aliases": [ "sigmoid" ], @@ -12881,7 +12881,7 @@ { "Name": "Sigmoid", "Type": "Float", - "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryTrainer, LightGbmMulticlassTrainer and in LightGbmRankingTrainer.", + "Desc": "Parameter for the sigmoid function. Used only in LightGbmBinaryClassificationTrainer, LightGbmMulticlassClassificationTrainer and in LightGbmRankingTrainer.", "Aliases": [ "sigmoid" ], diff --git a/test/Microsoft.ML.Benchmarks/Numeric/Ranking.cs b/test/Microsoft.ML.Benchmarks/Numeric/Ranking.cs index 33aee9e6ba..563e009c67 100644 --- a/test/Microsoft.ML.Benchmarks/Numeric/Ranking.cs +++ b/test/Microsoft.ML.Benchmarks/Numeric/Ranking.cs @@ -58,7 +58,7 @@ public void TrainTest_Ranking_MSLRWeb10K_RawNumericFeatures_LightGBMRanking() " xf=NAHandleTransform{col=Features}" + " tr=LightGBMRanking{}"; - var environment = EnvironmentFactory.CreateRankingEnvironment(); + var environment = EnvironmentFactory.CreateRankingEnvironment(); cmd.ExecuteMamlCommand(environment); } } diff --git a/test/Microsoft.ML.Benchmarks/Text/MultiClassClassification.cs b/test/Microsoft.ML.Benchmarks/Text/MultiClassClassification.cs index 3c49f1eac9..96072044ed 100644 --- a/test/Microsoft.ML.Benchmarks/Text/MultiClassClassification.cs +++ b/test/Microsoft.ML.Benchmarks/Text/MultiClassClassification.cs @@ -53,7 +53,7 @@ public void CV_Multiclass_WikiDetox_BigramsAndTrichar_LightGBMMulticlass() " xf=Concat{col=Features:FeaturesText,logged_in,ns}" + " tr=LightGBMMulticlass{iter=10}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs index a27475e62b..a8d6e4577f 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs @@ -327,7 +327,7 @@ public void EntryPointCatalogCheckDuplicateParams() Env.ComponentCatalog.RegisterAssembly(typeof(LightGbmBinaryModelParameters).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(TensorFlowTransformer).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(ImageLoadingTransformer).Assembly); - Env.ComponentCatalog.RegisterAssembly(typeof(SymbolicStochasticGradientDescentClassificationTrainer).Assembly); + Env.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdBinaryClassificationTrainer).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(SaveOnnxCommand).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(TimeSeriesProcessingEntryPoints).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(ParquetLoader).Assembly); @@ -3391,11 +3391,11 @@ public void EntryPointPcaPredictorSummary() InputFile = inputFile, }).Data; - var pcaInput = new RandomizedPrincipalComponentAnalyzer.Options + var pcaInput = new RandomizedPcaAnomalyDetectionTrainer.Options { TrainingData = dataView, }; - var model = RandomizedPrincipalComponentAnalyzer.TrainPcaAnomaly(Env, pcaInput).PredictorModel; + var model = RandomizedPcaAnomalyDetectionTrainer.TrainPcaAnomaly(Env, pcaInput).PredictorModel; var output = SummarizePredictor.Summarize(Env, new SummarizePredictor.Input() { PredictorModel = model }); diff --git a/test/Microsoft.ML.Functional.Tests/Evaluation.cs b/test/Microsoft.ML.Functional.Tests/Evaluation.cs index da25a519e1..a26671c3cd 100644 --- a/test/Microsoft.ML.Functional.Tests/Evaluation.cs +++ b/test/Microsoft.ML.Functional.Tests/Evaluation.cs @@ -35,7 +35,7 @@ public void TrainAndEvaluateAnomalyDetection() .Load(GetDataPath(TestDatasets.mnistOneClass.testFilename)); // Create a training pipeline. - var pipeline = mlContext.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(); + var pipeline = mlContext.AnomalyDetection.Trainers.RandomizedPca(); // Train the model. var model = pipeline.Fit(trainData); @@ -122,7 +122,7 @@ public void TrainAndEvaluateClustering() // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Clustering.Trainers.KMeans(new KMeansPlusPlusClusteringTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new KMeansPlusPlusClusteringTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -209,7 +209,7 @@ public void TrainAndEvaluateRecommendation() // Create a pipeline to train on the sentiment data. var pipeline = mlContext.Recommendation().Trainers.MatrixFactorization( - new MatrixFactorizationRecommenderTrainer.Options{ + new MatrixFactorizationRecommendationTrainer.Options{ MatrixColumnIndexColumnName = "MatrixColumnIndex", MatrixRowIndexColumnName = "MatrixRowIndex", LabelColumnName = "Label", diff --git a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs index b11e73cd3d..6baf0bedba 100644 --- a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs +++ b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs @@ -420,7 +420,7 @@ public void InspectNestedPipeline() private IEstimator>> StepOne(MLContext mlContext) { return mlContext.Transforms.Concatenate("LabelAndFeatures", "Label", "Features") - .Append(mlContext.Clustering.Trainers.KMeans( + .Append(mlContext.Clustering.Trainers.KMeansPlusPlus( new KMeansPlusPlusClusteringTrainer.Options { InitializationAlgorithm = KMeansPlusPlusClusteringTrainer.InitializationAlgorithm.Random, diff --git a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs index 1c05ba11a1..2f0576285d 100644 --- a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs +++ b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs @@ -41,7 +41,7 @@ protected override void InitializeEnvironment(IHostEnvironment environment) base.InitializeEnvironment(environment); environment.ComponentCatalog.RegisterAssembly(typeof(LightGbmBinaryModelParameters).Assembly); - environment.ComponentCatalog.RegisterAssembly(typeof(SymbolicStochasticGradientDescentClassificationTrainer).Assembly); + environment.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdBinaryClassificationTrainer).Assembly); } /// diff --git a/test/Microsoft.ML.StaticPipelineTesting/Training.cs b/test/Microsoft.ML.StaticPipelineTesting/Training.cs index 9c1805e83a..d4fd2267e2 100644 --- a/test/Microsoft.ML.StaticPipelineTesting/Training.cs +++ b/test/Microsoft.ML.StaticPipelineTesting/Training.cs @@ -1162,7 +1162,7 @@ public void MatrixFactorization() var matrixFactorizationEstimator = reader.MakeNewEstimator() .Append(r => (r.label, score: mlContext.Regression.Trainers.MatrixFactorization( r.label, r.matrixRowIndex, r.matrixColumnIndex, - new MatrixFactorizationRecommenderTrainer.Options { NumberOfThreads = 1 }, + new MatrixFactorizationRecommendationTrainer.Options { NumberOfThreads = 1 }, onFit: p => pred = p))); // Create a pipeline from the reader (the 1st step) and the matrix factorization estimator (the 2nd step). diff --git a/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs b/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs index b6020f33b8..82969ad81b 100644 --- a/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs +++ b/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs @@ -59,13 +59,13 @@ public static void RandomizedPcaInMemory() var mlContext = new MLContext(seed: 0); // Create an anomaly detector. Its underlying algorithm is randomized PCA. - var trainer1 = mlContext.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(featureColumnName: nameof(DataPoint.Features), rank: 1, ensureZeroMean: false); + var trainer1 = mlContext.AnomalyDetection.Trainers.RandomizedPca(featureColumnName: nameof(DataPoint.Features), rank: 1, ensureZeroMean: false); // Test the first detector. ExecutePipelineWithGivenRandomizedPcaTrainer(mlContext, trainer1); // Object required in the creation of another detector. - var options = new Trainers.RandomizedPrincipalComponentAnalyzer.Options() + var options = new Trainers.RandomizedPcaAnomalyDetectionTrainer.Options() { FeatureColumnName = nameof(DataPoint.Features), Rank = 1, @@ -73,7 +73,7 @@ public static void RandomizedPcaInMemory() }; // Create anther anomaly detector. Its underlying algorithm is randomized PCA. - var trainer2 = mlContext.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(options); + var trainer2 = mlContext.AnomalyDetection.Trainers.RandomizedPca(options); // Test the second detector. ExecutePipelineWithGivenRandomizedPcaTrainer(mlContext, trainer2); @@ -102,7 +102,7 @@ private class Result /// /// Help function used to execute trainers defined in . /// - private static void ExecutePipelineWithGivenRandomizedPcaTrainer(MLContext mlContext, Trainers.RandomizedPrincipalComponentAnalyzer trainer) + private static void ExecutePipelineWithGivenRandomizedPcaTrainer(MLContext mlContext, Trainers.RandomizedPcaAnomalyDetectionTrainer trainer) { var samples = new List() { @@ -152,7 +152,7 @@ private IDataView DetectAnomalyInMnistOneClass(string trainPath, string testPath var trainData = loader.Load(trainPath); var testData = loader.Load(testPath); - var trainer = ML.AnomalyDetection.Trainers.AnalyzeRandomizedPrincipalComponents(); + var trainer = ML.AnomalyDetection.Trainers.RandomizedPca(); var model = trainer.Fit(trainData); return model.Transform(testData); diff --git a/test/Microsoft.ML.Tests/FeatureContributionTests.cs b/test/Microsoft.ML.Tests/FeatureContributionTests.cs index 6dacda3b6f..fbb067b11f 100644 --- a/test/Microsoft.ML.Tests/FeatureContributionTests.cs +++ b/test/Microsoft.ML.Tests/FeatureContributionTests.cs @@ -120,7 +120,7 @@ public void TestAveragePerceptronBinary() [Fact] public void TestSVMBinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.LinearSupportVectorMachines(), GetSparseDataset(TaskType.BinaryClassification, 100), "SVMBinary"); + TestFeatureContribution(ML.BinaryClassification.Trainers.LinearSvm(), GetSparseDataset(TaskType.BinaryClassification, 100), "SVMBinary"); } [Fact] @@ -165,7 +165,7 @@ public void TestSGDBinary() [Fact] public void TestSSGDBinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.SymbolicStochasticGradientDescent(), GetSparseDataset(TaskType.BinaryClassification, 100), "SSGDBinary", 4); + TestFeatureContribution(ML.BinaryClassification.Trainers.SymbolicSgd(), GetSparseDataset(TaskType.BinaryClassification, 100), "SSGDBinary", 4); } [Fact] diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index a500eac88a..3e5a2569db 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -138,7 +138,7 @@ public void KmeansOnnxConversionTest() hasHeader: true); var pipeline = mlContext.Transforms.Normalize("Features"). - Append(mlContext.Clustering.Trainers.KMeans(new Trainers.KMeansPlusPlusClusteringTrainer.Options + Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new Trainers.KMeansPlusPlusClusteringTrainer.Options { FeatureColumnName = DefaultColumnNames.Features, MaximumNumberOfIterations = 1, diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs index 2e983c7cd1..59104f0279 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs @@ -63,7 +63,7 @@ public void SimpleTrainAndPredictSymSGD() // Pipeline. var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) - .Append(ml.BinaryClassification.Trainers.SymbolicStochasticGradientDescent(new SymbolicStochasticGradientDescentClassificationTrainer.Options + .Append(ml.BinaryClassification.Trainers.SymbolicSgd(new SymbolicSgdBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); diff --git a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs index 1929906106..1b5231aa53 100644 --- a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs +++ b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs @@ -131,7 +131,7 @@ public void OvaLinearSvm() // Pipeline var pipeline = mlContext.MulticlassClassification.Trainers.OneVersusAll( - mlContext.BinaryClassification.Trainers.LinearSupportVectorMachines(new LinearSvmTrainer.Options { NumberOfIterations = 100 }), + mlContext.BinaryClassification.Trainers.LinearSvm(new LinearSvmBinaryClassificationTrainer.Options { NumberOfIterations = 100 }), useProbabilities: false); var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs index 60afc83351..59dd3099de 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs @@ -33,7 +33,7 @@ public void MatrixFactorization_Estimator() var invalidData = new TextLoader(Env, GetLoaderArgs(labelColumnName, matrixColumnIndexColumnName + "Renamed", matrixRowIndexColumnName + "Renamed")) .Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.testFilename))); - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = matrixColumnIndexColumnName, MatrixRowIndexColumnName = matrixRowIndexColumnName, @@ -68,7 +68,7 @@ public void MatrixFactorizationSimpleTrainAndPredict() var data = reader.Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.trainFilename))); // Create a pipeline with a single operator. - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = userColumnName, MatrixRowIndexColumnName = itemColumnName, @@ -205,7 +205,7 @@ public void MatrixFactorizationInMemoryData() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -295,7 +295,7 @@ public void MatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -415,12 +415,12 @@ public void OneClassMatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationRecommenderTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationRecommendationTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. @@ -551,12 +551,12 @@ public void OneClassMatrixFactorizationWithUnseenColumnAndRow() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommenderTrainer.Options + var options = new MatrixFactorizationRecommendationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationRecommenderTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationRecommendationTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs index 798f9a81c7..86e1f2e17d 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs @@ -43,7 +43,7 @@ public void OnlineLinearWorkout() var apModel = apTrainer.Fit(binaryTrainData); apTrainer.Fit(binaryTrainData, apModel.Model); - var svmTrainer = ML.BinaryClassification.Trainers.LinearSupportVectorMachines(); + var svmTrainer = ML.BinaryClassification.Trainers.LinearSvm(); TestEstimatorCore(svmTrainer, binaryTrainData); var svmModel = svmTrainer.Fit(binaryTrainData); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs index de14f52c56..478831039e 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs @@ -16,7 +16,7 @@ public partial class TrainerEstimators public void TestEstimatorSymSgdClassificationTrainer() { (var pipe, var dataView) = GetBinaryClassificationPipeline(); - var trainer = new SymbolicStochasticGradientDescentClassificationTrainer(Env, new SymbolicStochasticGradientDescentClassificationTrainer.Options()); + var trainer = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()); var pipeWithTrainer = pipe.Append(trainer); TestEstimatorCore(pipeWithTrainer, dataView); @@ -35,11 +35,11 @@ public void TestEstimatorSymSgdInitPredictor() var initPredictor = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscent().Fit(transformedData); var data = initPredictor.Transform(transformedData); - var withInitPredictor = new SymbolicStochasticGradientDescentClassificationTrainer(Env, new SymbolicStochasticGradientDescentClassificationTrainer.Options()).Fit(transformedData, + var withInitPredictor = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()).Fit(transformedData, modelParameters: initPredictor.Model.SubModel); var outInitData = withInitPredictor.Transform(transformedData); - var notInitPredictor = new SymbolicStochasticGradientDescentClassificationTrainer(Env, new SymbolicStochasticGradientDescentClassificationTrainer.Options()).Fit(transformedData); + var notInitPredictor = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()).Fit(transformedData); var outNoInitData = notInitPredictor.Transform(transformedData); int numExamples = 10; diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs index 1d2db2ce0c..5cf8b0bcfa 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs @@ -41,7 +41,7 @@ public void PCATrainerEstimator() // Pipeline. - var pipeline = new RandomizedPrincipalComponentAnalyzer(Env, featureColumn, rank: 10); + var pipeline = new RandomizedPcaAnomalyDetectionTrainer(Env, featureColumn, rank: 10); TestEstimatorCore(pipeline, data); Done(); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs index 678bb50349..3bf3151fda 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs @@ -294,7 +294,7 @@ private void LightGbmHelper(bool useSoftmax, out string modelString, out List Date: Mon, 11 Mar 2019 21:44:31 +0000 Subject: [PATCH 3/7] updated names based on the latest pattern --- ...FeatureContributionCalculationTransform.cs | 4 +- .../Dynamic/GeneralizedAdditiveModels.cs | 2 +- .../PFIRegressionExample.cs | 2 +- .../RandomizedPcaSampleWithOptions.cs | 2 +- .../AveragedPerceptronWithOptions.cs | 2 +- ...ldAwareFactorizationMachinewWithOptions.cs | 2 +- .../StochasticDualCoordinateAscent.cs | 6 +- ...hasticDualCoordinateAscentNonCalibrated.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 4 +- .../StochasticGradientDescent.cs | 2 +- .../StochasticGradientDescentNonCalibrated.cs | 2 +- ...GradientDescentNonCalibratedWithOptions.cs | 4 +- .../StochasticGradientDescentWithOptions.cs | 4 +- ...licStochasticGradientDescentWithOptions.cs | 2 +- .../Trainers/Clustering/KMeansWithOptions.cs | 2 +- .../StochasticDualCoordinateAscent.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 4 +- .../MatrixFactorizationWithOptions.cs | 2 +- .../Regression/OrdinaryLeastSquares.cs | 2 +- .../OrdinaryLeastSquaresWithOptions.cs | 2 +- .../StochasticDualCoordinateAscent.cs | 2 +- ...ochasticDualCoordinateAscentWithOptions.cs | 4 +- .../Trainer/Binary/EnsembleTrainer.cs | 4 +- .../Regression/RegressionEnsembleTrainer.cs | 4 +- .../FastTreeArguments.cs | 6 +- .../FastTreeRegression.cs | 2 +- src/Microsoft.ML.FastTree/FastTreeTweedie.cs | 34 ++-- .../GamClassification.cs | 24 +-- src/Microsoft.ML.FastTree/GamRegression.cs | 18 +- src/Microsoft.ML.FastTree/GamTrainer.cs | 24 +-- .../RandomForestClassification.cs | 34 ++-- .../TreeTrainersCatalog.cs | 56 +++--- .../KMeansCatalog.cs | 18 +- .../KMeansPlusPlusTrainer.cs | 24 +-- .../ComputeLRTrainingStdThroughHal.cs | 2 +- .../MklComponentsCatalog.cs | 40 ++--- .../OlsLinearRegression.cs | 20 +-- .../SymSgdClassificationTrainer.cs | 32 ++-- src/Microsoft.ML.PCA/PCACatalog.cs | 10 +- src/Microsoft.ML.PCA/PcaTrainer.cs | 22 +-- .../MatrixFactorizationPredictor.cs | 2 +- .../MatrixFactorizationTrainer.cs | 18 +- .../RecommenderCatalog.cs | 18 +- .../FactorizationMachineCatalog.cs | 12 +- .../FactorizationMachineTrainer.cs | 24 +-- .../MulticlassLogisticRegression.cs | 2 +- .../MultiClass/MetaMulticlassTrainer.cs | 2 +- .../MultiClass/MultiClassNaiveBayesTrainer.cs | 22 +-- .../MultiClass/OneVersusAllTrainer.cs | 22 +-- .../MultiClass/PairwiseCouplingTrainer.cs | 16 +- .../Standard/Online/AveragedPerceptron.cs | 20 +-- .../Standard/Online/LinearSvm.cs | 22 +-- .../Standard/Online/OnlineGradientDescent.cs | 20 +-- .../Standard/SdcaBinary.cs | 54 +++--- .../Standard/SdcaMultiClass.cs | 32 ++-- .../Standard/SdcaRegression.cs | 32 ++-- .../Standard/Simple/SimpleTrainers.cs | 12 +- .../StandardLearnersCatalog.cs | 170 +++++++++--------- .../FactorizationMachineStatic.cs | 6 +- src/Microsoft.ML.StaticPipe/KMeansStatic.cs | 12 +- .../MatrixFactorizationStatic.cs | 4 +- .../MultiClassNaiveBayesStatic.cs | 2 +- .../OnlineLearnerStatic.cs | 30 ++-- .../SdcaStaticExtensions.cs | 24 +-- src/Microsoft.ML.StaticPipe/SgdStatic.cs | 32 ++-- .../Common/EntryPoints/core_ep-list.tsv | 30 ++-- .../PredictionEngineBench.cs | 12 +- ...sticDualCoordinateAscentClassifierBench.cs | 4 +- .../Text/MultiClassClassification.cs | 10 +- .../UnitTests/TestEntryPoints.cs | 8 +- .../DataTransformation.cs | 4 +- .../Evaluation.cs | 12 +- .../Explainability.cs | 8 +- .../IntrospectiveTraining.cs | 16 +- .../Prediction.cs | 2 +- .../Validation.cs | 2 +- .../TestIniModels.cs | 4 +- .../TestPredictors.cs | 4 +- .../Training.cs | 16 +- .../AnomalyDetectionTests.cs | 4 +- .../FeatureContributionTests.cs | 20 +-- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 8 +- .../CookbookSamplesDynamicApi.cs | 6 +- .../Estimators/DecomposableTrainAndPredict.cs | 4 +- .../Scenarios/Api/Estimators/Extensibility.cs | 4 +- .../Api/Estimators/Metacomponents.cs | 4 +- .../Api/Estimators/MultithreadedPrediction.cs | 4 +- .../Api/Estimators/PredictAndMetadata.cs | 4 +- .../Api/Estimators/SimpleTrainAndPredict.cs | 6 +- .../Estimators/TrainSaveModelAndPredict.cs | 4 +- .../Estimators/TrainWithInitialPredictor.cs | 4 +- .../Scenarios/Api/TestApi.cs | 2 +- .../Scenarios/IrisPlantClassificationTests.cs | 4 +- ...PlantClassificationWithStringLabelTests.cs | 4 +- test/Microsoft.ML.Tests/Scenarios/OvaTest.cs | 4 +- .../Scenarios/TensorflowTests.cs | 2 +- .../IrisPlantClassificationTests.cs | 4 +- .../TrainerEstimators/FAFMEstimator.cs | 4 +- .../MatrixFactorizationTests.cs | 16 +- .../TrainerEstimators/MetalinearEstimators.cs | 14 +- .../OlsLinearRegressionTests.cs | 4 +- .../TrainerEstimators/OnlineLinearTests.cs | 2 +- .../TrainerEstimators/SdcaTests.cs | 20 +-- .../SymSgdClassificationTests.cs | 8 +- .../TrainerEstimators/TrainerEstimators.cs | 14 +- .../TrainerEstimators/TreeEstimators.cs | 8 +- 106 files changed, 679 insertions(+), 679 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/FeatureContributionCalculationTransform.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/FeatureContributionCalculationTransform.cs index 541e708cf7..1ce0bd63ba 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/FeatureContributionCalculationTransform.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/FeatureContributionCalculationTransform.cs @@ -22,7 +22,7 @@ public static void Example() var transformPipeline = mlContext.Transforms.Concatenate("Features", "CrimesPerCapita", "PercentResidental", "PercentNonRetail", "CharlesRiver", "NitricOxides", "RoomsPerDwelling", "PercentPre40s", "EmploymentDistance", "HighwayDistance", "TaxRate", "TeacherRatio"); - var learner = mlContext.Regression.Trainers.OrdinaryLeastSquares( + var learner = mlContext.Regression.Trainers.Ols( labelColumnName: "MedianHomeValue", featureColumnName: "Features"); var transformedData = transformPipeline.Fit(data).Transform(data); @@ -40,7 +40,7 @@ public static void Example() // FeatureContributionCalculatingEstimator can be use as an intermediary step in a pipeline. // The features retained by FeatureContributionCalculatingEstimator will be in the FeatureContribution column. var pipeline = mlContext.Model.Explainability.FeatureContributionCalculation(model.Model, model.FeatureColumn, numPositiveContributions: 11) - .Append(mlContext.Regression.Trainers.OrdinaryLeastSquares(featureColumnName: "FeatureContributions")); + .Append(mlContext.Regression.Trainers.Ols(featureColumnName: "FeatureContributions")); var outData = featureContributionCalculator.Fit(scoredData).Transform(scoredData); // Let's extract the weights from the linear model to use as a comparison diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs index 6523eaaacf..5ab8fd3ad6 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/GeneralizedAdditiveModels.cs @@ -27,7 +27,7 @@ public static void Example() .Where(name => name != labelName) // Drop the Label .ToArray(); var pipeline = mlContext.Transforms.Concatenate("Features", featureNames) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel( + .Append(mlContext.Regression.Trainers.Gam( labelColumnName: labelName, featureColumnName: "Features", maximumBinCountPerFeature: 16)); var fitPipeline = pipeline.Fit(data); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/PermutationFeatureImportance/PFIRegressionExample.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/PermutationFeatureImportance/PFIRegressionExample.cs index b046f4a309..e14c9e2d08 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/PermutationFeatureImportance/PFIRegressionExample.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/PermutationFeatureImportance/PFIRegressionExample.cs @@ -20,7 +20,7 @@ public static void Example() // Then append a linear regression trainer. var pipeline = mlContext.Transforms.Concatenate("Features", featureNames) .Append(mlContext.Transforms.Normalize("Features")) - .Append(mlContext.Regression.Trainers.OrdinaryLeastSquares( + .Append(mlContext.Regression.Trainers.Ols( labelColumnName: labelName, featureColumnName: "Features")); var model = pipeline.Fit(data); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs index f53d9a40af..f9160570c9 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs @@ -28,7 +28,7 @@ public static void Example() // Convert the List to IDataView, a consumble format to ML.NET functions. var data = mlContext.Data.LoadFromEnumerable(samples); - var options = new ML.Trainers.RandomizedPcaAnomalyDetectionTrainer.Options() + var options = new ML.Trainers.RandomizedPcaTrainer.Options() { FeatureColumnName = nameof(DataPoint.Features), Rank = 1, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs index dad86c7efb..fb1dfacf50 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/AveragedPerceptronWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new AveragedPerceptronBinaryClassificationTrainer.Options() + var options = new AveragedPerceptronTrainer.Options() { LossFunction = new SmoothedHingeLoss.Options(), LearningRate = 0.1f, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachinewWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachinewWithOptions.cs index cae0684039..5e7c2ae3ef 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachinewWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachinewWithOptions.cs @@ -30,7 +30,7 @@ public static void Example() var pipeline = new EstimatorChain().AppendCacheCheckpoint(mlContext) .Append(mlContext.BinaryClassification.Trainers. FieldAwareFactorizationMachine( - new FieldAwareFactorizationMachineBinaryClassificationTrainer.Options + new FieldAwareFactorizationMachineTrainer.Options { FeatureColumnName = "Features", LabelColumnName = "Sentiment", diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs index 3c4972df5a..5c0756062b 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs @@ -49,7 +49,7 @@ public static void Example() // the "Features" column produced by FeaturizeText as the features column. var pipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features") .AppendCacheCheckpoint(mlContext) // Add a data-cache step within a pipeline. - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent(labelColumnName: "Sentiment", featureColumnName: "Features", l2Regularization: 0.001f)); + .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated(labelColumnName: "Sentiment", featureColumnName: "Features", l2Regularization: 0.001f)); // Step 3: Run Cross-Validation on this pipeline. var cvResults = mlContext.BinaryClassification.CrossValidate(data, pipeline, labelColumn: "Sentiment"); @@ -60,8 +60,8 @@ public static void Example() // If we wanted to specify more advanced parameters for the algorithm, // we could do so by tweaking the 'advancedSetting'. var advancedPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText", "Features") - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { + .Append(mlContext.BinaryClassification.Trainers.SdcaCalibrated( + new SdcaCalibratedBinaryClassificationTrainer.Options { LabelColumnName = "Sentiment", FeatureColumnName = "Features", ConvergenceTolerance = 0.01f, // The learning rate for adjusting bias from being regularized diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs index 6824892b6c..3459becb1c 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs @@ -40,7 +40,7 @@ public static void Example() // Step 2: Create a binary classifier. This trainer may produce a logistic regression model. // We set the "Label" column as the label of the dataset, and the "Features" column as the features column. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( + var pipeline = mlContext.BinaryClassification.Trainers.SdcaNonCalibrated( labelColumnName: "Label", featureColumnName: "Features", loss: new HingeLoss(), l2Regularization: 0.001f); // Step 3: Train the pipeline created. diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs index cd232ad310..abb601ecf5 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs @@ -22,7 +22,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options() + var options = new SdcaCalibratedBinaryClassificationTrainer.Options() { // Make the convergence tolerance tighter. ConvergenceTolerance = 0.05f, @@ -33,7 +33,7 @@ public static void Example() }; // Create data training pipeline. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent(options); + var pipeline = mlContext.BinaryClassification.Trainers.SdcaCalibrated(options); // Fit this pipeline to the training data. var model = pipeline.Fit(trainTestData.TrainSet); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescent.cs index efcf064a2c..e14a47dadc 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescent.cs @@ -19,7 +19,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Create data training pipeline. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticGradientDescent(); + var pipeline = mlContext.BinaryClassification.Trainers.SgdCalibrated(); // Fit this pipeline to the training data. var model = pipeline.Fit(trainTestData.TrainSet); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibrated.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibrated.cs index ef2acb80a4..da6fc818bc 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibrated.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibrated.cs @@ -19,7 +19,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Create data training pipeline. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(); + var pipeline = mlContext.BinaryClassification.Trainers.SgdNonCalibrated(); // Fit this pipeline to the training data. var model = pipeline.Fit(trainTestData.TrainSet); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs index 3ff87ebd33..24836b189c 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentNonCalibratedWithOptions.cs @@ -22,8 +22,8 @@ public static void Example() // Create data training pipeline. var pipeline = mlContext.BinaryClassification - .Trainers.StochasticGradientDescentNonCalibrated( - new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options + .Trainers.SgdNonCalibrated( + new SgdNonCalibratedTrainer.Options { InitialLearningRate = 0.01, NumberOfIterations = 10, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs index 0f0b53a5ca..0f722ea319 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticGradientDescentWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var trainTestData = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Define the trainer options. - var options = new StochasticGradientDescentBinaryClassificationTrainer.Options() + var options = new SgdCalibratedTrainer.Options() { // Make the convergence tolerance tighter. ConvergenceTolerance = 5e-5, @@ -32,7 +32,7 @@ public static void Example() }; // Create data training pipeline. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticGradientDescent(options); + var pipeline = mlContext.BinaryClassification.Trainers.SgdCalibrated(options); // Fit this pipeline to the training data. var model = pipeline.Fit(trainTestData.TrainSet); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs index cb25625544..bb8328ce67 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/SymbolicStochasticGradientDescentWithOptions.cs @@ -20,7 +20,7 @@ public static void Example() var split = mlContext.BinaryClassification.TrainTestSplit(data, testFraction: 0.1); // Create data training pipeline var pipeline = mlContext.BinaryClassification.Trainers.SymbolicSgd( - new ML.Trainers.SymbolicSgdBinaryClassificationTrainer.Options() + new ML.Trainers.SymbolicSgdTrainer.Options() { LearningRate = 0.2f, NumberOfIterations = 10, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs index f54f4e8685..d6eadb5ad9 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs @@ -29,7 +29,7 @@ public static void Example() string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) .Append(ml.Clustering.Trainers.KMeansPlusPlus( - new KMeansPlusPlusClusteringTrainer.Options + new KMeansPlusPlusTrainer.Options { FeatureColumnName = outputColumnName, NumberOfClusters = 2, diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs index d99d3368d7..819d3653a4 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs @@ -30,7 +30,7 @@ public static void Example() // Convert the string labels into key types. mlContext.Transforms.Conversion.MapValueToKey("Label") // Apply StochasticDualCoordinateAscent multiclass trainer. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); // Split the data into training and test sets. Only training set is used in fitting // the created pipeline. Metrics are computed on the test. diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs index 6092a33c1a..ac9bbf4bc8 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs @@ -26,7 +26,7 @@ public static void Example() // CC 1.216908,1.248052,1.391902,0.4326252,1.099942,0.9262842,1.334019,1.08762,0.9468155,0.4811099 // DD 0.7871246,1.053327,0.8971719,1.588544,1.242697,1.362964,0.6303943,0.9810045,0.9431419,1.557455 - var options = new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options + var options = new SdcaMulticlassClassificationTrainer.Options { // Add custom loss LossFunction = new HingeLoss.Options(), @@ -41,7 +41,7 @@ public static void Example() // Convert the string labels into key types. mlContext.Transforms.Conversion.MapValueToKey("Label") // Apply StochasticDualCoordinateAscent multiclass trainer. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(options)); + .Append(mlContext.MulticlassClassification.Trainers.Sdca(options)); // Split the data into training and test sets. Only training set is used in fitting // the created pipeline. Metrics are computed on the test. diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs index 648133b326..ba47977e11 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs @@ -25,7 +25,7 @@ public static void Example() // Create a matrix factorization trainer which may consume "Value" as the training label, "MatrixColumnIndex" as the // matrix's column index, and "MatrixRowIndex" as the matrix's row index. Here nameof(...) is used to extract field // names' in MatrixElement class. - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquares.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquares.cs index 7fe79c9a43..14a4895f88 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquares.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquares.cs @@ -43,7 +43,7 @@ public static void Example() // Create the estimator, here we only need OrdinaryLeastSquares trainer // as data is already processed in a form consumable by the trainer - var pipeline = mlContext.Regression.Trainers.OrdinaryLeastSquares(); + var pipeline = mlContext.Regression.Trainers.Ols(); var model = pipeline.Fit(split.TrainSet); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquaresWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquaresWithOptions.cs index cbbd09342e..6cbb6cc794 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquaresWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/OrdinaryLeastSquaresWithOptions.cs @@ -44,7 +44,7 @@ public static void Example() // Create the estimator, here we only need OrdinaryLeastSquares trainer // as data is already processed in a form consumable by the trainer - var pipeline = mlContext.Regression.Trainers.OrdinaryLeastSquares(new OrdinaryLeastSquaresRegressionTrainer.Options() + var pipeline = mlContext.Regression.Trainers.Ols(new OlsTrainer.Options() { L2Regularization = 0.1f, CalculateStatistics = false diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs index 7ce8122f78..1418dbc460 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs @@ -22,7 +22,7 @@ public static void Example() var split = mlContext.MulticlassClassification.TrainTestSplit(dataView, testFraction: 0.1); // Train the model. - var pipeline = mlContext.Regression.Trainers.StochasticDualCoordinateAscent(); + var pipeline = mlContext.Regression.Trainers.Sdca(); var model = pipeline.Fit(split.TrainSet); // Do prediction on the test set. diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs index 535c1b32ae..8172699398 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs @@ -21,7 +21,7 @@ public static void Example() var split = mlContext.MulticlassClassification.TrainTestSplit(dataView, testFraction: 0.1); // Create trainer options. - var options = new StochasticDualCoordinateAscentRegressionTrainer.Options + var options = new SdcaRegressionTrainer.Options { // Make the convergence tolerance tighter. ConvergenceTolerance = 0.02f, @@ -32,7 +32,7 @@ public static void Example() }; // Train the model. - var pipeline = mlContext.Regression.Trainers.StochasticDualCoordinateAscent(options); + var pipeline = mlContext.Regression.Trainers.Sdca(options); var model = pipeline.Fit(split.TrainSet); // Do prediction on the test set. diff --git a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs index 316827475b..92c3b2e21b 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Binary/EnsembleTrainer.cs @@ -57,8 +57,8 @@ public Arguments() { ComponentFactoryUtils.CreateFromFunction( env => { - var trainerEstimator = new LinearSvmBinaryClassificationTrainer(env); - return TrainerUtils.MapTrainerEstimatorToTrainer(env, trainerEstimator); }) }; diff --git a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs index 651dfe57c8..ab17f5f28e 100644 --- a/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs +++ b/src/Microsoft.ML.Ensemble/Trainer/Regression/RegressionEnsembleTrainer.cs @@ -52,8 +52,8 @@ public Arguments() { ComponentFactoryUtils.CreateFromFunction( env => { - var trainerEstimator = new OnlineGradientDescentRegressionTrainer(env); - return TrainerUtils.MapTrainerEstimatorToTrainer(env, trainerEstimator); }) }; diff --git a/src/Microsoft.ML.FastTree/FastTreeArguments.cs b/src/Microsoft.ML.FastTree/FastTreeArguments.cs index 9be0032b4a..6d64e40ca5 100644 --- a/src/Microsoft.ML.FastTree/FastTreeArguments.cs +++ b/src/Microsoft.ML.FastTree/FastTreeArguments.cs @@ -11,7 +11,7 @@ [assembly: EntryPointModule(typeof(FastTreeBinaryClassificationTrainer.Options))] [assembly: EntryPointModule(typeof(FastTreeRegressionTrainer.Options))] -[assembly: EntryPointModule(typeof(FastTreeTweedieRegressionTrainer.Options))] +[assembly: EntryPointModule(typeof(FastTreeTweedieTrainer.Options))] [assembly: EntryPointModule(typeof(FastTreeRankingTrainer.Options))] namespace Microsoft.ML.Trainers.FastTree @@ -136,7 +136,7 @@ public Options() } } - public sealed partial class FastTreeTweedieRegressionTrainer + public sealed partial class FastTreeTweedieTrainer { [TlcModule.Component(Name = LoadNameValue, FriendlyName = UserNameValue, Desc = Summary)] public sealed class Options : BoostedTreeOptions, IFastTreeTrainerFactory @@ -179,7 +179,7 @@ public Options() EarlyStoppingMetric = EarlyStoppingMetric.L1Norm; // Use L1 by default. } - ITrainer IComponentFactory.CreateComponent(IHostEnvironment env) => new FastTreeTweedieRegressionTrainer(env, this); + ITrainer IComponentFactory.CreateComponent(IHostEnvironment env) => new FastTreeTweedieTrainer(env, this); } } diff --git a/src/Microsoft.ML.FastTree/FastTreeRegression.cs b/src/Microsoft.ML.FastTree/FastTreeRegression.cs index 53021a05a8..ff36755b0e 100644 --- a/src/Microsoft.ML.FastTree/FastTreeRegression.cs +++ b/src/Microsoft.ML.FastTree/FastTreeRegression.cs @@ -391,7 +391,7 @@ internal sealed class ObjectiveImpl : ObjectiveFunctionBase, IStepSearch { private readonly float[] _labels; - public ObjectiveImpl(Dataset trainData, GeneralizedAdditiveModelRegressionTrainer.Options options) : + public ObjectiveImpl(Dataset trainData, GamRegressionTrainer.Options options) : base( trainData, options.LearningRate, diff --git a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs index c76b53e778..fa2e455d01 100644 --- a/src/Microsoft.ML.FastTree/FastTreeTweedie.cs +++ b/src/Microsoft.ML.FastTree/FastTreeTweedie.cs @@ -14,11 +14,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(FastTreeTweedieRegressionTrainer.Summary, typeof(FastTreeTweedieRegressionTrainer), typeof(FastTreeTweedieRegressionTrainer.Options), +[assembly: LoadableClass(FastTreeTweedieTrainer.Summary, typeof(FastTreeTweedieTrainer), typeof(FastTreeTweedieTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer), typeof(SignatureFeatureScorerTrainer) }, - FastTreeTweedieRegressionTrainer.UserNameValue, - FastTreeTweedieRegressionTrainer.LoadNameValue, - FastTreeTweedieRegressionTrainer.ShortName)] + FastTreeTweedieTrainer.UserNameValue, + FastTreeTweedieTrainer.LoadNameValue, + FastTreeTweedieTrainer.ShortName)] [assembly: LoadableClass(typeof(FastTreeTweedieModelParameters), null, typeof(SignatureLoadModel), "FastTree Tweedie Regression Executor", @@ -30,8 +30,8 @@ namespace Microsoft.ML.Trainers.FastTree // Yang, Quan, and Zou. "Insurance Premium Prediction via Gradient Tree-Boosted Tweedie Compound Poisson Models." // https://arxiv.org/pdf/1508.06378.pdf /// - public sealed partial class FastTreeTweedieRegressionTrainer - : BoostingFastTreeTrainerBase, FastTreeTweedieModelParameters> + public sealed partial class FastTreeTweedieTrainer + : BoostingFastTreeTrainerBase, FastTreeTweedieModelParameters> { internal const string LoadNameValue = "FastTreeTweedieRegression"; internal const string UserNameValue = "FastTree (Boosted Trees) Tweedie Regression"; @@ -47,7 +47,7 @@ public sealed partial class FastTreeTweedieRegressionTrainer private SchemaShape.Column[] _outputColumns; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -57,7 +57,7 @@ public sealed partial class FastTreeTweedieRegressionTrainer /// The minimal number of documents allowed in a leaf of a regression tree, out of the subsampled data. /// The max number of leaves in each regression tree. /// Total number of decision trees to create in the ensemble. - internal FastTreeTweedieRegressionTrainer(IHostEnvironment env, + internal FastTreeTweedieTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -74,11 +74,11 @@ internal FastTreeTweedieRegressionTrainer(IHostEnvironment env, } /// - /// Initializes a new instance of by using the class. + /// Initializes a new instance of by using the class. /// /// The instance of . /// Algorithm advanced settings. - internal FastTreeTweedieRegressionTrainer(IHostEnvironment env, Options options) + internal FastTreeTweedieTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { Initialize(); @@ -321,7 +321,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -518,18 +518,18 @@ private protected override void Map(in VBuffer src, ref float dst) internal static partial class FastTree { [TlcModule.EntryPoint(Name = "Trainers.FastTreeTweedieRegressor", - Desc = FastTreeTweedieRegressionTrainer.Summary, - UserName = FastTreeTweedieRegressionTrainer.UserNameValue, - ShortName = FastTreeTweedieRegressionTrainer.ShortName)] - public static CommonOutputs.RegressionOutput TrainTweedieRegression(IHostEnvironment env, FastTreeTweedieRegressionTrainer.Options input) + Desc = FastTreeTweedieTrainer.Summary, + UserName = FastTreeTweedieTrainer.UserNameValue, + ShortName = FastTreeTweedieTrainer.ShortName)] + public static CommonOutputs.RegressionOutput TrainTweedieRegression(IHostEnvironment env, FastTreeTweedieTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainTweeedie"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new FastTreeTweedieRegressionTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new FastTreeTweedieTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName)); diff --git a/src/Microsoft.ML.FastTree/GamClassification.cs b/src/Microsoft.ML.FastTree/GamClassification.cs index 7848ff9a86..efedfc55d1 100644 --- a/src/Microsoft.ML.FastTree/GamClassification.cs +++ b/src/Microsoft.ML.FastTree/GamClassification.cs @@ -14,12 +14,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(GeneralizedAdditiveModelBinaryClassificationTrainer.Summary, - typeof(GeneralizedAdditiveModelBinaryClassificationTrainer), typeof(GeneralizedAdditiveModelBinaryClassificationTrainer.Options), +[assembly: LoadableClass(GamBinaryClassificationTrainer.Summary, + typeof(GamBinaryClassificationTrainer), typeof(GamBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - GeneralizedAdditiveModelBinaryClassificationTrainer.UserNameValue, - GeneralizedAdditiveModelBinaryClassificationTrainer.LoadNameValue, - GeneralizedAdditiveModelBinaryClassificationTrainer.ShortName, DocName = "trainer/GAM.md")] + GamBinaryClassificationTrainer.UserNameValue, + GamBinaryClassificationTrainer.LoadNameValue, + GamBinaryClassificationTrainer.ShortName, DocName = "trainer/GAM.md")] [assembly: LoadableClass(typeof(IPredictorProducing), typeof(BinaryClassificationGamModelParameters), null, typeof(SignatureLoadModel), "GAM Binary Class Predictor", @@ -27,8 +27,8 @@ namespace Microsoft.ML.Trainers.FastTree { - public sealed class GeneralizedAdditiveModelBinaryClassificationTrainer : - GeneralizedAdditiveModeTrainerBase>, CalibratedModelParametersBase> { @@ -48,16 +48,16 @@ public sealed class Options : OptionsBase private protected override bool NeedCalibration => true; /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal GeneralizedAdditiveModelBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal GamBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { _sigmoidParameter = 1; } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -66,7 +66,7 @@ internal GeneralizedAdditiveModelBinaryClassificationTrainer(IHostEnvironment en /// The number of iterations to use in learning the features. /// The learning rate. GAMs work best with a small learning rate. /// The maximum number of bins to use to approximate features - internal GeneralizedAdditiveModelBinaryClassificationTrainer(IHostEnvironment env, + internal GamBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string rowGroupColumnName = null, @@ -142,7 +142,7 @@ private protected override BinaryPredictionTransformer new BinaryPredictionTransformer>(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public BinaryPredictionTransformer> Fit(IDataView trainData, IDataView validationData) diff --git a/src/Microsoft.ML.FastTree/GamRegression.cs b/src/Microsoft.ML.FastTree/GamRegression.cs index 91e41a085e..dce69c62d4 100644 --- a/src/Microsoft.ML.FastTree/GamRegression.cs +++ b/src/Microsoft.ML.FastTree/GamRegression.cs @@ -11,12 +11,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(GeneralizedAdditiveModelRegressionTrainer.Summary, - typeof(GeneralizedAdditiveModelRegressionTrainer), typeof(GeneralizedAdditiveModelRegressionTrainer.Options), +[assembly: LoadableClass(GamRegressionTrainer.Summary, + typeof(GamRegressionTrainer), typeof(GamRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - GeneralizedAdditiveModelRegressionTrainer.UserNameValue, - GeneralizedAdditiveModelRegressionTrainer.LoadNameValue, - GeneralizedAdditiveModelRegressionTrainer.ShortName, DocName = "trainer/GAM.md")] + GamRegressionTrainer.UserNameValue, + GamRegressionTrainer.LoadNameValue, + GamRegressionTrainer.ShortName, DocName = "trainer/GAM.md")] [assembly: LoadableClass(typeof(RegressionGamModelParameters), null, typeof(SignatureLoadModel), "GAM Regression Predictor", @@ -24,7 +24,7 @@ namespace Microsoft.ML.Trainers.FastTree { - public sealed class GeneralizedAdditiveModelRegressionTrainer : GeneralizedAdditiveModeTrainerBase, RegressionGamModelParameters> + public sealed class GamRegressionTrainer : GamTrainerBase, RegressionGamModelParameters> { public partial class Options : OptionsBase { @@ -39,7 +39,7 @@ public partial class Options : OptionsBase private protected override PredictionKind PredictionKind => PredictionKind.Regression; - internal GeneralizedAdditiveModelRegressionTrainer(IHostEnvironment env, Options options) + internal GamRegressionTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { } /// @@ -52,7 +52,7 @@ internal GeneralizedAdditiveModelRegressionTrainer(IHostEnvironment env, Options /// The number of iterations to use in learning the features. /// The learning rate. GAMs work best with a small learning rate. /// The maximum number of bins to use to approximate features - internal GeneralizedAdditiveModelRegressionTrainer(IHostEnvironment env, + internal GamRegressionTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string rowGroupColumnName = null, @@ -91,7 +91,7 @@ private protected override RegressionPredictionTransformer new RegressionPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public RegressionPredictionTransformer Fit(IDataView trainData, IDataView validationData) diff --git a/src/Microsoft.ML.FastTree/GamTrainer.cs b/src/Microsoft.ML.FastTree/GamTrainer.cs index 41ede647bc..187bd9e806 100644 --- a/src/Microsoft.ML.FastTree/GamTrainer.cs +++ b/src/Microsoft.ML.FastTree/GamTrainer.cs @@ -49,9 +49,9 @@ namespace Microsoft.ML.Trainers.FastTree /// ]]> /// /// - public abstract partial class GeneralizedAdditiveModeTrainerBase : TrainerEstimatorBase + public abstract partial class GamTrainerBase : TrainerEstimatorBase where TTransformer : ISingleFeaturePredictionTransformer - where TOptions : GeneralizedAdditiveModeTrainerBase.OptionsBase, new() + where TOptions : GamTrainerBase.OptionsBase, new() where TPredictor : class { public abstract class OptionsBase : TrainerInputBaseWithWeight @@ -146,7 +146,7 @@ public abstract class OptionsBase : TrainerInputBaseWithWeight private protected IParallelTraining ParallelTraining; - private protected GeneralizedAdditiveModeTrainerBase(IHostEnvironment env, + private protected GamTrainerBase(IHostEnvironment env, string name, SchemaShape.Column label, string featureColumnName, @@ -174,7 +174,7 @@ private protected GeneralizedAdditiveModeTrainerBase(IHostEnvironment env, InitializeThreads(); } - private protected GeneralizedAdditiveModeTrainerBase(IHostEnvironment env, TOptions options, string name, SchemaShape.Column label) + private protected GamTrainerBase(IHostEnvironment env, TOptions options, string name, SchemaShape.Column label) : base(Contracts.CheckRef(env, nameof(env)).Register(name), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), label, TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { @@ -663,30 +663,30 @@ public Stump(uint splitPoint, double lteValue, double gtValue) internal static class Gam { - [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelRegressor", Desc = GeneralizedAdditiveModelRegressionTrainer.Summary, UserName = GeneralizedAdditiveModelRegressionTrainer.UserNameValue, ShortName = GeneralizedAdditiveModelRegressionTrainer.ShortName)] - public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, GeneralizedAdditiveModelRegressionTrainer.Options input) + [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelRegressor", Desc = GamRegressionTrainer.Summary, UserName = GamRegressionTrainer.UserNameValue, ShortName = GamRegressionTrainer.ShortName)] + public static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment env, GamRegressionTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainGAM"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new GeneralizedAdditiveModelRegressionTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new GamRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } - [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelBinaryClassifier", Desc = GeneralizedAdditiveModelBinaryClassificationTrainer.Summary, UserName = GeneralizedAdditiveModelBinaryClassificationTrainer.UserNameValue, ShortName = GeneralizedAdditiveModelBinaryClassificationTrainer.ShortName)] - public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, GeneralizedAdditiveModelBinaryClassificationTrainer.Options input) + [TlcModule.EntryPoint(Name = "Trainers.GeneralizedAdditiveModelBinaryClassifier", Desc = GamBinaryClassificationTrainer.Summary, UserName = GamBinaryClassificationTrainer.UserNameValue, ShortName = GamBinaryClassificationTrainer.ShortName)] + public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, GamBinaryClassificationTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainGAM"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new GeneralizedAdditiveModelBinaryClassificationTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new GamBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } diff --git a/src/Microsoft.ML.FastTree/RandomForestClassification.cs b/src/Microsoft.ML.FastTree/RandomForestClassification.cs index a00b39df04..320eef56c6 100644 --- a/src/Microsoft.ML.FastTree/RandomForestClassification.cs +++ b/src/Microsoft.ML.FastTree/RandomForestClassification.cs @@ -14,12 +14,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers.FastTree; -[assembly: LoadableClass(FastForestClassification.Summary, typeof(FastForestClassification), typeof(FastForestClassification.Options), +[assembly: LoadableClass(FastForestBinaryClassificationTrainer.Summary, typeof(FastForestBinaryClassificationTrainer), typeof(FastForestBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureTreeEnsembleTrainer), typeof(SignatureFeatureScorerTrainer) }, - FastForestClassification.UserNameValue, - FastForestClassification.LoadNameValue, + FastForestBinaryClassificationTrainer.UserNameValue, + FastForestBinaryClassificationTrainer.LoadNameValue, "FastForest", - FastForestClassification.ShortName, + FastForestBinaryClassificationTrainer.ShortName, "ffc")] [assembly: LoadableClass(typeof(IPredictorProducing), typeof(FastForestClassificationModelParameters), null, typeof(SignatureLoadModel), @@ -106,8 +106,8 @@ private static IPredictorProducing Create(IHostEnvironment env, ModelLoad } /// - public sealed partial class FastForestClassification : - RandomForestTrainerBase, FastForestClassificationModelParameters> + public sealed partial class FastForestBinaryClassificationTrainer : + RandomForestTrainerBase, FastForestClassificationModelParameters> { public sealed class Options : FastForestOptionsBase { @@ -132,7 +132,7 @@ public sealed class Options : FastForestOptionsBase private protected override bool NeedCalibration => true; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The private instance of . /// The name of the label column. @@ -141,7 +141,7 @@ public sealed class Options : FastForestOptionsBase /// The max number of leaves in each regression tree. /// Total number of decision trees to create in the ensemble. /// The minimal number of documents allowed in a leaf of a regression tree, out of the subsampled data. - internal FastForestClassification(IHostEnvironment env, + internal FastForestBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -155,11 +155,11 @@ internal FastForestClassification(IHostEnvironment env, } /// - /// Initializes a new instance of by using the class. + /// Initializes a new instance of by using the class. /// /// The instance of . /// Algorithm advanced settings. - internal FastForestClassification(IHostEnvironment env, Options options) + internal FastForestBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { } @@ -211,7 +211,7 @@ private protected override BinaryPredictionTransformer new BinaryPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Trains a using both training and validation data, returns + /// Trains a using both training and validation data, returns /// a . /// public BinaryPredictionTransformer Fit(IDataView trainData, IDataView validationData) @@ -249,18 +249,18 @@ protected override void GetGradientInOneQuery(int query, int threadIndex) internal static partial class FastForest { [TlcModule.EntryPoint(Name = "Trainers.FastForestBinaryClassifier", - Desc = FastForestClassification.Summary, - UserName = FastForestClassification.UserNameValue, - ShortName = FastForestClassification.ShortName)] - public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, FastForestClassification.Options input) + Desc = FastForestBinaryClassificationTrainer.Summary, + UserName = FastForestBinaryClassificationTrainer.UserNameValue, + ShortName = FastForestBinaryClassificationTrainer.ShortName)] + public static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnvironment env, FastForestBinaryClassificationTrainer.Options input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("TrainFastForest"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, - () => new FastForestClassification(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new FastForestBinaryClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.RowGroupColumnName), diff --git a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs index 57a955b23f..14968c6ad1 100644 --- a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs +++ b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs @@ -136,7 +136,7 @@ public static FastTreeRankingTrainer FastTree(this RankingCatalog.RankingTrainer } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// The name of the label column. @@ -145,7 +145,7 @@ public static FastTreeRankingTrainer FastTree(this RankingCatalog.RankingTrainer /// The number of iterations to use in learning the features. /// The maximum number of bins to use to approximate features. /// The learning rate. GAMs work best with a small learning rate. - public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdditiveModel(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static GamBinaryClassificationTrainer Gam(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -155,24 +155,24 @@ public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdd { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new GeneralizedAdditiveModelBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); + return new GamBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// Algorithm advanced settings. - public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdditiveModel(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - GeneralizedAdditiveModelBinaryClassificationTrainer.Options options) + public static GamBinaryClassificationTrainer Gam(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + GamBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new GeneralizedAdditiveModelBinaryClassificationTrainer(env, options); + return new GamBinaryClassificationTrainer(env, options); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// The name of the label column. @@ -181,7 +181,7 @@ public static GeneralizedAdditiveModelBinaryClassificationTrainer GeneralizedAdd /// The number of iterations to use in learning the features. /// The maximum number of bins to use to approximate features. /// The learning rate. GAMs work best with a small learning rate. - public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel(this RegressionCatalog.RegressionTrainers catalog, + public static GamRegressionTrainer Gam(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -191,24 +191,24 @@ public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new GeneralizedAdditiveModelRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); + return new GamRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, learningRate, maximumBinCountPerFeature); } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models trained with the . /// /// The . /// Algorithm advanced settings. - public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel(this RegressionCatalog.RegressionTrainers catalog, - GeneralizedAdditiveModelRegressionTrainer.Options options) + public static GamRegressionTrainer Gam(this RegressionCatalog.RegressionTrainers catalog, + GamRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new GeneralizedAdditiveModelRegressionTrainer(env, options); + return new GamRegressionTrainer(env, options); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// The name of the label column. @@ -218,7 +218,7 @@ public static GeneralizedAdditiveModelRegressionTrainer GeneralizedAdditiveModel /// The maximum number of leaves per decision tree. /// The minimal number of datapoints allowed in a leaf of the tree, out of the subsampled data. /// The learning rate. - public static FastTreeTweedieRegressionTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, + public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -229,22 +229,22 @@ public static FastTreeTweedieRegressionTrainer FastTreeTweedie(this RegressionCa { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastTreeTweedieRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves, learningRate); + return new FastTreeTweedieTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves, learningRate); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// Algorithm advanced settings. - public static FastTreeTweedieRegressionTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, - FastTreeTweedieRegressionTrainer.Options options) + public static FastTreeTweedieTrainer FastTreeTweedie(this RegressionCatalog.RegressionTrainers catalog, + FastTreeTweedieTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastTreeTweedieRegressionTrainer(env, options); + return new FastTreeTweedieTrainer(env, options); } /// @@ -286,7 +286,7 @@ public static FastForestRegressionTrainer FastForest(this RegressionCatalog.Regr } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// The name of the label column. @@ -295,7 +295,7 @@ public static FastForestRegressionTrainer FastForest(this RegressionCatalog.Regr /// Total number of decision trees to create in the ensemble. /// The maximum number of leaves per decision tree. /// The minimal number of datapoints allowed in a leaf of the tree, out of the subsampled data. - public static FastForestClassification FastForest(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static FastForestBinaryClassificationTrainer FastForest(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -305,22 +305,22 @@ public static FastForestClassification FastForest(this BinaryClassificationCatal { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastForestClassification(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves); + return new FastForestBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfLeaves, numberOfTrees, minDatapointsInLeaves); } /// - /// Predict a target using a decision tree regression model trained with the . + /// Predict a target using a decision tree regression model trained with the . /// /// The . /// Algorithm advanced settings. - public static FastForestClassification FastForest(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - FastForestClassification.Options options) + public static FastForestBinaryClassificationTrainer FastForest(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + FastForestBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new FastForestClassification(env, options); + return new FastForestBinaryClassificationTrainer(env, options); } } } diff --git a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs index 1f72d73e6a..ed4d852b30 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs @@ -9,12 +9,12 @@ namespace Microsoft.ML { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// The name of the feature column. @@ -26,25 +26,25 @@ public static class KMeansClusteringExtensions /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs)] /// ]]> /// - public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, + public static KMeansPlusPlusTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, - int numberOfClusters = KMeansPlusPlusClusteringTrainer.Defaults.NumberOfClusters) + int numberOfClusters = KMeansPlusPlusTrainer.Defaults.NumberOfClusters) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new KMeansPlusPlusClusteringTrainer.Options + var options = new KMeansPlusPlusTrainer.Options { FeatureColumnName = featureColumnName, ExampleWeightColumnName = exampleWeightColumnName, NumberOfClusters = numberOfClusters }; - return new KMeansPlusPlusClusteringTrainer(env, options); + return new KMeansPlusPlusTrainer(env, options); } /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// Algorithm advanced options. @@ -54,13 +54,13 @@ public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCata /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs)] /// ]]> /// - public static KMeansPlusPlusClusteringTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusClusteringTrainer.Options options) + public static KMeansPlusPlusTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new KMeansPlusPlusClusteringTrainer(env, options); + return new KMeansPlusPlusTrainer(env, options); } } } diff --git a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs index e7c26b4eab..498fa2c861 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs @@ -17,18 +17,18 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(KMeansPlusPlusClusteringTrainer.Summary, typeof(KMeansPlusPlusClusteringTrainer), typeof(KMeansPlusPlusClusteringTrainer.Options), +[assembly: LoadableClass(KMeansPlusPlusTrainer.Summary, typeof(KMeansPlusPlusTrainer), typeof(KMeansPlusPlusTrainer.Options), new[] { typeof(SignatureClusteringTrainer), typeof(SignatureTrainer) }, - KMeansPlusPlusClusteringTrainer.UserNameValue, - KMeansPlusPlusClusteringTrainer.LoadNameValue, - KMeansPlusPlusClusteringTrainer.ShortName, "KMeans")] + KMeansPlusPlusTrainer.UserNameValue, + KMeansPlusPlusTrainer.LoadNameValue, + KMeansPlusPlusTrainer.ShortName, "KMeans")] -[assembly: LoadableClass(typeof(void), typeof(KMeansPlusPlusClusteringTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] +[assembly: LoadableClass(typeof(void), typeof(KMeansPlusPlusTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] namespace Microsoft.ML.Trainers { /// - public class KMeansPlusPlusClusteringTrainer : TrainerEstimatorBase, KMeansModelParameters> + public class KMeansPlusPlusTrainer : TrainerEstimatorBase, KMeansModelParameters> { internal const string LoadNameValue = "KMeansPlusPlus"; internal const string UserNameValue = "KMeans++ Clustering"; @@ -112,11 +112,11 @@ public sealed class Options : UnsupervisedTrainerInputBaseWithWeight private protected override PredictionKind PredictionKind => PredictionKind.Clustering; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The to use. /// The advanced options of the algorithm. - internal KMeansPlusPlusClusteringTrainer(IHostEnvironment env, Options options) + internal KMeansPlusPlusTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), default, TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { Host.CheckValue(options, nameof(options)); @@ -245,7 +245,7 @@ internal static CommonOutputs.ClusteringOutput TrainKMeans(IHostEnvironment env, EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new KMeansPlusPlusClusteringTrainer(host, input), + () => new KMeansPlusPlusTrainer(host, input), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } @@ -739,10 +739,10 @@ public static void Initialize(IHost host, int numThreads, IChannel ch, FeatureFl host.CheckValue(ch, nameof(ch)); ch.CheckValue(cursorFactory, nameof(cursorFactory)); ch.CheckValue(centroids, nameof(centroids)); - ch.CheckUserArg(numThreads > 0, nameof(KMeansPlusPlusClusteringTrainer.Options.NumberOfThreads), "Must be positive"); - ch.CheckUserArg(k > 0, nameof(KMeansPlusPlusClusteringTrainer.Options.NumberOfClusters), "Must be positive"); + ch.CheckUserArg(numThreads > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfThreads), "Must be positive"); + ch.CheckUserArg(k > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfClusters), "Must be positive"); ch.CheckParam(dimensionality > 0, nameof(dimensionality), "Must be positive"); - ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansPlusPlusClusteringTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); + ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansPlusPlusTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); int numRounds; int numSamplesPerRound; diff --git a/src/Microsoft.ML.Mkl.Components/ComputeLRTrainingStdThroughHal.cs b/src/Microsoft.ML.Mkl.Components/ComputeLRTrainingStdThroughHal.cs index 02bc7e11d2..aec953c79e 100644 --- a/src/Microsoft.ML.Mkl.Components/ComputeLRTrainingStdThroughHal.cs +++ b/src/Microsoft.ML.Mkl.Components/ComputeLRTrainingStdThroughHal.cs @@ -10,7 +10,7 @@ namespace Microsoft.ML.Trainers { - using MklOls = OrdinaryLeastSquaresRegressionTrainer.Mkl; + using MklOls = OlsTrainer.Mkl; public sealed class ComputeLRTrainingStdThroughMkl : ComputeLogisticRegressionStandardDeviation { diff --git a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs index f0d44306cd..7f2d9affe4 100644 --- a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs +++ b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs @@ -10,12 +10,12 @@ namespace Microsoft.ML { /// - /// The trainer catalog extensions for the and . + /// The trainer catalog extensions for the and . /// public static class MklComponentsCatalog { /// - /// Predict a target using a linear regression model trained with the . + /// Predict a target using a linear regression model trained with the . /// /// The . /// The name of the label column. @@ -28,28 +28,28 @@ public static class MklComponentsCatalog /// ]]> /// /// - public static OrdinaryLeastSquaresRegressionTrainer OrdinaryLeastSquares(this RegressionCatalog.RegressionTrainers catalog, + public static OlsTrainer Ols(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new OrdinaryLeastSquaresRegressionTrainer.Options + var options = new OlsTrainer.Options { LabelColumnName = labelColumnName, FeatureColumnName = featureColumnName, ExampleWeightColumnName = exampleWeightColumnName }; - return new OrdinaryLeastSquaresRegressionTrainer(env, options); + return new OlsTrainer(env, options); } /// - /// Predict a target using a linear regression model trained with the . + /// Predict a target using a linear regression model trained with the . /// /// The . - /// Algorithm advanced options. See . + /// Algorithm advanced options. See . /// /// /// /// /// - public static OrdinaryLeastSquaresRegressionTrainer OrdinaryLeastSquares( + public static OlsTrainer Ols( this RegressionCatalog.RegressionTrainers catalog, - OrdinaryLeastSquaresRegressionTrainer.Options options) + OlsTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new OrdinaryLeastSquaresRegressionTrainer(env, options); + return new OlsTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with the . + /// Predict a target using a linear binary classification model trained with the . /// /// The . /// The name of the label column. @@ -82,28 +82,28 @@ public static OrdinaryLeastSquaresRegressionTrainer OrdinaryLeastSquares( /// ]]> /// /// - public static SymbolicSgdBinaryClassificationTrainer SymbolicSgd(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static SymbolicSgdTrainer SymbolicSgd(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, - int numberOfIterations = SymbolicSgdBinaryClassificationTrainer.Defaults.NumberOfIterations) + int numberOfIterations = SymbolicSgdTrainer.Defaults.NumberOfIterations) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new SymbolicSgdBinaryClassificationTrainer.Options + var options = new SymbolicSgdTrainer.Options { LabelColumnName = labelColumnName, FeatureColumnName = featureColumnName, }; - return new SymbolicSgdBinaryClassificationTrainer(env, options); + return new SymbolicSgdTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with the . + /// Predict a target using a linear binary classification model trained with the . /// /// The . - /// Algorithm advanced options. See . + /// Algorithm advanced options. See . /// /// /// /// /// - public static SymbolicSgdBinaryClassificationTrainer SymbolicSgd( + public static SymbolicSgdTrainer SymbolicSgd( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - SymbolicSgdBinaryClassificationTrainer.Options options) + SymbolicSgdTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new SymbolicSgdBinaryClassificationTrainer(env, options); + return new SymbolicSgdTrainer(env, options); } /// diff --git a/src/Microsoft.ML.Mkl.Components/OlsLinearRegression.cs b/src/Microsoft.ML.Mkl.Components/OlsLinearRegression.cs index 2e94bea742..377cbfadf5 100644 --- a/src/Microsoft.ML.Mkl.Components/OlsLinearRegression.cs +++ b/src/Microsoft.ML.Mkl.Components/OlsLinearRegression.cs @@ -18,22 +18,22 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(OrdinaryLeastSquaresRegressionTrainer.Summary, typeof(OrdinaryLeastSquaresRegressionTrainer), typeof(OrdinaryLeastSquaresRegressionTrainer.Options), +[assembly: LoadableClass(OlsTrainer.Summary, typeof(OlsTrainer), typeof(OlsTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - OrdinaryLeastSquaresRegressionTrainer.UserNameValue, - OrdinaryLeastSquaresRegressionTrainer.LoadNameValue, - OrdinaryLeastSquaresRegressionTrainer.ShortName)] + OlsTrainer.UserNameValue, + OlsTrainer.LoadNameValue, + OlsTrainer.ShortName)] [assembly: LoadableClass(typeof(OrdinaryLeastSquaresRegressionModelParameters), null, typeof(SignatureLoadModel), "OLS Linear Regression Executor", OrdinaryLeastSquaresRegressionModelParameters.LoaderSignature)] -[assembly: LoadableClass(typeof(void), typeof(OrdinaryLeastSquaresRegressionTrainer), null, typeof(SignatureEntryPointModule), OrdinaryLeastSquaresRegressionTrainer.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(OlsTrainer), null, typeof(SignatureEntryPointModule), OlsTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { /// - public sealed class OrdinaryLeastSquaresRegressionTrainer : TrainerEstimatorBase, OrdinaryLeastSquaresRegressionModelParameters> + public sealed class OlsTrainer : TrainerEstimatorBase, OrdinaryLeastSquaresRegressionModelParameters> { /// Advanced options for trainer. public sealed class Options : TrainerInputBaseWithWeight @@ -74,9 +74,9 @@ public sealed class Options : TrainerInputBaseWithWeight public override TrainerInfo Info => _info; /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal OrdinaryLeastSquaresRegressionTrainer(IHostEnvironment env, Options options) + internal OlsTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName), TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { @@ -501,7 +501,7 @@ internal static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment EntryPointUtils.CheckInputArgs(host, options); return TrainerEntryPointsUtils.Train(host, options, - () => new OrdinaryLeastSquaresRegressionTrainer(host, options), + () => new OlsTrainer(host, options), () => TrainerEntryPointsUtils.FindColumn(host, options.TrainingData.Schema, options.LabelColumnName), () => TrainerEntryPointsUtils.FindColumn(host, options.TrainingData.Schema, options.ExampleWeightColumnName)); } @@ -546,7 +546,7 @@ private static VersionInfo GetVersionInfo() /// are all null. A model may not have per parameter statistics because either /// there were not more examples than parameters in the model, or because they /// were explicitly suppressed in training by setting - /// + /// /// to false. /// public bool HasStatistics => StandardErrors != null; diff --git a/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs b/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs index d413f70a4a..2182173fa5 100644 --- a/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs +++ b/src/Microsoft.ML.Mkl.Components/SymSgdClassificationTrainer.cs @@ -20,20 +20,20 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; -[assembly: LoadableClass(typeof(SymbolicSgdBinaryClassificationTrainer), typeof(SymbolicSgdBinaryClassificationTrainer.Options), +[assembly: LoadableClass(typeof(SymbolicSgdTrainer), typeof(SymbolicSgdTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - SymbolicSgdBinaryClassificationTrainer.UserNameValue, - SymbolicSgdBinaryClassificationTrainer.LoadNameValue, - SymbolicSgdBinaryClassificationTrainer.ShortName)] + SymbolicSgdTrainer.UserNameValue, + SymbolicSgdTrainer.LoadNameValue, + SymbolicSgdTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(SymbolicSgdBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), SymbolicSgdBinaryClassificationTrainer.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(SymbolicSgdTrainer), null, typeof(SignatureEntryPointModule), SymbolicSgdTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { using TPredictor = CalibratedModelParametersBase; /// - public sealed class SymbolicSgdBinaryClassificationTrainer : TrainerEstimatorBase, TPredictor> + public sealed class SymbolicSgdTrainer : TrainerEstimatorBase, TPredictor> { internal const string LoadNameValue = "SymbolicSGD"; internal const string UserNameValue = "Symbolic SGD (binary)"; @@ -196,9 +196,9 @@ private protected override TPredictor TrainModelCore(TrainContext context) private protected override PredictionKind PredictionKind => PredictionKind.BinaryClassification; /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal SymbolicSgdBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal SymbolicSgdTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { @@ -224,7 +224,7 @@ private protected override BinaryPredictionTransformer MakeTransform => new BinaryPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of using an already trained + /// Continues the training of using an already trained /// a . /// public BinaryPredictionTransformer Fit(IDataView trainData, LinearModelParameters modelParameters) @@ -242,8 +242,8 @@ private protected override SchemaShape.Column[] GetOutputColumnsCore(SchemaShape [TlcModule.EntryPoint(Name = "Trainers.SymSgdBinaryClassifier", Desc = "Train a symbolic SGD.", - UserName = SymbolicSgdBinaryClassificationTrainer.UserNameValue, - ShortName = SymbolicSgdBinaryClassificationTrainer.ShortName)] + UserName = SymbolicSgdTrainer.UserNameValue, + ShortName = SymbolicSgdTrainer.ShortName)] internal static CommonOutputs.BinaryClassificationOutput TrainSymSgd(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); @@ -252,7 +252,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainSymSgd(IHostEnviro EntryPointUtils.CheckInputArgs(host, options); return TrainerEntryPointsUtils.Train(host, options, - () => new SymbolicSgdBinaryClassificationTrainer(host, options), + () => new SymbolicSgdTrainer(host, options), () => TrainerEntryPointsUtils.FindColumn(host, options.TrainingData.Schema, options.LabelColumnName)); } @@ -325,7 +325,7 @@ public void Free() // giving an array, we are at _storage[_storageIndex][_indexInCurArray]. private int _indexInCurArray; // This is used to access AccelMemBudget, AccelChunkSize and UsedMemory - private readonly SymbolicSgdBinaryClassificationTrainer _trainer; + private readonly SymbolicSgdTrainer _trainer; private readonly IChannel _ch; @@ -337,7 +337,7 @@ public void Free() /// /// /// - public ArrayManager(SymbolicSgdBinaryClassificationTrainer trainer, IChannel ch) + public ArrayManager(SymbolicSgdTrainer trainer, IChannel ch) { _storage = new List(); // Setting the default value to 2^17. @@ -501,7 +501,7 @@ private sealed class InputDataManager : IDisposable // This is the index to go over the instances in instanceProperties private int _instanceIndex; // This is used to access AccelMemBudget, AccelChunkSize and UsedMemory - private readonly SymbolicSgdBinaryClassificationTrainer _trainer; + private readonly SymbolicSgdTrainer _trainer; private readonly IChannel _ch; // Whether memorySize was big enough to load the entire instances into the buffer @@ -512,7 +512,7 @@ private sealed class InputDataManager : IDisposable // Tells if we have gone through the dataset entirely. public bool FinishedTheLoad => !_cursorMoveNext; - public InputDataManager(SymbolicSgdBinaryClassificationTrainer trainer, FloatLabelCursor.Factory cursorFactory, IChannel ch) + public InputDataManager(SymbolicSgdTrainer trainer, FloatLabelCursor.Factory cursorFactory, IChannel ch) { _instIndices = new ArrayManager(trainer, ch); _instValues = new ArrayManager(trainer, ch); diff --git a/src/Microsoft.ML.PCA/PCACatalog.cs b/src/Microsoft.ML.PCA/PCACatalog.cs index 2e5b1aa0bf..b8b5220425 100644 --- a/src/Microsoft.ML.PCA/PCACatalog.cs +++ b/src/Microsoft.ML.PCA/PCACatalog.cs @@ -6,7 +6,7 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; -using static Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer; +using static Microsoft.ML.Trainers.RandomizedPcaTrainer; namespace Microsoft.ML { @@ -54,7 +54,7 @@ public static PrincipalComponentAnalyzer ProjectToPrincipalComponents(this Trans /// [!code-csharp[RPCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSample.cs)] /// ]]> /// - public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, + public static RandomizedPcaTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, int rank = Options.Defaults.NumComponents, @@ -64,7 +64,7 @@ public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDet { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RandomizedPcaAnomalyDetectionTrainer(env, featureColumnName, exampleWeightColumnName, rank, oversampling, ensureZeroMean, seed); + return new RandomizedPcaTrainer(env, featureColumnName, exampleWeightColumnName, rank, oversampling, ensureZeroMean, seed); } /// @@ -78,11 +78,11 @@ public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDet /// [!code-csharp[RPCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/AnomalyDetection/RandomizedPcaSampleWithOptions.cs)] /// ]]> /// - public static RandomizedPcaAnomalyDetectionTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, Options options) + public static RandomizedPcaTrainer RandomizedPca(this AnomalyDetectionCatalog.AnomalyDetectionTrainers catalog, Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new RandomizedPcaAnomalyDetectionTrainer(env, options); + return new RandomizedPcaTrainer(env, options); } } } diff --git a/src/Microsoft.ML.PCA/PcaTrainer.cs b/src/Microsoft.ML.PCA/PcaTrainer.cs index 7c2673117b..4d0e7a4cac 100644 --- a/src/Microsoft.ML.PCA/PcaTrainer.cs +++ b/src/Microsoft.ML.PCA/PcaTrainer.cs @@ -18,16 +18,16 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(RandomizedPcaAnomalyDetectionTrainer.Summary, typeof(RandomizedPcaAnomalyDetectionTrainer), typeof(RandomizedPcaAnomalyDetectionTrainer.Options), +[assembly: LoadableClass(RandomizedPcaTrainer.Summary, typeof(RandomizedPcaTrainer), typeof(RandomizedPcaTrainer.Options), new[] { typeof(SignatureAnomalyDetectorTrainer), typeof(SignatureTrainer) }, - RandomizedPcaAnomalyDetectionTrainer.UserNameValue, - RandomizedPcaAnomalyDetectionTrainer.LoadNameValue, - RandomizedPcaAnomalyDetectionTrainer.ShortName)] + RandomizedPcaTrainer.UserNameValue, + RandomizedPcaTrainer.LoadNameValue, + RandomizedPcaTrainer.ShortName)] [assembly: LoadableClass(typeof(PrincipleComponentModelParameters), null, typeof(SignatureLoadModel), "PCA Anomaly Executor", PrincipleComponentModelParameters.LoaderSignature)] -[assembly: LoadableClass(typeof(void), typeof(RandomizedPcaAnomalyDetectionTrainer), null, typeof(SignatureEntryPointModule), RandomizedPcaAnomalyDetectionTrainer.LoadNameValue)] +[assembly: LoadableClass(typeof(void), typeof(RandomizedPcaTrainer), null, typeof(SignatureEntryPointModule), RandomizedPcaTrainer.LoadNameValue)] namespace Microsoft.ML.Trainers { @@ -40,7 +40,7 @@ namespace Microsoft.ML.Trainers /// /// This PCA can be made into Kernel PCA by using Random Fourier Features transform /// - public sealed class RandomizedPcaAnomalyDetectionTrainer : TrainerEstimatorBase, PrincipleComponentModelParameters> + public sealed class RandomizedPcaTrainer : TrainerEstimatorBase, PrincipleComponentModelParameters> { internal const string LoadNameValue = "pcaAnomaly"; internal const string UserNameValue = "PCA Anomaly Detector"; @@ -88,7 +88,7 @@ internal static class Defaults public override TrainerInfo Info => _info; /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The local instance of the . /// The name of the feature column. @@ -97,7 +97,7 @@ internal static class Defaults /// Oversampling parameter for randomized PCA training. /// If enabled, data is centered to be zero mean. /// The seed for random number generation. - internal RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, + internal RandomizedPcaTrainer(IHostEnvironment env, string featureColumnName, string exampleWeightColumnName = null, int rank = Options.Defaults.NumComponents, @@ -108,12 +108,12 @@ internal RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, { } - internal RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, Options options) + internal RandomizedPcaTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.ExampleWeightColumnName) { } - private RandomizedPcaAnomalyDetectionTrainer(IHostEnvironment env, Options options, string featureColumnName, string exampleWeightColumnName, + private RandomizedPcaTrainer(IHostEnvironment env, Options options, string featureColumnName, string exampleWeightColumnName, int rank = 20, int oversampling = 20, bool center = true, int? seed = null) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(featureColumnName), default, TrainerUtils.MakeR4ScalarWeightColumn(exampleWeightColumnName)) { @@ -359,7 +359,7 @@ internal static CommonOutputs.AnomalyDetectionOutput TrainPcaAnomaly(IHostEnviro EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new RandomizedPcaAnomalyDetectionTrainer(host, input), + () => new RandomizedPcaTrainer(host, input), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } } diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs index 126f650e36..6b97b90b1c 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationPredictor.cs @@ -416,7 +416,7 @@ public sealed class MatrixFactorizationPredictionTransformer : PredictionTransfo /// The output column is "Score" by default but user can append a string to it. /// /// Eviroment object for showing information - /// The model trained by one of the training functions in + /// The model trained by one of the training functions in /// Targeted schema that containing columns named as xColumnName /// The name of the column used as role in matrix factorization world /// The name of the column used as role in matrix factorization world diff --git a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs index 03fa0d4904..c934fe4704 100644 --- a/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs +++ b/src/Microsoft.ML.Recommender/MatrixFactorizationTrainer.cs @@ -17,9 +17,9 @@ using Microsoft.ML.Trainers; using Microsoft.ML.Trainers.Recommender; -[assembly: LoadableClass(MatrixFactorizationRecommendationTrainer.Summary, typeof(MatrixFactorizationRecommendationTrainer), typeof(MatrixFactorizationRecommendationTrainer.Options), +[assembly: LoadableClass(MatrixFactorizationTrainer.Summary, typeof(MatrixFactorizationTrainer), typeof(MatrixFactorizationTrainer.Options), new Type[] { typeof(SignatureTrainer), typeof(SignatureMatrixRecommendingTrainer) }, - "Matrix Factorization", MatrixFactorizationRecommendationTrainer.LoadNameValue, "libmf", "mf")] + "Matrix Factorization", MatrixFactorizationTrainer.LoadNameValue, "libmf", "mf")] namespace Microsoft.ML.Trainers { @@ -86,7 +86,7 @@ namespace Microsoft.ML.Trainers /// ]]> /// /// - public sealed class MatrixFactorizationRecommendationTrainer : ITrainer, + public sealed class MatrixFactorizationTrainer : ITrainer, IEstimator { /// @@ -112,7 +112,7 @@ public enum LossFunctionType }; /// - /// Advanced options for the . + /// Advanced options for the . /// public sealed class Options { @@ -310,12 +310,12 @@ internal static class Defaults private readonly TrainerInfo _info; /// - /// Initializes a new instance of through the class. + /// Initializes a new instance of through the class. /// /// The private instance of . /// An instance of to apply advanced parameters to the algorithm. [BestFriend] - internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, Options options) + internal MatrixFactorizationTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); @@ -348,7 +348,7 @@ internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, Options } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The private instance of . /// The name of the label column. @@ -358,7 +358,7 @@ internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, Options /// Initial learning rate. It specifies the speed of the training algorithm. /// Number of training iterations. [BestFriend] - internal MatrixFactorizationRecommendationTrainer(IHostEnvironment env, + internal MatrixFactorizationTrainer(IHostEnvironment env, string labelColumnName, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, @@ -491,7 +491,7 @@ private SafeTrainingAndModelBuffer PrepareBuffer() } /// - /// Trains a using both training and validation data, returns a . + /// Trains a using both training and validation data, returns a . /// /// The training data set. /// The validation data set. diff --git a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs index ea52b412c4..8b6930ef0a 100644 --- a/src/Microsoft.ML.Recommender/RecommenderCatalog.cs +++ b/src/Microsoft.ML.Recommender/RecommenderCatalog.cs @@ -63,14 +63,14 @@ internal RecommendationTrainers(RecommendationCatalog catalog) /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorization.cs)] /// ]]> /// - public MatrixFactorizationRecommendationTrainer MatrixFactorization( + public MatrixFactorizationTrainer MatrixFactorization( string labelColumn, string matrixColumnIndexColumnName, string matrixRowIndexColumnName, - int approximationRank = MatrixFactorizationRecommendationTrainer.Defaults.ApproximationRank, - double learningRate = MatrixFactorizationRecommendationTrainer.Defaults.LearningRate, - int numberOfIterations = MatrixFactorizationRecommendationTrainer.Defaults.NumIterations) - => new MatrixFactorizationRecommendationTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, + int approximationRank = MatrixFactorizationTrainer.Defaults.ApproximationRank, + double learningRate = MatrixFactorizationTrainer.Defaults.LearningRate, + int numberOfIterations = MatrixFactorizationTrainer.Defaults.NumIterations) + => new MatrixFactorizationTrainer(Owner.GetEnvironment(), labelColumn, matrixColumnIndexColumnName, matrixRowIndexColumnName, approximationRank, learningRate, numberOfIterations); /// @@ -79,7 +79,7 @@ public MatrixFactorizationRecommendationTrainer MatrixFactorization( /// /// The basic idea of matrix factorization is finding two low-rank factor matrices to apporimate the training matrix. /// In this module, the expected training data is a list of tuples. Every tuple consists of a column index, a row index, - /// and the value at the location specified by the two indexes. The training configuration is encoded in . + /// and the value at the location specified by the two indexes. The training configuration is encoded in . /// /// /// Advanced arguments to the algorithm. @@ -89,9 +89,9 @@ public MatrixFactorizationRecommendationTrainer MatrixFactorization( /// [!code-csharp[MatrixFactorization](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Recommendation/MatrixFactorizationWithOptions.cs)] /// ]]> /// - public MatrixFactorizationRecommendationTrainer MatrixFactorization( - MatrixFactorizationRecommendationTrainer.Options options) - => new MatrixFactorizationRecommendationTrainer(Owner.GetEnvironment(), options); + public MatrixFactorizationTrainer MatrixFactorization( + MatrixFactorizationTrainer.Options options) + => new MatrixFactorizationTrainer(Owner.GetEnvironment(), options); } /// diff --git a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineCatalog.cs b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineCatalog.cs index c0dbce1724..f241288678 100644 --- a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineCatalog.cs +++ b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineCatalog.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML { /// - /// Extension method to create + /// Extension method to create /// public static class FactorizationMachineExtensions { @@ -26,14 +26,14 @@ public static class FactorizationMachineExtensions /// [!code-csharp[FieldAwareFactorizationMachine](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachine.cs)] /// ]]> /// - public static FieldAwareFactorizationMachineBinaryClassificationTrainer FieldAwareFactorizationMachine(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static FieldAwareFactorizationMachineTrainer FieldAwareFactorizationMachine(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string[] featureColumnNames, string labelColumnName = DefaultColumnNames.Label, string exampleWeightColumnName = null) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FieldAwareFactorizationMachineBinaryClassificationTrainer(env, featureColumnNames, labelColumnName, exampleWeightColumnName); + return new FieldAwareFactorizationMachineTrainer(env, featureColumnNames, labelColumnName, exampleWeightColumnName); } /// @@ -47,12 +47,12 @@ public static FieldAwareFactorizationMachineBinaryClassificationTrainer FieldAwa /// [!code-csharp[FieldAwareFactorizationMachine](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/FieldAwareFactorizationMachineWithOptions.cs)] /// ]]> /// - public static FieldAwareFactorizationMachineBinaryClassificationTrainer FieldAwareFactorizationMachine(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - FieldAwareFactorizationMachineBinaryClassificationTrainer.Options options) + public static FieldAwareFactorizationMachineTrainer FieldAwareFactorizationMachine(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + FieldAwareFactorizationMachineTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new FieldAwareFactorizationMachineBinaryClassificationTrainer(env, options); + return new FieldAwareFactorizationMachineTrainer(env, options); } } } diff --git a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineTrainer.cs b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineTrainer.cs index 84687b3ed9..ad41e60301 100644 --- a/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/FactorizationMachine/FactorizationMachineTrainer.cs @@ -15,12 +15,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(FieldAwareFactorizationMachineBinaryClassificationTrainer.Summary, typeof(FieldAwareFactorizationMachineBinaryClassificationTrainer), - typeof(FieldAwareFactorizationMachineBinaryClassificationTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer) } - , FieldAwareFactorizationMachineBinaryClassificationTrainer.UserName, FieldAwareFactorizationMachineBinaryClassificationTrainer.LoadName, - FieldAwareFactorizationMachineBinaryClassificationTrainer.ShortName, DocName = "trainer/FactorizationMachine.md")] +[assembly: LoadableClass(FieldAwareFactorizationMachineTrainer.Summary, typeof(FieldAwareFactorizationMachineTrainer), + typeof(FieldAwareFactorizationMachineTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer) } + , FieldAwareFactorizationMachineTrainer.UserName, FieldAwareFactorizationMachineTrainer.LoadName, + FieldAwareFactorizationMachineTrainer.ShortName, DocName = "trainer/FactorizationMachine.md")] -[assembly: LoadableClass(typeof(void), typeof(FieldAwareFactorizationMachineBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), FieldAwareFactorizationMachineBinaryClassificationTrainer.LoadName)] +[assembly: LoadableClass(typeof(void), typeof(FieldAwareFactorizationMachineTrainer), null, typeof(SignatureEntryPointModule), FieldAwareFactorizationMachineTrainer.LoadName)] namespace Microsoft.ML.Trainers { @@ -32,7 +32,7 @@ namespace Microsoft.ML.Trainers [3] https://github.com/wschin/fast-ffm/blob/master/fast-ffm.pdf */ /// - public sealed class FieldAwareFactorizationMachineBinaryClassificationTrainer : ITrainer, + public sealed class FieldAwareFactorizationMachineTrainer : ITrainer, IEstimator { internal const string Summary = "Train a field-aware factorization machine for binary classification"; @@ -151,12 +151,12 @@ public sealed class Options : TrainerInputBaseWithWeight private float _radius; /// - /// Initializes a new instance of through the class. + /// Initializes a new instance of through the class. /// /// The private instance of . /// An instance of the legacy to apply advanced parameters to the algorithm. [BestFriend] - internal FieldAwareFactorizationMachineBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal FieldAwareFactorizationMachineTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadName); @@ -178,14 +178,14 @@ internal FieldAwareFactorizationMachineBinaryClassificationTrainer(IHostEnvironm } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The private instance of . /// The name of column hosting the features. The i-th element stores feature column of the i-th field. /// The name of the label column. /// The name of the weight column (optional). [BestFriend] - internal FieldAwareFactorizationMachineBinaryClassificationTrainer(IHostEnvironment env, + internal FieldAwareFactorizationMachineTrainer(IHostEnvironment env, string[] featureColumnNames, string labelColumnName = DefaultColumnNames.Label, string exampleWeightColumnName = null) @@ -514,12 +514,12 @@ internal static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnviro var host = env.Register("Train a field-aware factorization machine"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); - return TrainerEntryPointsUtils.Train(host, input, () => new FieldAwareFactorizationMachineBinaryClassificationTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, () => new FieldAwareFactorizationMachineTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } /// - /// Continues the training of a using an already trained and/or validation data, + /// Continues the training of a using an already trained and/or validation data, /// and returns a . /// public FieldAwareFactorizationMachinePredictionTransformer Fit(IDataView trainData, diff --git a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs index 88e827ce56..9b30d907a7 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/LogisticRegression/MulticlassLogisticRegression.cs @@ -430,7 +430,7 @@ internal MulticlassLogisticRegressionModelParameters(IHostEnvironment env, in VB /// /// Initializes a new instance of the class. - /// This constructor is called by to create the predictor. + /// This constructor is called by to create the predictor. /// /// The host environment. /// The array of weights vectors. It should contain weights. diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs index d065a3b8df..c7e3647ee1 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MetaMulticlassTrainer.cs @@ -87,7 +87,7 @@ private TScalarTrainer CreateTrainer() { return Args.PredictorType != null ? Args.PredictorType.CreateComponent(Host) : - new LinearSvmBinaryClassificationTrainer(Host, new LinearSvmBinaryClassificationTrainer.Options()); + new LinearSvmTrainer(Host, new LinearSvmTrainer.Options()); } private protected IDataView MapLabelsCore(DataViewType type, InPredicate equalsTarget, RoleMappedData data) diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs index f5b8baa612..d8bcc13bf3 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/MultiClassNaiveBayesTrainer.cs @@ -14,20 +14,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(NaiveBayesMulticlassClassificationTrainer.Summary, typeof(NaiveBayesMulticlassClassificationTrainer), typeof(NaiveBayesMulticlassClassificationTrainer.Options), +[assembly: LoadableClass(NaiveBayesTrainer.Summary, typeof(NaiveBayesTrainer), typeof(NaiveBayesTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - NaiveBayesMulticlassClassificationTrainer.UserName, - NaiveBayesMulticlassClassificationTrainer.LoadName, - NaiveBayesMulticlassClassificationTrainer.ShortName, DocName = "trainer/NaiveBayes.md")] + NaiveBayesTrainer.UserName, + NaiveBayesTrainer.LoadName, + NaiveBayesTrainer.ShortName, DocName = "trainer/NaiveBayes.md")] [assembly: LoadableClass(typeof(MultiClassNaiveBayesModelParameters), null, typeof(SignatureLoadModel), "Multi Class Naive Bayes predictor", MultiClassNaiveBayesModelParameters.LoaderSignature)] -[assembly: LoadableClass(typeof(void), typeof(NaiveBayesMulticlassClassificationTrainer), null, typeof(SignatureEntryPointModule), NaiveBayesMulticlassClassificationTrainer.LoadName)] +[assembly: LoadableClass(typeof(void), typeof(NaiveBayesTrainer), null, typeof(SignatureEntryPointModule), NaiveBayesTrainer.LoadName)] namespace Microsoft.ML.Trainers { - public sealed class NaiveBayesMulticlassClassificationTrainer : TrainerEstimatorBase, MultiClassNaiveBayesModelParameters> + public sealed class NaiveBayesTrainer : TrainerEstimatorBase, MultiClassNaiveBayesModelParameters> { internal const string LoadName = "MultiClassNaiveBayes"; internal const string UserName = "Multiclass Naive Bayes"; @@ -50,12 +50,12 @@ internal sealed class Options : TrainerInputBaseWithLabel public override TrainerInfo Info => _info; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The name of the label column. /// The name of the feature column. - internal NaiveBayesMulticlassClassificationTrainer(IHostEnvironment env, + internal NaiveBayesTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadName), TrainerUtils.MakeR4VecFeature(featureColumn), @@ -66,9 +66,9 @@ internal NaiveBayesMulticlassClassificationTrainer(IHostEnvironment env, } /// - /// Initializes a new instance of + /// Initializes a new instance of /// - internal NaiveBayesMulticlassClassificationTrainer(IHostEnvironment env, Options options) + internal NaiveBayesTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadName), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), TrainerUtils.MakeU4ScalarColumn(options.LabelColumnName)) { @@ -176,7 +176,7 @@ internal static CommonOutputs.MulticlassClassificationOutput TrainMultiClassNaiv EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new NaiveBayesMulticlassClassificationTrainer(host, input), + () => new NaiveBayesTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs index 2ad3c1cbbb..82a3b259ff 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/OneVersusAllTrainer.cs @@ -22,10 +22,10 @@ using Microsoft.ML.Trainers; using Newtonsoft.Json.Linq; -[assembly: LoadableClass(OneVersusAllMulticlassClassificationTrainer.Summary, typeof(OneVersusAllMulticlassClassificationTrainer), typeof(OneVersusAllMulticlassClassificationTrainer.Options), +[assembly: LoadableClass(OneVersusAllTrainer.Summary, typeof(OneVersusAllTrainer), typeof(OneVersusAllTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - OneVersusAllMulticlassClassificationTrainer.UserNameValue, - OneVersusAllMulticlassClassificationTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] + OneVersusAllTrainer.UserNameValue, + OneVersusAllTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] [assembly: LoadableClass(typeof(OneVersusAllModelParameters), null, typeof(SignatureLoadModel), "OVA Executor", @@ -39,7 +39,7 @@ namespace Microsoft.ML.Trainers using TScalarPredictor = IPredictorProducing; using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public sealed class OneVersusAllMulticlassClassificationTrainer : MetaMulticlassTrainer, OneVersusAllModelParameters> + public sealed class OneVersusAllTrainer : MetaMulticlassTrainer, OneVersusAllModelParameters> { internal const string LoadNameValue = "OVA"; internal const string UserNameValue = "One-vs-All"; @@ -50,7 +50,7 @@ public sealed class OneVersusAllMulticlassClassificationTrainer : MetaMulticlass private readonly Options _options; /// - /// Options passed to + /// Options passed to /// internal sealed class Options : OptionsBase { @@ -63,18 +63,18 @@ internal sealed class Options : OptionsBase } /// - /// Constructs a trainer supplying a . + /// Constructs a trainer supplying a . /// /// The private for this estimator. /// The legacy - internal OneVersusAllMulticlassClassificationTrainer(IHostEnvironment env, Options options) + internal OneVersusAllTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue) { _options = options; } /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The instance. /// An instance of a binary used as the base trainer. @@ -83,7 +83,7 @@ internal OneVersusAllMulticlassClassificationTrainer(IHostEnvironment env, Optio /// If true will treat missing labels as negative labels. /// Number of instances to train the calibrator. /// Use probabilities (vs. raw outputs) to identify top-score category. - internal OneVersusAllMulticlassClassificationTrainer(IHostEnvironment env, + internal OneVersusAllTrainer(IHostEnvironment env, TScalarTrainer binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -204,7 +204,7 @@ public override MulticlassPredictionTransformer Fit } /// - /// Contains the model parameters and prediction functions for . + /// Contains the model parameters and prediction functions for . /// public sealed class OneVersusAllModelParameters : ModelParametersBase>, @@ -278,7 +278,7 @@ internal static OneVersusAllModelParameters Create(IHost host, OutputFormula out ivmd.OutputType != NumberDataViewType.Single || ivmd.DistType != NumberDataViewType.Single)) { - ch.Warning($"{nameof(OneVersusAllMulticlassClassificationTrainer.Options.UseProbabilities)} specified with {nameof(OneVersusAllMulticlassClassificationTrainer.Options.PredictorType)} that can't produce probabilities."); + ch.Warning($"{nameof(OneVersusAllTrainer.Options.UseProbabilities)} specified with {nameof(OneVersusAllTrainer.Options.PredictorType)} that can't produce probabilities."); ivmd = null; } diff --git a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs index be33d32640..53cc39327c 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/MultiClass/PairwiseCouplingTrainer.cs @@ -14,9 +14,9 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(PairwiseCouplingMulticlassClassificationTrainer.Summary, typeof(PairwiseCouplingMulticlassClassificationTrainer), typeof(PairwiseCouplingMulticlassClassificationTrainer.Options), +[assembly: LoadableClass(PairwiseCouplingTrainer.Summary, typeof(PairwiseCouplingTrainer), typeof(PairwiseCouplingTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer) }, - PairwiseCouplingMulticlassClassificationTrainer.UserNameValue, PairwiseCouplingMulticlassClassificationTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] + PairwiseCouplingTrainer.UserNameValue, PairwiseCouplingTrainer.LoadNameValue, DocName = "trainer/OvaPkpd.md")] [assembly: LoadableClass(typeof(PairwiseCouplingModelParameters), null, typeof(SignatureLoadModel), "PKPD Executor", @@ -52,7 +52,7 @@ namespace Microsoft.ML.Trainers /// L-BFGS history for all classes *simultaneously*, rather than just one-by-one /// as would be needed for a one-versus-all classification model. /// - public sealed class PairwiseCouplingMulticlassClassificationTrainer : MetaMulticlassTrainer, PairwiseCouplingModelParameters> + public sealed class PairwiseCouplingTrainer : MetaMulticlassTrainer, PairwiseCouplingModelParameters> { internal const string LoadNameValue = "PKPD"; internal const string UserNameValue = "Pairwise coupling (PKPD)"; @@ -61,23 +61,23 @@ public sealed class PairwiseCouplingMulticlassClassificationTrainer : MetaMultic + "classifiers predicted it. The prediction is the class with the highest score."; /// - /// Options passed to . + /// Options passed to . /// internal sealed class Options : OptionsBase { } /// - /// Constructs a trainer supplying the base trainer to use, for the classification task + /// Constructs a trainer supplying the base trainer to use, for the classification task /// through the Options. /// - internal PairwiseCouplingMulticlassClassificationTrainer(IHostEnvironment env, Options options) + internal PairwiseCouplingTrainer(IHostEnvironment env, Options options) : base(env, options, LoadNameValue) { } /// - /// Initializes a new instance of the + /// Initializes a new instance of the /// /// The instance. /// An instance of a binary used as the base trainer. @@ -85,7 +85,7 @@ internal PairwiseCouplingMulticlassClassificationTrainer(IHostEnvironment env, O /// Whether to treat missing labels as having negative labels, instead of keeping them missing. /// The calibrator to use for each model instance. If a calibrator is not explicitely provided, it will default to /// Number of instances to train the calibrator. - internal PairwiseCouplingMulticlassClassificationTrainer(IHostEnvironment env, + internal PairwiseCouplingTrainer(IHostEnvironment env, TScalarTrainer binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs index 2633c298ae..91374d01c3 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/AveragedPerceptron.cs @@ -14,12 +14,12 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(AveragedPerceptronBinaryClassificationTrainer.Summary, typeof(AveragedPerceptronBinaryClassificationTrainer), typeof(AveragedPerceptronBinaryClassificationTrainer.Options), +[assembly: LoadableClass(AveragedPerceptronTrainer.Summary, typeof(AveragedPerceptronTrainer), typeof(AveragedPerceptronTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - AveragedPerceptronBinaryClassificationTrainer.UserNameValue, - AveragedPerceptronBinaryClassificationTrainer.LoadNameValue, "avgper", AveragedPerceptronBinaryClassificationTrainer.ShortName)] + AveragedPerceptronTrainer.UserNameValue, + AveragedPerceptronTrainer.LoadNameValue, "avgper", AveragedPerceptronTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(AveragedPerceptronBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), "AP")] +[assembly: LoadableClass(typeof(void), typeof(AveragedPerceptronTrainer), null, typeof(SignatureEntryPointModule), "AP")] namespace Microsoft.ML.Trainers { @@ -44,7 +44,7 @@ namespace Microsoft.ML.Trainers /// For more information see Wikipedia entry for Perceptron /// or Large Margin Classification Using the Perceptron Algorithm /// - public sealed class AveragedPerceptronBinaryClassificationTrainer : AveragedLinearTrainer, LinearBinaryModelParameters> + public sealed class AveragedPerceptronTrainer : AveragedLinearTrainer, LinearBinaryModelParameters> { internal const string LoadNameValue = "AveragedPerceptron"; internal const string UserNameValue = "Averaged Perceptron"; @@ -54,7 +54,7 @@ public sealed class AveragedPerceptronBinaryClassificationTrainer : AveragedLine private readonly Options _args; /// - /// Options for the . + /// Options for the . /// public sealed class Options : AveragedLinearOptions { @@ -81,7 +81,7 @@ public sealed class Options : AveragedLinearOptions private sealed class TrainState : AveragedTrainStateBase { - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, AveragedPerceptronBinaryClassificationTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, AveragedPerceptronTrainer parent) : base(ch, numFeatures, predictor, parent) { } @@ -109,7 +109,7 @@ public override LinearBinaryModelParameters CreatePredictor() } } - internal AveragedPerceptronBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal AveragedPerceptronTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { _args = options; @@ -128,7 +128,7 @@ internal AveragedPerceptronBinaryClassificationTrainer(IHostEnvironment env, Opt /// Whether to decrease learning rate as iterations progress. /// L2 Regularization Weight. /// The number of training iterations. - internal AveragedPerceptronBinaryClassificationTrainer(IHostEnvironment env, + internal AveragedPerceptronTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, IClassificationLoss lossFunction = null, @@ -215,7 +215,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainBinary(IHostEnviro EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new AveragedPerceptronBinaryClassificationTrainer(host, input), + () => new AveragedPerceptronTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), calibrator: input.Calibrator, maxCalibrationExamples: input.MaxCalibrationExamples); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs index 36648b0dd6..60f379465e 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/LinearSvm.cs @@ -16,20 +16,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(LinearSvmBinaryClassificationTrainer.Summary, typeof(LinearSvmBinaryClassificationTrainer), typeof(LinearSvmBinaryClassificationTrainer.Options), +[assembly: LoadableClass(LinearSvmTrainer.Summary, typeof(LinearSvmTrainer), typeof(LinearSvmTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - LinearSvmBinaryClassificationTrainer.UserNameValue, - LinearSvmBinaryClassificationTrainer.LoadNameValue, - LinearSvmBinaryClassificationTrainer.ShortName)] + LinearSvmTrainer.UserNameValue, + LinearSvmTrainer.LoadNameValue, + LinearSvmTrainer.ShortName)] -[assembly: LoadableClass(typeof(void), typeof(LinearSvmBinaryClassificationTrainer), null, typeof(SignatureEntryPointModule), "LinearSvm")] +[assembly: LoadableClass(typeof(void), typeof(LinearSvmTrainer), null, typeof(SignatureEntryPointModule), "LinearSvm")] namespace Microsoft.ML.Trainers { /// /// Linear SVM that implements PEGASOS for training. See: http://ttic.uchicago.edu/~shai/papers/ShalevSiSr07.pdf /// - public sealed class LinearSvmBinaryClassificationTrainer : OnlineLinearTrainer, LinearBinaryModelParameters> + public sealed class LinearSvmTrainer : OnlineLinearTrainer, LinearBinaryModelParameters> { internal const string LoadNameValue = "LinearSVM"; internal const string ShortName = "svm"; @@ -92,7 +92,7 @@ private sealed class TrainState : TrainStateBase private readonly bool _performProjection; private readonly float _lambda; - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, LinearSvmBinaryClassificationTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, LinearSvmTrainer parent) : base(ch, numFeatures, predictor, parent) { _batchSize = parent.Opts.BatchSize; @@ -227,7 +227,7 @@ public override LinearBinaryModelParameters CreatePredictor() private protected override bool NeedCalibration => true; /// - /// Initializes a new instance of . + /// Initializes a new instance of . /// /// The environment to use. /// The name of the label column. @@ -235,7 +235,7 @@ public override LinearBinaryModelParameters CreatePredictor() /// The optional name of the weight column. /// The number of training iteraitons. [BestFriend] - internal LinearSvmBinaryClassificationTrainer(IHostEnvironment env, + internal LinearSvmTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -250,7 +250,7 @@ internal LinearSvmBinaryClassificationTrainer(IHostEnvironment env, { } - internal LinearSvmBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal LinearSvmTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeBoolScalarLabel(options.LabelColumnName)) { Contracts.CheckUserArg(options.Lambda > 0, nameof(options.Lambda), UserErrorPositive); @@ -288,7 +288,7 @@ internal static CommonOutputs.BinaryClassificationOutput TrainLinearSvm(IHostEnv EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new LinearSvmBinaryClassificationTrainer(host, input), + () => new LinearSvmTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName), calibrator: input.Calibrator, maxCalibrationExamples: input.MaxCalibrationExamples); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs b/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs index 6f3a83831a..3e71e063dd 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Online/OnlineGradientDescent.cs @@ -13,20 +13,20 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(OnlineGradientDescentRegressionTrainer.Summary, typeof(OnlineGradientDescentRegressionTrainer), typeof(OnlineGradientDescentRegressionTrainer.Options), +[assembly: LoadableClass(OnlineGradientDescentTrainer.Summary, typeof(OnlineGradientDescentTrainer), typeof(OnlineGradientDescentTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - OnlineGradientDescentRegressionTrainer.UserNameValue, - OnlineGradientDescentRegressionTrainer.LoadNameValue, - OnlineGradientDescentRegressionTrainer.ShortName, + OnlineGradientDescentTrainer.UserNameValue, + OnlineGradientDescentTrainer.LoadNameValue, + OnlineGradientDescentTrainer.ShortName, "sgdr", "stochasticgradientdescentregression")] -[assembly: LoadableClass(typeof(void), typeof(OnlineGradientDescentRegressionTrainer), null, typeof(SignatureEntryPointModule), "OGD")] +[assembly: LoadableClass(typeof(void), typeof(OnlineGradientDescentTrainer), null, typeof(SignatureEntryPointModule), "OGD")] namespace Microsoft.ML.Trainers { /// - public sealed class OnlineGradientDescentRegressionTrainer : AveragedLinearTrainer, LinearRegressionModelParameters> + public sealed class OnlineGradientDescentTrainer : AveragedLinearTrainer, LinearRegressionModelParameters> { internal const string LoadNameValue = "OnlineGradientDescent"; internal const string UserNameValue = "Stochastic Gradient Descent (Regression)"; @@ -61,7 +61,7 @@ internal class OgdDefaultArgs : AveragedDefault private sealed class TrainState : AveragedTrainStateBase { - public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, OnlineGradientDescentRegressionTrainer parent) + public TrainState(IChannel ch, int numFeatures, LinearModelParameters predictor, OnlineGradientDescentTrainer parent) : base(ch, numFeatures, predictor, parent) { } @@ -98,7 +98,7 @@ public override LinearRegressionModelParameters CreatePredictor() /// L2 Regularization Weight. /// Number of training iterations through the data. /// The custom loss functions. Defaults to if not provided. - internal OnlineGradientDescentRegressionTrainer(IHostEnvironment env, + internal OnlineGradientDescentTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, float learningRate = Options.OgdDefaultArgs.LearningRate, @@ -131,7 +131,7 @@ public TrivialFactory(IRegressionLoss loss) IRegressionLoss IComponentFactory.CreateComponent(IHostEnvironment env) => _loss; } - internal OnlineGradientDescentRegressionTrainer(IHostEnvironment env, Options options) + internal OnlineGradientDescentTrainer(IHostEnvironment env, Options options) : base(options, env, UserNameValue, TrainerUtils.MakeR4ScalarColumn(options.LabelColumnName)) { LossFunction = options.LossFunction.CreateComponent(env); @@ -169,7 +169,7 @@ internal static CommonOutputs.RegressionOutput TrainRegression(IHostEnvironment EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new OnlineGradientDescentRegressionTrainer(host, input), + () => new OnlineGradientDescentTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs index acbd756be5..17e2eea683 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaBinary.cs @@ -141,10 +141,10 @@ private protected virtual int ComputeNumThreads(FloatLabelCursor.Factory cursorF => Math.Min(8, Math.Max(1, Environment.ProcessorCount / 2)); } - public abstract class StochasticDualCoordinateAscentTrainerBase : StochasticTrainerBase + public abstract class SdcaTrainerBase : StochasticTrainerBase where TTransformer : ISingleFeaturePredictionTransformer where TModel : class - where TOptions : StochasticDualCoordinateAscentTrainerBase.OptionsBase, new() + where TOptions : SdcaTrainerBase.OptionsBase, new() { // REVIEW: Making it even faster and more accurate: // 1. Train with not-too-many threads. nt = 2 or 4 seems to be good enough. Didn't seem additional benefit over more threads. @@ -279,7 +279,7 @@ private protected enum MetricKind private protected override bool ShuffleData => SdcaTrainerOptions.Shuffle; - private const string RegisterName = nameof(StochasticDualCoordinateAscentTrainerBase); + private const string RegisterName = nameof(SdcaTrainerBase); private static TOptions ArgsInit(string featureColumnName, SchemaShape.Column labelColumn) { @@ -290,14 +290,14 @@ private static TOptions ArgsInit(string featureColumnName, SchemaShape.Column la return args; } - internal StochasticDualCoordinateAscentTrainerBase(IHostEnvironment env, string featureColumnName, SchemaShape.Column labelColumn, + internal SdcaTrainerBase(IHostEnvironment env, string featureColumnName, SchemaShape.Column labelColumn, SchemaShape.Column weight = default, float? l2Const = null, float? l1Threshold = null, int? maxIterations = null) : this(env, ArgsInit(featureColumnName, labelColumn), labelColumn, weight, l2Const, l1Threshold, maxIterations) { } - internal StochasticDualCoordinateAscentTrainerBase(IHostEnvironment env, TOptions options, SchemaShape.Column label, SchemaShape.Column weight = default, + internal SdcaTrainerBase(IHostEnvironment env, TOptions options, SchemaShape.Column label, SchemaShape.Column weight = default, float? l2Const = null, float? l1Threshold = null, int? maxIterations = null) : base(Contracts.CheckRef(env, nameof(env)).Register(RegisterName), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), label, weight) { @@ -1426,13 +1426,13 @@ public void Add(Double summand) /// /// SDCA is a general training algorithm for (generalized) linear models such as support vector machine, linear regression, logistic regression, /// and so on. SDCA binary classification trainer family includes several sealed members: - /// (1) supports general loss functions and returns . - /// (2) essentially trains a regularized logistic regression model. Because logistic regression + /// (1) supports general loss functions and returns . + /// (2) essentially trains a regularized logistic regression model. Because logistic regression /// naturally provide probability output, this generated model's type is . /// where is and is . /// public abstract class SdcaBinaryTrainerBase : - StochasticDualCoordinateAscentTrainerBase.BinaryOptionsBase, BinaryPredictionTransformer, TModelParameters> + SdcaTrainerBase.BinaryOptionsBase, BinaryPredictionTransformer, TModelParameters> where TModelParameters : class { private readonly ISupportSdcaClassificationLoss _loss; @@ -1561,17 +1561,17 @@ private protected override BinaryPredictionTransformer MakeTra /// linear function to a . /// /// - public sealed class StochasticDualCoordinateAscentBinaryClassificationTrainer : + public sealed class SdcaCalibratedBinaryClassificationTrainer : SdcaBinaryTrainerBase> { /// - /// Options for the . + /// Options for the . /// public sealed class Options : BinaryOptionsBase { } - internal StochasticDualCoordinateAscentBinaryClassificationTrainer(IHostEnvironment env, + internal SdcaCalibratedBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string weightColumnName = null, @@ -1582,7 +1582,7 @@ internal StochasticDualCoordinateAscentBinaryClassificationTrainer(IHostEnvironm { } - internal StochasticDualCoordinateAscentBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal SdcaCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, new LogLoss()) { } @@ -1625,10 +1625,10 @@ private protected override SchemaShape.Column[] ComputeSdcaBinaryClassifierSchem /// The for training a binary logistic regression classification model using the stochastic dual coordinate ascent method. /// /// - public sealed class StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer : SdcaBinaryTrainerBase + public sealed class SdcaNonCalibratedBinaryClassificationTrainer : SdcaBinaryTrainerBase { /// - /// Options for the . + /// Options for the . /// public sealed class Options : BinaryOptionsBase { @@ -1642,7 +1642,7 @@ public sealed class Options : BinaryOptionsBase public ISupportSdcaClassificationLossFactory LossFunction = new LogLossFactory(); } - internal StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, + internal SdcaNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string weightColumnName = null, @@ -1654,7 +1654,7 @@ internal StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer( { } - internal StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal SdcaNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) : base(env, options, options.LossFunction.CreateComponent(env)) { } @@ -1680,7 +1680,7 @@ private protected override SchemaShape.Column[] ComputeSdcaBinaryClassifierSchem } /// - /// Comparing with , + /// Comparing with , /// directly outputs a built from /// the learned weights and bias without calibration. /// @@ -1947,7 +1947,7 @@ private protected override BinaryPredictionTransformer MakeTransformer(T => new BinaryPredictionTransformer(Host, model, trainSchema, FeatureColumn.Name); /// - /// Continues the training of a using an already trained and returns a . + /// Continues the training of a using an already trained and returns a . /// public BinaryPredictionTransformer Fit(IDataView trainData, LinearModelParameters modelParameters) => TrainTransformer(trainData, initPredictor: modelParameters); @@ -2182,17 +2182,17 @@ private protected override void CheckLabel(RoleMappedData examples, out int weig /// that supports multi-threading without any locking. If the associated optimization problem is sparse, Hogwild SGD achieves a nearly optimal /// rate of convergence. For more details about Hogwild SGD, please refer to http://arxiv.org/pdf/1106.5730v2.pdf. /// - public sealed class StochasticGradientDescentBinaryClassificationTrainer : + public sealed class SgdCalibratedTrainer : SgdBinaryTrainerBase> { /// - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { } - internal StochasticGradientDescentBinaryClassificationTrainer(IHostEnvironment env, + internal SgdCalibratedTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -2208,7 +2208,7 @@ internal StochasticGradientDescentBinaryClassificationTrainer(IHostEnvironment e /// /// The environment to use. /// Advanced arguments to the algorithm. - internal StochasticGradientDescentBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal SgdCalibratedTrainer(IHostEnvironment env, Options options) : base(env, options, loss: new LogLoss(), doCalibration: false) { } @@ -2242,10 +2242,10 @@ private protected override CalibratedModelParametersBase - /// can train a linear classification model by minimizing any loss function + /// can train a linear classification model by minimizing any loss function /// which implements . /// - public sealed class StochasticGradientDescentNonCalibratedBinaryClassificationTrainer : + public sealed class SgdNonCalibratedTrainer : SgdBinaryTrainerBase { public sealed class Options : OptionsBase @@ -2257,7 +2257,7 @@ public sealed class Options : OptionsBase public IClassificationLoss Loss = new LogLoss(); } - internal StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, + internal SgdNonCalibratedTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weightColumn = null, @@ -2270,11 +2270,11 @@ internal StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(IHost } /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// Advanced arguments to the algorithm. - internal StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal SgdNonCalibratedTrainer(IHostEnvironment env, Options options) : base(env, options, loss: options.Loss, doCalibration: false) { } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs index 31fae9cd59..26269ce304 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaMultiClass.cs @@ -17,11 +17,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(StochasticDualCoordinateAscentMulticlassClassificationTrainer.Summary, typeof(StochasticDualCoordinateAscentMulticlassClassificationTrainer), typeof(StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options), +[assembly: LoadableClass(SdcaMulticlassClassificationTrainer.Summary, typeof(SdcaMulticlassClassificationTrainer), typeof(SdcaMulticlassClassificationTrainer.Options), new[] { typeof(SignatureMultiClassClassifierTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - StochasticDualCoordinateAscentMulticlassClassificationTrainer.UserNameValue, - StochasticDualCoordinateAscentMulticlassClassificationTrainer.LoadNameValue, - StochasticDualCoordinateAscentMulticlassClassificationTrainer.ShortName)] + SdcaMulticlassClassificationTrainer.UserNameValue, + SdcaMulticlassClassificationTrainer.LoadNameValue, + SdcaMulticlassClassificationTrainer.ShortName)] namespace Microsoft.ML.Trainers { @@ -29,7 +29,7 @@ namespace Microsoft.ML.Trainers /// The for training a multiclass logistic regression classification model using the stochastic dual coordinate ascent method. /// /// - public sealed class StochasticDualCoordinateAscentMulticlassClassificationTrainer : StochasticDualCoordinateAscentTrainerBase, MulticlassLogisticRegressionModelParameters> + public sealed class SdcaMulticlassClassificationTrainer : SdcaTrainerBase, MulticlassLogisticRegressionModelParameters> { internal const string LoadNameValue = "SDCAMC"; internal const string UserNameValue = "Fast Linear Multi-class Classification (SA-SDCA)"; @@ -37,7 +37,7 @@ public sealed class StochasticDualCoordinateAscentMulticlassClassificationTraine internal const string Summary = "The SDCA linear multi-class classification trainer."; /// - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { @@ -56,7 +56,7 @@ public sealed class Options : OptionsBase private protected override PredictionKind PredictionKind => PredictionKind.MultiClassClassification; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The label, or dependent variable. @@ -66,7 +66,7 @@ public sealed class Options : OptionsBase /// The L2 regularization hyperparameter. /// The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. /// The maximum number of passes to perform over the data. - internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, + internal SdcaMulticlassClassificationTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -83,7 +83,7 @@ internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvi Loss = _loss; } - internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, Options options, + internal SdcaMulticlassClassificationTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) : base(env, options, TrainerUtils.MakeU4ScalarColumn(labelColumn), TrainerUtils.MakeR4ScalarWeightColumn(weightColumn)) { @@ -94,7 +94,7 @@ internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvi Loss = _loss; } - internal StochasticDualCoordinateAscentMulticlassClassificationTrainer(IHostEnvironment env, Options options) + internal SdcaMulticlassClassificationTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.LabelColumnName) { } @@ -454,18 +454,18 @@ private protected override MulticlassPredictionTransformer(host, input, - () => new StochasticDualCoordinateAscentMulticlassClassificationTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new SdcaMulticlassClassificationTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs index a78ac44719..01bed21182 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/SdcaRegression.cs @@ -14,11 +14,11 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(StochasticDualCoordinateAscentRegressionTrainer.Summary, typeof(StochasticDualCoordinateAscentRegressionTrainer), typeof(StochasticDualCoordinateAscentRegressionTrainer.Options), +[assembly: LoadableClass(SdcaRegressionTrainer.Summary, typeof(SdcaRegressionTrainer), typeof(SdcaRegressionTrainer.Options), new[] { typeof(SignatureRegressorTrainer), typeof(SignatureTrainer), typeof(SignatureFeatureScorerTrainer) }, - StochasticDualCoordinateAscentRegressionTrainer.UserNameValue, - StochasticDualCoordinateAscentRegressionTrainer.LoadNameValue, - StochasticDualCoordinateAscentRegressionTrainer.ShortName)] + SdcaRegressionTrainer.UserNameValue, + SdcaRegressionTrainer.LoadNameValue, + SdcaRegressionTrainer.ShortName)] namespace Microsoft.ML.Trainers { @@ -26,7 +26,7 @@ namespace Microsoft.ML.Trainers /// The for training a regression model using the stochastic dual coordinate ascent method. /// /// - public sealed class StochasticDualCoordinateAscentRegressionTrainer : StochasticDualCoordinateAscentTrainerBase, LinearRegressionModelParameters> + public sealed class SdcaRegressionTrainer : SdcaTrainerBase, LinearRegressionModelParameters> { internal const string LoadNameValue = "SDCAR"; internal const string UserNameValue = "Fast Linear Regression (SA-SDCA)"; @@ -34,7 +34,7 @@ public sealed class StochasticDualCoordinateAscentRegressionTrainer : Stochastic internal const string Summary = "The SDCA linear regression trainer."; /// - /// Options for the . + /// Options for the . /// public sealed class Options : OptionsBase { @@ -65,7 +65,7 @@ public Options() private protected override PredictionKind PredictionKind => PredictionKind.Regression; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The environment to use. /// The label, or dependent variable. @@ -75,7 +75,7 @@ public Options() /// The L2 regularization hyperparameter. /// The L1 regularization hyperparameter. Higher values will tend to lead to more sparse model. /// The maximum number of passes to perform over the data. - internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, + internal SdcaRegressionTrainer(IHostEnvironment env, string labelColumn = DefaultColumnNames.Label, string featureColumn = DefaultColumnNames.Features, string weights = null, @@ -92,7 +92,7 @@ internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, Loss = _loss; } - internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) + internal SdcaRegressionTrainer(IHostEnvironment env, Options options, string featureColumn, string labelColumn, string weightColumn = null) : base(env, options, TrainerUtils.MakeR4ScalarColumn(labelColumn), TrainerUtils.MakeR4ScalarWeightColumn(weightColumn)) { Host.CheckValue(labelColumn, nameof(labelColumn)); @@ -102,7 +102,7 @@ internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, O Loss = _loss; } - internal StochasticDualCoordinateAscentRegressionTrainer(IHostEnvironment env, Options options) + internal SdcaRegressionTrainer(IHostEnvironment env, Options options) : this(env, options, options.FeatureColumnName, options.LabelColumnName) { } @@ -174,18 +174,18 @@ private protected override RegressionPredictionTransformer(host, input, - () => new StochasticDualCoordinateAscentRegressionTrainer(host, input), + return TrainerEntryPointsUtils.Train(host, input, + () => new SdcaRegressionTrainer(host, input), () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.LabelColumnName)); } } diff --git a/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs b/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs index 1f6b7b2ee9..6a3d021caa 100644 --- a/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs +++ b/src/Microsoft.ML.StandardLearners/Standard/Simple/SimpleTrainers.cs @@ -12,10 +12,10 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(PriorBinaryClassificationTrainer.Summary, typeof(PriorBinaryClassificationTrainer), typeof(PriorBinaryClassificationTrainer.Options), +[assembly: LoadableClass(PriorTrainer.Summary, typeof(PriorTrainer), typeof(PriorTrainer.Options), new[] { typeof(SignatureBinaryClassifierTrainer), typeof(SignatureTrainer) }, - PriorBinaryClassificationTrainer.UserNameValue, - PriorBinaryClassificationTrainer.LoadNameValue, + PriorTrainer.UserNameValue, + PriorTrainer.LoadNameValue, "prior", "constant")] @@ -167,7 +167,7 @@ private void MapDist(in VBuffer src, ref float score, ref float prob) /// /// Learns the prior distribution for 0/1 class labels and outputs that. /// - public sealed class PriorBinaryClassificationTrainer : ITrainer, + public sealed class PriorTrainer : ITrainer, ITrainerEstimator, PriorModelParameters> { internal const string LoadNameValue = "PriorPredictor"; @@ -193,7 +193,7 @@ internal sealed class Options /// public TrainerInfo Info => _info; - internal PriorBinaryClassificationTrainer(IHostEnvironment env, Options options) + internal PriorTrainer(IHostEnvironment env, Options options) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); @@ -203,7 +203,7 @@ internal PriorBinaryClassificationTrainer(IHostEnvironment env, Options options) /// /// Initializes PriorTrainer object. /// - internal PriorBinaryClassificationTrainer(IHostEnvironment env, String labelColumn, String weightColunn = null) + internal PriorTrainer(IHostEnvironment env, String labelColumn, String weightColunn = null) { Contracts.CheckValue(env, nameof(env)); _host = env.Register(LoadNameValue); diff --git a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs index 2736fecfa2..a48e4c746e 100644 --- a/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs +++ b/src/Microsoft.ML.StandardLearners/StandardLearnersCatalog.cs @@ -17,7 +17,7 @@ namespace Microsoft.ML public static class StandardLearnersCatalog { /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -33,22 +33,22 @@ public static class StandardLearnersCatalog /// ]]> /// /// - public static StochasticGradientDescentBinaryClassificationTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static SgdCalibratedTrainer SgdCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, - int numberOfIterations = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.L2Regularization) + int numberOfIterations = SgdCalibratedTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = SgdCalibratedTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = SgdCalibratedTrainer.Options.Defaults.L2Regularization) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticGradientDescentBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, + return new SgdCalibratedTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, initialLearningRate, l2Regularization); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -59,18 +59,18 @@ public static StochasticGradientDescentBinaryClassificationTrainer StochasticGra /// ]]> /// /// - public static StochasticGradientDescentBinaryClassificationTrainer StochasticGradientDescent(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - StochasticGradientDescentBinaryClassificationTrainer.Options options) + public static SgdCalibratedTrainer SgdCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + SgdCalibratedTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticGradientDescentBinaryClassificationTrainer(env, options); + return new SgdCalibratedTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -87,23 +87,23 @@ public static StochasticGradientDescentBinaryClassificationTrainer StochasticGra /// ]]> /// /// - public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static SgdNonCalibratedTrainer SgdNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, IClassificationLoss loss = null, - int numberOfIterations = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.L2Regularization) + int numberOfIterations = SgdNonCalibratedTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = SgdNonCalibratedTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = SgdNonCalibratedTrainer.Options.Defaults.L2Regularization) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, + return new SgdNonCalibratedTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, numberOfIterations, initialLearningRate, l2Regularization, loss); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -114,18 +114,18 @@ public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer /// ]]> /// /// - public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer StochasticGradientDescentNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options options) + public static SgdNonCalibratedTrainer SgdNonCalibrated(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + SgdNonCalibratedTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, options); + return new SgdNonCalibratedTrainer(env, options); } /// - /// Predict a target using a linear regression model trained with . + /// Predict a target using a linear regression model trained with . /// /// The regression catalog trainer object. /// The name of the label column. @@ -141,7 +141,7 @@ public static StochasticGradientDescentNonCalibratedBinaryClassificationTrainer /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, + public static SdcaRegressionTrainer Sdca(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -152,11 +152,11 @@ public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoor { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new SdcaRegressionTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear regression model trained with and advanced options. + /// Predict a target using a linear regression model trained with and advanced options. /// /// The regression catalog trainer object. /// Trainer options. @@ -166,18 +166,18 @@ public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoor /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Regression/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoordinateAscent(this RegressionCatalog.RegressionTrainers catalog, - StochasticDualCoordinateAscentRegressionTrainer.Options options) + public static SdcaRegressionTrainer Sdca(this RegressionCatalog.RegressionTrainers catalog, + SdcaRegressionTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentRegressionTrainer(env, options); + return new SdcaRegressionTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -192,7 +192,7 @@ public static StochasticDualCoordinateAscentRegressionTrainer StochasticDualCoor /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentBinaryClassificationTrainer StochasticDualCoordinateAscent( + public static SdcaCalibratedBinaryClassificationTrainer SdcaCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -203,11 +203,11 @@ public static StochasticDualCoordinateAscentBinaryClassificationTrainer Stochast { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new SdcaCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -217,19 +217,19 @@ public static StochasticDualCoordinateAscentBinaryClassificationTrainer Stochast /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentBinaryClassificationTrainer StochasticDualCoordinateAscent( + public static SdcaCalibratedBinaryClassificationTrainer SdcaCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - StochasticDualCoordinateAscentBinaryClassificationTrainer.Options options) + SdcaCalibratedBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, options); + return new SdcaCalibratedBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -245,7 +245,7 @@ public static StochasticDualCoordinateAscentBinaryClassificationTrainer Stochast /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/StochasticDualCoordinateAscentNonCalibrated.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer StochasticDualCoordinateAscentNonCalibrated( + public static SdcaNonCalibratedBinaryClassificationTrainer SdcaNonCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -257,27 +257,27 @@ public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTra { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new SdcaNonCalibratedBinaryClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear classification model trained with and advanced options. + /// Predict a target using a linear classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. - public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer StochasticDualCoordinateAscentNonCalibrated( + public static SdcaNonCalibratedBinaryClassificationTrainer SdcaNonCalibrated( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options options) + SdcaNonCalibratedBinaryClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, options); + return new SdcaNonCalibratedBinaryClassificationTrainer(env, options); } /// - /// Predict a target using a linear multiclass classification model trained with . + /// Predict a target using a linear multiclass classification model trained with . /// /// The multiclass classification catalog trainer object. /// The name of the label column. @@ -293,7 +293,7 @@ public static StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTra /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscent.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentMulticlassClassificationTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static SdcaMulticlassClassificationTrainer Sdca(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, @@ -304,11 +304,11 @@ public static StochasticDualCoordinateAscentMulticlassClassificationTrainer Stoc { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); + return new SdcaMulticlassClassificationTrainer(env, labelColumnName, featureColumnName, exampleWeightColumnName, loss, l2Regularization, l1Threshold, maximumNumberOfIterations); } /// - /// Predict a target using a linear multiclass classification model trained with and advanced options. + /// Predict a target using a linear multiclass classification model trained with and advanced options. /// /// The multiclass classification catalog trainer object. /// Trainer options. @@ -318,18 +318,18 @@ public static StochasticDualCoordinateAscentMulticlassClassificationTrainer Stoc /// [!code-csharp[SDCA](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/MulticlassClassification/StochasticDualCoordinateAscentWithOptions.cs)] /// ]]> /// - public static StochasticDualCoordinateAscentMulticlassClassificationTrainer StochasticDualCoordinateAscent(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, - StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options options) + public static SdcaMulticlassClassificationTrainer Sdca(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + SdcaMulticlassClassificationTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, options); + return new SdcaMulticlassClassificationTrainer(env, options); } /// - /// Predict a target using a linear binary classification model trained with . + /// Predict a target using a linear binary classification model trained with . /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -349,7 +349,7 @@ public static StochasticDualCoordinateAscentMulticlassClassificationTrainer Stoc /// ]]> /// /// - public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( + public static AveragedPerceptronTrainer AveragedPerceptron( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, @@ -362,11 +362,11 @@ public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new AveragedPerceptronBinaryClassificationTrainer(env, labelColumnName, featureColumnName, lossFunction ?? new LogLoss(), learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); + return new AveragedPerceptronTrainer(env, labelColumnName, featureColumnName, lossFunction ?? new LogLoss(), learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); } /// - /// Predict a target using a linear binary classification model trained with and advanced options. + /// Predict a target using a linear binary classification model trained with and advanced options. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -377,14 +377,14 @@ public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( /// ]]> /// /// - public static AveragedPerceptronBinaryClassificationTrainer AveragedPerceptron( - this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, AveragedPerceptronBinaryClassificationTrainer.Options options) + public static AveragedPerceptronTrainer AveragedPerceptron( + this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, AveragedPerceptronTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new AveragedPerceptronBinaryClassificationTrainer(env, options); + return new AveragedPerceptronTrainer(env, options); } private sealed class TrivialClassificationLossFactory : ISupportClassificationLossFactory @@ -403,7 +403,7 @@ public IClassificationLoss CreateComponent(IHostEnvironment env) } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The name of the label column. @@ -413,34 +413,34 @@ public IClassificationLoss CreateComponent(IHostEnvironment env) /// Decrease learning rate as iterations progress. /// L2 regularization weight. /// Number of training iterations through the data. - public static OnlineGradientDescentRegressionTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, + public static OnlineGradientDescentTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, IRegressionLoss lossFunction = null, - float learningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.LearningRate, - bool decreaseLearningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, + float learningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.LearningRate, + bool decreaseLearningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, float l2RegularizerWeight = AveragedLinearOptions.AveragedDefault.L2RegularizerWeight, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - return new OnlineGradientDescentRegressionTrainer(env, labelColumnName, featureColumnName, learningRate, decreaseLearningRate, l2RegularizerWeight, + return new OnlineGradientDescentTrainer(env, labelColumnName, featureColumnName, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations, lossFunction); } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// Advanced arguments to the algorithm. - public static OnlineGradientDescentRegressionTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, - OnlineGradientDescentRegressionTrainer.Options options) + public static OnlineGradientDescentTrainer OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, + OnlineGradientDescentTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new OnlineGradientDescentRegressionTrainer(env, options); + return new OnlineGradientDescentTrainer(env, options); } /// @@ -575,18 +575,18 @@ public static LogisticRegressionMulticlassClassificationTrainer LogisticRegressi } /// - /// Predicts a target using a linear multiclass classification model trained with the . - /// The trains a multiclass Naive Bayes predictor that supports binary feature values. + /// Predicts a target using a linear multiclass classification model trained with the . + /// The trains a multiclass Naive Bayes predictor that supports binary feature values. /// /// The . /// The name of the label column. /// The name of the feature column. - public static NaiveBayesMulticlassClassificationTrainer NaiveBayes(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static NaiveBayesTrainer NaiveBayes(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features) { Contracts.CheckValue(catalog, nameof(catalog)); - return new NaiveBayesMulticlassClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName); + return new NaiveBayesTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName); } /// @@ -610,11 +610,11 @@ private static ICalibratorTrainer GetCalibratorTrainerOrThrow(IExceptionContext } /// - /// Predicts a target using a linear multiclass classification model trained with the . + /// Predicts a target using a linear multiclass classification model trained with the . /// /// /// - /// In In this strategy, a binary classification algorithm is used to train one classifier for each class, + /// In In this strategy, a binary classification algorithm is used to train one classifier for each class, /// which distinguishes that class from all other classes. Prediction is then performed by running these binary classifiers, /// and choosing the prediction with the highest confidence score. /// @@ -627,7 +627,7 @@ private static ICalibratorTrainer GetCalibratorTrainerOrThrow(IExceptionContext /// Number of instances to train the calibrator. /// Use probabilities (vs. raw outputs) to identify top-score category. /// The type of the model. This type parameter will usually be inferred automatically from . - public static OneVersusAllMulticlassClassificationTrainer OneVersusAll(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static OneVersusAllTrainer OneVersusAll(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, ITrainerEstimator, TModel> binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -640,11 +640,11 @@ public static OneVersusAllMulticlassClassificationTrainer OneVersusAll(t var env = CatalogUtils.GetEnvironment(catalog); if (!(binaryEstimator is ITrainerEstimator>, IPredictorProducing> est)) throw env.ExceptParam(nameof(binaryEstimator), "Trainer estimator does not appear to produce the right kind of model."); - return new OneVersusAllMulticlassClassificationTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maxCalibrationExamples, useProbabilities); + return new OneVersusAllTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maxCalibrationExamples, useProbabilities); } /// - /// Predicts a target using a linear multiclass classification model trained with the . + /// Predicts a target using a linear multiclass classification model trained with the . /// /// /// @@ -660,7 +660,7 @@ public static OneVersusAllMulticlassClassificationTrainer OneVersusAll(t /// Whether to treat missing labels as having negative labels, instead of keeping them missing. /// Number of instances to train the calibrator. /// The type of the model. This type parameter will usually be inferred automatically from . - public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCoupling(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, + public static PairwiseCouplingTrainer PairwiseCoupling(this MulticlassClassificationCatalog.MulticlassClassificationTrainers catalog, ITrainerEstimator, TModel> binaryEstimator, string labelColumnName = DefaultColumnNames.Label, bool imputeMissingLabelsAsNegative = false, @@ -672,12 +672,12 @@ public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCoupling>, IPredictorProducing> est)) throw env.ExceptParam(nameof(binaryEstimator), "Trainer estimator does not appear to produce the right kind of model."); - return new PairwiseCouplingMulticlassClassificationTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, + return new PairwiseCouplingTrainer(env, est, labelColumnName, imputeMissingLabelsAsNegative, GetCalibratorTrainerOrThrow(env, calibrator), maximumCalibrationExampleCount); } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// /// @@ -695,18 +695,18 @@ public static PairwiseCouplingMulticlassClassificationTrainer PairwiseCouplingThe name of the feature column. /// The name of the example weight column (optional). /// The number of training iteraitons. - public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static LinearSvmTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations) { Contracts.CheckValue(catalog, nameof(catalog)); - return new LinearSvmBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName, exampleWeightColumnName, numIterations); + return new LinearSvmTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, featureColumnName, exampleWeightColumnName, numIterations); } /// - /// Predict a target using a linear binary classification model trained with the trainer. + /// Predict a target using a linear binary classification model trained with the trainer. /// /// /// @@ -721,17 +721,17 @@ public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassifi /// /// The . /// Advanced arguments to the algorithm. - public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, - LinearSvmBinaryClassificationTrainer.Options options) + public static LinearSvmTrainer LinearSvm(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + LinearSvmTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); - return new LinearSvmBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), options); + return new LinearSvmTrainer(CatalogUtils.GetEnvironment(catalog), options); } /// - /// Predict a target using a binary classification model trained with trainer. + /// Predict a target using a binary classification model trained with trainer. /// /// /// This trainer uses the proportion of a label in the training set as the probability of that label. @@ -746,12 +746,12 @@ public static LinearSvmBinaryClassificationTrainer LinearSvm(this BinaryClassifi /// [!code-csharp[FastTree](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/BinaryClassification/PriorTrainerSample.cs)] /// ]]> /// - public static PriorBinaryClassificationTrainer Prior(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, + public static PriorTrainer Prior(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, string labelColumnName = DefaultColumnNames.Label, string exampleWeightColumnName = null) { Contracts.CheckValue(catalog, nameof(catalog)); - return new PriorBinaryClassificationTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, exampleWeightColumnName); + return new PriorTrainer(CatalogUtils.GetEnvironment(catalog), labelColumnName, exampleWeightColumnName); } } } diff --git a/src/Microsoft.ML.StaticPipe/FactorizationMachineStatic.cs b/src/Microsoft.ML.StaticPipe/FactorizationMachineStatic.cs index 007bf5d67a..69d726907f 100644 --- a/src/Microsoft.ML.StaticPipe/FactorizationMachineStatic.cs +++ b/src/Microsoft.ML.StaticPipe/FactorizationMachineStatic.cs @@ -40,7 +40,7 @@ public static (Scalar score, Scalar predictedLabel) FieldAwareFacto var rec = new CustomReconciler((env, labelCol, featureCols) => { - var trainer = new FieldAwareFactorizationMachineBinaryClassificationTrainer(env, featureCols, labelCol); + var trainer = new FieldAwareFactorizationMachineTrainer(env, featureCols, labelCol); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -66,7 +66,7 @@ public static (Scalar score, Scalar predictedLabel) FieldAwareFacto /// The predicted output. public static (Scalar score, Scalar predictedLabel) FieldAwareFactorizationMachine(this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Scalar label, Vector[] features, - FieldAwareFactorizationMachineBinaryClassificationTrainer.Options options, + FieldAwareFactorizationMachineTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -77,7 +77,7 @@ public static (Scalar score, Scalar predictedLabel) FieldAwareFacto var rec = new CustomReconciler((env, labelCol, featureCols) => { - var trainer = new FieldAwareFactorizationMachineBinaryClassificationTrainer(env, options); + var trainer = new FieldAwareFactorizationMachineTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); else diff --git a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs index 5a93df90ce..17b5ecd247 100644 --- a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs +++ b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML.StaticPipe { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { @@ -28,7 +28,7 @@ public static class KMeansClusteringExtensions /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights = null, - int clustersCount = KMeansPlusPlusClusteringTrainer.Defaults.NumberOfClusters, + int clustersCount = KMeansPlusPlusTrainer.Defaults.NumberOfClusters, Action onFit = null) { Contracts.CheckValue(features, nameof(features)); @@ -39,14 +39,14 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste var rec = new TrainerEstimatorReconciler.Clustering( (env, featuresName, weightsName) => { - var options = new KMeansPlusPlusClusteringTrainer.Options + var options = new KMeansPlusPlusTrainer.Options { FeatureColumnName = featuresName, NumberOfClusters = clustersCount, ExampleWeightColumnName = weightsName }; - var trainer = new KMeansPlusPlusClusteringTrainer(env, options); + var trainer = new KMeansPlusPlusTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -72,7 +72,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights, - KMeansPlusPlusClusteringTrainer.Options options, + KMeansPlusPlusTrainer.Options options, Action onFit = null) { Contracts.CheckValueOrNull(onFit); @@ -84,7 +84,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new KMeansPlusPlusClusteringTrainer(env, options); + var trainer = new KMeansPlusPlusTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs index fee207ad7b..0408ca85d9 100644 --- a/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs +++ b/src/Microsoft.ML.StaticPipe/MatrixFactorizationStatic.cs @@ -30,7 +30,7 @@ public static class MatrixFactorizationExtensions /// The predicted output. public static Scalar MatrixFactorization(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Key matrixColumnIndex, Key matrixRowIndex, - MatrixFactorizationRecommendationTrainer.Options options, + MatrixFactorizationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -45,7 +45,7 @@ public static Scalar MatrixFactorization(this RegressionCatalog.Regres options.MatrixRowIndexColumnName = matrixRowIndexColName; options.LabelColumnName = labelColName; - var trainer = new MatrixFactorizationRecommendationTrainer(env, options); + var trainer = new MatrixFactorizationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs b/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs index e7518cfce2..f01124156e 100644 --- a/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs +++ b/src/Microsoft.ML.StaticPipe/MultiClassNaiveBayesStatic.cs @@ -38,7 +38,7 @@ public static (Vector score, Key predictedLabel) var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new NaiveBayesMulticlassClassificationTrainer(env, labelName, featuresName); + var trainer = new NaiveBayesTrainer(env, labelName, featuresName); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs b/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs index bbcae7096d..72a65aebc5 100644 --- a/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs +++ b/src/Microsoft.ML.StaticPipe/OnlineLearnerStatic.cs @@ -32,7 +32,7 @@ public static class AveragedPerceptronStaticExtensions /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// /// /// score, Scalar predictedLabel) AveragedPercept (env, labelName, featuresName, weightsName) => { - var trainer = new AveragedPerceptronBinaryClassificationTrainer(env, labelName, featuresName, lossFunction, + var trainer = new AveragedPerceptronTrainer(env, labelName, featuresName, lossFunction, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations); if (onFit != null) @@ -89,7 +89,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// /// /// score, Scalar predictedLabel) AveragedPercept Vector features, Scalar weights, IClassificationLoss lossFunction, - AveragedPerceptronBinaryClassificationTrainer.Options options, + AveragedPerceptronTrainer.Options options, Action onFit = null ) { @@ -120,7 +120,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new AveragedPerceptronBinaryClassificationTrainer(env, options); + var trainer = new AveragedPerceptronTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -139,7 +139,7 @@ public static (Scalar score, Scalar predictedLabel) AveragedPercept public static class OnlineGradientDescentExtensions { /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -157,16 +157,16 @@ public static class OnlineGradientDescentExtensions /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// The predicted output. public static Scalar OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights = null, IRegressionLoss lossFunction = null, - float learningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.LearningRate, - bool decreaseLearningRate = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, - float l2RegularizerWeight = OnlineGradientDescentRegressionTrainer.Options.OgdDefaultArgs.L2RegularizerWeight, + float learningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.LearningRate, + bool decreaseLearningRate = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.DecreaseLearningRate, + float l2RegularizerWeight = OnlineGradientDescentTrainer.Options.OgdDefaultArgs.L2RegularizerWeight, int numIterations = OnlineLinearOptions.OnlineDefault.NumIterations, Action onFit = null) { @@ -176,7 +176,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new OnlineGradientDescentRegressionTrainer(env, labelName, featuresName, learningRate, + var trainer = new OnlineGradientDescentTrainer(env, labelName, featuresName, learningRate, decreaseLearningRate, l2RegularizerWeight, numIterations, lossFunction); if (onFit != null) @@ -189,7 +189,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress } /// - /// Predict a target using a linear regression model trained with the trainer. + /// Predict a target using a linear regression model trained with the trainer. /// /// The regression catalog trainer object. /// The label, or dependent variable. @@ -203,13 +203,13 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress /// result in any way; it is only a way for the caller to be informed about what was learnt. /// The set of output columns including in order the predicted binary classification score (which will range /// from negative to positive infinity), and the predicted label. - /// . + /// . /// The predicted output. public static Scalar OnlineGradientDescent(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights, - OnlineGradientDescentRegressionTrainer.Options options, + OnlineGradientDescentTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -224,7 +224,7 @@ public static Scalar OnlineGradientDescent(this RegressionCatalog.Regress options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new OnlineGradientDescentRegressionTrainer(env, options); + var trainer = new OnlineGradientDescentTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs b/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs index bc71bbba4f..af35f93554 100644 --- a/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs +++ b/src/Microsoft.ML.StaticPipe/SdcaStaticExtensions.cs @@ -57,7 +57,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal var rec = new TrainerEstimatorReconciler.Regression( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticDualCoordinateAscentRegressionTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new SdcaRegressionTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -88,7 +88,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal /// public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catalog, Scalar label, Vector features, Scalar weights, - StochasticDualCoordinateAscentRegressionTrainer.Options options, + SdcaRegressionTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -103,7 +103,7 @@ public static Scalar Sdca(this RegressionCatalog.RegressionTrainers catal options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new StochasticDualCoordinateAscentRegressionTrainer(env, options); + var trainer = new SdcaRegressionTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -154,7 +154,7 @@ public static (Scalar score, Scalar probability, Scalar pred var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, labelName, featuresName, weightsName, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new SdcaCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -192,7 +192,7 @@ public static (Scalar score, Scalar probability, Scalar pred public static (Scalar score, Scalar probability, Scalar predictedLabel) Sdca( this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Scalar label, Vector features, Scalar weights, - StochasticDualCoordinateAscentBinaryClassificationTrainer.Options options, + SdcaCalibratedBinaryClassificationTrainer.Options options, Action> onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -207,7 +207,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new StochasticDualCoordinateAscentBinaryClassificationTrainer(env, options); + var trainer = new SdcaCalibratedBinaryClassificationTrainer(env, options); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -263,7 +263,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new SdcaNonCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -299,7 +299,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat this BinaryClassificationCatalog.BinaryClassificationTrainers catalog, Scalar label, Vector features, Scalar weights, ISupportSdcaClassificationLoss loss, - StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options options, + SdcaNonCalibratedBinaryClassificationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -314,7 +314,7 @@ public static (Scalar score, Scalar predictedLabel) SdcaNonCalibrat options.FeatureColumnName = featuresName; options.LabelColumnName = labelName; - var trainer = new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer(env, options); + var trainer = new SdcaNonCalibratedBinaryClassificationTrainer(env, options); if (onFit != null) { return trainer.WithOnFitDelegate(trans => @@ -368,7 +368,7 @@ public static (Vector score, Key predictedLabel) Sdca( var rec = new TrainerEstimatorReconciler.MulticlassClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); + var trainer = new SdcaMulticlassClassificationTrainer(env, labelName, featuresName, weightsName, loss, l2Regularization, l1Threshold, numberOfIterations); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; @@ -396,7 +396,7 @@ public static (Vector score, Key predictedLabel) Sdca( Key label, Vector features, Scalar weights, - StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options options, + SdcaMulticlassClassificationTrainer.Options options, Action onFit = null) { Contracts.CheckValue(label, nameof(label)); @@ -411,7 +411,7 @@ public static (Vector score, Key predictedLabel) Sdca( options.LabelColumnName = labelName; options.FeatureColumnName = featuresName; - var trainer = new StochasticDualCoordinateAscentMulticlassClassificationTrainer(env, options); + var trainer = new SdcaMulticlassClassificationTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); return trainer; diff --git a/src/Microsoft.ML.StaticPipe/SgdStatic.cs b/src/Microsoft.ML.StaticPipe/SgdStatic.cs index 92296d2ef3..3765238597 100644 --- a/src/Microsoft.ML.StaticPipe/SgdStatic.cs +++ b/src/Microsoft.ML.StaticPipe/SgdStatic.cs @@ -14,7 +14,7 @@ namespace Microsoft.ML.StaticPipe public static class SgdStaticExtensions { /// - /// Predict a target using logistic regression trained with the trainer. + /// Predict a target using logistic regression trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -34,15 +34,15 @@ public static (Scalar score, Scalar probability, Scalar pred Scalar label, Vector features, Scalar weights = null, - int numberOfIterations = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = StochasticGradientDescentBinaryClassificationTrainer.Options.Defaults.L2Regularization, + int numberOfIterations = SgdCalibratedTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = SgdCalibratedTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = SgdCalibratedTrainer.Options.Defaults.L2Regularization, Action> onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifier( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticGradientDescentBinaryClassificationTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization); + var trainer = new SgdCalibratedTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -54,7 +54,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using logistic regression trained with the trainer. + /// Predict a target using logistic regression trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -72,7 +72,7 @@ public static (Scalar score, Scalar probability, Scalar pred Scalar label, Vector features, Scalar weights, - StochasticGradientDescentBinaryClassificationTrainer.Options options, + SgdCalibratedTrainer.Options options, Action> onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifier( @@ -82,7 +82,7 @@ public static (Scalar score, Scalar probability, Scalar pred options.LabelColumnName = labelName; options.ExampleWeightColumnName = weightsName; - var trainer = new StochasticGradientDescentBinaryClassificationTrainer(env, options); + var trainer = new SgdCalibratedTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -94,7 +94,7 @@ public static (Scalar score, Scalar probability, Scalar pred } /// - /// Predict a target using a linear classification model trained with the trainer. + /// Predict a target using a linear classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -115,16 +115,16 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi Scalar label, Vector features, Scalar weights = null, - int numberOfIterations = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.NumberOfIterations, - double initialLearningRate = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.InitialLearningRate, - float l2Regularization = StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options.Defaults.L2Regularization, + int numberOfIterations = SgdNonCalibratedTrainer.Options.Defaults.NumberOfIterations, + double initialLearningRate = SgdNonCalibratedTrainer.Options.Defaults.InitialLearningRate, + float l2Regularization = SgdNonCalibratedTrainer.Options.Defaults.L2Regularization, IClassificationLoss loss = null, Action onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( (env, labelName, featuresName, weightsName) => { - var trainer = new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, labelName, featuresName, weightsName, + var trainer = new SgdNonCalibratedTrainer(env, labelName, featuresName, weightsName, numberOfIterations, initialLearningRate, l2Regularization, loss); if (onFit != null) @@ -137,7 +137,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi } /// - /// Predict a target using a linear classification model trained with the trainer. + /// Predict a target using a linear classification model trained with the trainer. /// /// The binary classification catalog trainer object. /// The name of the label column. @@ -155,7 +155,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi Scalar label, Vector features, Scalar weights, - StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options options, + SgdNonCalibratedTrainer.Options options, Action onFit = null) { var rec = new TrainerEstimatorReconciler.BinaryClassifierNoCalibration( @@ -165,7 +165,7 @@ public static (Scalar score, Scalar predictedLabel) StochasticGradi options.LabelColumnName = labelName; options.ExampleWeightColumnName = weightsName; - var trainer = new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer(env, options); + var trainer = new SgdNonCalibratedTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv index 36e0afffda..8d3392a2d7 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv +++ b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv @@ -39,37 +39,37 @@ TimeSeriesProcessingEntryPoints.PValueTransform This P-Value transform calculate TimeSeriesProcessingEntryPoints.SlidingWindowTransform Returns the last values for a time series [y(t-d-l+1), y(t-d-l+2), ..., y(t-l-1), y(t-l)] where d is the size of the window, l the lag and y is a Float. Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SlidingWindowTransform Microsoft.ML.Transforms.TimeSeries.SlidingWindowTransformBase`1+Arguments[System.Single] Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput TimeSeriesProcessingEntryPoints.SsaChangePointDetector This transform detects the change-points in a seasonal time-series using Singular Spectrum Analysis (SSA). Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SsaChangePointDetector Microsoft.ML.Transforms.TimeSeries.SsaChangePointDetector+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput TimeSeriesProcessingEntryPoints.SsaSpikeDetector This transform detects the spikes in a seasonal time-series using Singular Spectrum Analysis (SSA). Microsoft.ML.Transforms.TimeSeries.TimeSeriesProcessingEntryPoints SsaSpikeDetector Microsoft.ML.Transforms.TimeSeries.SsaSpikeDetector+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput -Trainers.AveragedPerceptronBinaryClassifier Averaged Perceptron Binary Classifier. Microsoft.ML.Trainers.AveragedPerceptronBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.AveragedPerceptronBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.AveragedPerceptronBinaryClassifier Averaged Perceptron Binary Classifier. Microsoft.ML.Trainers.AveragedPerceptronTrainer TrainBinary Microsoft.ML.Trainers.AveragedPerceptronTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.EnsembleBinaryClassifier Train binary ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateBinaryEnsemble Microsoft.ML.Trainers.Ensemble.EnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.EnsembleClassification Train multiclass ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateMultiClassEnsemble Microsoft.ML.Trainers.Ensemble.MulticlassDataPartitionEnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.EnsembleRegression Train regression ensemble. Microsoft.ML.Trainers.Ensemble.Ensemble CreateRegressionEnsemble Microsoft.ML.Trainers.Ensemble.RegressionEnsembleTrainer+Arguments Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.FastForestBinaryClassifier Uses a random forest learner to perform binary classification. Microsoft.ML.Trainers.FastTree.FastForest TrainBinary Microsoft.ML.Trainers.FastTree.FastForestClassification+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.FastForestBinaryClassifier Uses a random forest learner to perform binary classification. Microsoft.ML.Trainers.FastTree.FastForest TrainBinary Microsoft.ML.Trainers.FastTree.FastForestBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.FastForestRegressor Trains a random forest to fit target values using least-squares. Microsoft.ML.Trainers.FastTree.FastForest TrainRegression Microsoft.ML.Trainers.FastTree.FastForestRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.FastTreeBinaryClassifier Uses a logit-boost boosted tree learner to perform binary classification. Microsoft.ML.Trainers.FastTree.FastTree TrainBinary Microsoft.ML.Trainers.FastTree.FastTreeBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.FastTreeRanker Trains gradient boosted decision trees to the LambdaRank quasi-gradient. Microsoft.ML.Trainers.FastTree.FastTree TrainRanking Microsoft.ML.Trainers.FastTree.FastTreeRankingTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput Trainers.FastTreeRegressor Trains gradient boosted decision trees to fit target values using least-squares. Microsoft.ML.Trainers.FastTree.FastTree TrainRegression Microsoft.ML.Trainers.FastTree.FastTreeRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.FastTreeTweedieRegressor Trains gradient boosted decision trees to fit target values using a Tweedie loss function. This learner is a generalization of Poisson, compound Poisson, and gamma regression. Microsoft.ML.Trainers.FastTree.FastTree TrainTweedieRegression Microsoft.ML.Trainers.FastTree.FastTreeTweedieRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.FieldAwareFactorizationMachineBinaryClassifier Train a field-aware factorization machine for binary classification Microsoft.ML.Trainers.FieldAwareFactorizationMachineBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.FieldAwareFactorizationMachineBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.GeneralizedAdditiveModelBinaryClassifier 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.Trainers.FastTree.Gam TrainBinary Microsoft.ML.Trainers.FastTree.GeneralizedAdditiveModelBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -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.Trainers.FastTree.Gam TrainRegression Microsoft.ML.Trainers.FastTree.GeneralizedAdditiveModelRegressionTrainer+Options Microsoft.ML.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.Trainers.KMeansPlusPlusClusteringTrainer TrainKMeans Microsoft.ML.Trainers.KMeansPlusPlusClusteringTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput +Trainers.FastTreeTweedieRegressor Trains gradient boosted decision trees to fit target values using a Tweedie loss function. This learner is a generalization of Poisson, compound Poisson, and gamma regression. Microsoft.ML.Trainers.FastTree.FastTree TrainTweedieRegression Microsoft.ML.Trainers.FastTree.FastTreeTweedieTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.FieldAwareFactorizationMachineBinaryClassifier Train a field-aware factorization machine for binary classification Microsoft.ML.Trainers.FieldAwareFactorizationMachineTrainer TrainBinary Microsoft.ML.Trainers.FieldAwareFactorizationMachineTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.GeneralizedAdditiveModelBinaryClassifier 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.Trainers.FastTree.Gam TrainBinary Microsoft.ML.Trainers.FastTree.GamBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +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.Trainers.FastTree.Gam TrainRegression Microsoft.ML.Trainers.FastTree.GamRegressionTrainer+Options Microsoft.ML.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.Trainers.KMeansPlusPlusTrainer TrainKMeans Microsoft.ML.Trainers.KMeansPlusPlusTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput Trainers.LightGbmBinaryClassifier Train a LightGBM binary classification model. Microsoft.ML.LightGBM.LightGbm TrainBinary Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LightGbmClassifier Train a LightGBM multi class model. Microsoft.ML.LightGBM.LightGbm TrainMultiClass Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.LightGbmRanker Train a LightGBM ranking model. Microsoft.ML.LightGBM.LightGbm TrainRanking Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput Trainers.LightGbmRegressor LightGBM Regression Microsoft.ML.LightGBM.LightGbm TrainRegression Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Trainers.LinearSvmBinaryClassificationTrainer TrainLinearSvm Microsoft.ML.Trainers.LinearSvmBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.LinearSvmBinaryClassifier Train a linear SVM. Microsoft.ML.Trainers.LinearSvmTrainer TrainLinearSvm Microsoft.ML.Trainers.LinearSvmTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LogisticRegressionBinaryClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainBinary Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LogisticRegressionClassifier Logistic Regression is a method in statistics used to predict the probability of occurrence of an event and can be used as a classification algorithm. The algorithm predicts the probability of occurrence of an event by fitting data to a logistical function. Microsoft.ML.Trainers.LogisticRegressionBinaryClassificationTrainer TrainMultiClass Microsoft.ML.Trainers.LogisticRegressionMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Trainers.NaiveBayesMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer TrainRegression Microsoft.ML.Trainers.OnlineGradientDescentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.OrdinaryLeastSquaresRegressor Train an OLS regression model. Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer TrainRegression Microsoft.ML.Trainers.OrdinaryLeastSquaresRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput -Trainers.PcaAnomalyDetector Train an PCA Anomaly model. Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer TrainPcaAnomaly Microsoft.ML.Trainers.RandomizedPcaAnomalyDetectionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput +Trainers.NaiveBayesClassifier Train a MultiClassNaiveBayesTrainer. Microsoft.ML.Trainers.NaiveBayesTrainer TrainMultiClassNaiveBayesTrainer Microsoft.ML.Trainers.NaiveBayesTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.OnlineGradientDescentRegressor Train a Online gradient descent perceptron. Microsoft.ML.Trainers.OnlineGradientDescentTrainer TrainRegression Microsoft.ML.Trainers.OnlineGradientDescentTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.OrdinaryLeastSquaresRegressor Train an OLS regression model. Microsoft.ML.Trainers.OlsTrainer TrainRegression Microsoft.ML.Trainers.OlsTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.PcaAnomalyDetector Train an PCA Anomaly model. Microsoft.ML.Trainers.RandomizedPcaTrainer TrainPcaAnomaly Microsoft.ML.Trainers.RandomizedPcaTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+AnomalyDetectionOutput Trainers.PoissonRegressor Train an Poisson regression model. Microsoft.ML.Trainers.PoissonRegressionTrainer TrainRegression Microsoft.ML.Trainers.PoissonRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticDualCoordinateAscentBinaryClassifier Train an SDCA binary model. Microsoft.ML.Trainers.Sdca TrainBinary Microsoft.ML.Trainers.LegacySdcaBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.StochasticDualCoordinateAscentClassifier The SDCA linear multi-class classification trainer. Microsoft.ML.Trainers.Sdca TrainMultiClass Microsoft.ML.Trainers.StochasticDualCoordinateAscentMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput -Trainers.StochasticDualCoordinateAscentRegressor The SDCA linear regression trainer. Microsoft.ML.Trainers.Sdca TrainRegression Microsoft.ML.Trainers.StochasticDualCoordinateAscentRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput +Trainers.StochasticDualCoordinateAscentClassifier The SDCA linear multi-class classification trainer. Microsoft.ML.Trainers.Sdca TrainMultiClass Microsoft.ML.Trainers.SdcaMulticlassClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput +Trainers.StochasticDualCoordinateAscentRegressor The SDCA linear regression trainer. Microsoft.ML.Trainers.Sdca TrainRegression Microsoft.ML.Trainers.SdcaRegressionTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+RegressionOutput Trainers.StochasticGradientDescentBinaryClassifier Train an Hogwild SGD binary model. Microsoft.ML.Trainers.LegacySgdBinaryTrainer TrainBinary Microsoft.ML.Trainers.LegacySgdBinaryTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput -Trainers.SymSgdBinaryClassifier Train a symbolic SGD. Microsoft.ML.Trainers.SymbolicSgdBinaryClassificationTrainer TrainSymSgd Microsoft.ML.Trainers.SymbolicSgdBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput +Trainers.SymSgdBinaryClassifier Train a symbolic SGD. Microsoft.ML.Trainers.SymbolicSgdTrainer TrainSymSgd Microsoft.ML.Trainers.SymbolicSgdTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Transforms.ApproximateBootstrapSampler Approximate bootstrap sampling. Microsoft.ML.Transforms.BootstrapSample GetSample Microsoft.ML.Transforms.BootstrapSamplingTransformer+Options Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput Transforms.BinaryPredictionScoreColumnsRenamer For binary prediction, it renames the PredictedLabel and Score columns to include the name of the positive class. Microsoft.ML.EntryPoints.ScoreModel RenameBinaryPredictionScoreColumns Microsoft.ML.EntryPoints.ScoreModel+RenameBinaryPredictionScoreColumnsInput Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput Transforms.BinNormalizer The values are assigned into equidensity bins and a value is mapped to its bin_number/number_of_bins. Microsoft.ML.Data.Normalize Bin Microsoft.ML.Transforms.NormalizeTransform+BinArguments Microsoft.ML.EntryPoints.CommonOutputs+TransformOutput diff --git a/test/Microsoft.ML.Benchmarks/PredictionEngineBench.cs b/test/Microsoft.ML.Benchmarks/PredictionEngineBench.cs index 5438387899..13fa3ce3f5 100644 --- a/test/Microsoft.ML.Benchmarks/PredictionEngineBench.cs +++ b/test/Microsoft.ML.Benchmarks/PredictionEngineBench.cs @@ -57,8 +57,8 @@ public void SetupIrisPipeline() IDataView data = loader.Load(_irisDataPath); var pipeline = new ColumnConcatenatingEstimator(env, "Features", new[] { "SepalLength", "SepalWidth", "PetalLength", "PetalWidth" }) - .Append(env.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options {NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, })); + .Append(env.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options {NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, })); var model = pipeline.Fit(data); @@ -92,8 +92,8 @@ public void SetupSentimentPipeline() IDataView data = loader.Load(_sentimentDataPath); var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options {NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, })); + .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options {NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, })); var model = pipeline.Fit(data); @@ -126,8 +126,8 @@ public void SetupBreastCancerPipeline() IDataView data = loader.Load(_breastCancerDataPath); - var pipeline = env.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, }); + var pipeline = env.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1, ConvergenceTolerance = 1e-2f, }); var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs index d43fa2a110..7103bccbad 100644 --- a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs +++ b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs @@ -71,7 +71,7 @@ private TransformerChain(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -69,7 +69,7 @@ public void CV_Multiclass_WikiDetox_WordEmbeddings_OVAAveragedPerceptron() " xf=WordEmbeddingsTransform{col=FeaturesWordEmbedding:FeaturesText_TransformedText model=FastTextWikipedia300D}" + " xf=Concat{col=Features:FeaturesText,FeaturesWordEmbedding,logged_in,ns}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -85,7 +85,7 @@ public void CV_Multiclass_WikiDetox_WordEmbeddings_SDCAMC() " xf=WordEmbeddingsTransform{col=FeaturesWordEmbedding:FeaturesText_TransformedText model=FastTextWikipedia300D}" + " xf=Concat{col=Features:FeaturesWordEmbedding,logged_in,ns}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } } @@ -113,7 +113,7 @@ public void SetupScoringSpeedTests() " tr=OVA{p=AveragedPerceptron{iter=10}}" + " out={" + _modelPath_Wiki + "}"; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } @@ -124,7 +124,7 @@ public void Test_Multiclass_WikiDetox_BigramsAndTrichar_OVAAveragedPerceptron() string modelpath = Path.Combine(Path.GetDirectoryName(typeof(MultiClassClassificationTest).Assembly.Location), @"WikiModel.fold000.zip"); string cmd = @"Test data=" + _dataPath_Wiki + " in=" + modelpath; - var environment = EnvironmentFactory.CreateClassificationEnvironment(); + var environment = EnvironmentFactory.CreateClassificationEnvironment(); cmd.ExecuteMamlCommand(environment); } } diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs index a8d6e4577f..440f561629 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/TestEntryPoints.cs @@ -327,7 +327,7 @@ public void EntryPointCatalogCheckDuplicateParams() Env.ComponentCatalog.RegisterAssembly(typeof(LightGbmBinaryModelParameters).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(TensorFlowTransformer).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(ImageLoadingTransformer).Assembly); - Env.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdBinaryClassificationTrainer).Assembly); + Env.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdTrainer).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(SaveOnnxCommand).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(TimeSeriesProcessingEntryPoints).Assembly); Env.ComponentCatalog.RegisterAssembly(typeof(ParquetLoader).Assembly); @@ -697,7 +697,7 @@ public void EntryPointCalibrate() calibratedLrModel = Calibrate.Pav(Env, input).PredictorModel; // This tests that the SchemaBindableCalibratedPredictor doesn't get confused if its sub-predictor is already calibrated. - var fastForest = new FastForestClassification(Env, "Label", "Features"); + var fastForest = new FastForestBinaryClassificationTrainer(Env, "Label", "Features"); var rmd = new RoleMappedData(splitOutput.TrainData[0], "Label", "Features"); var ffModel = new PredictorModelImpl(Env, rmd, splitOutput.TrainData[0], fastForest.Train(rmd)); var calibratedFfModel = Calibrate.Platt(Env, @@ -3391,11 +3391,11 @@ public void EntryPointPcaPredictorSummary() InputFile = inputFile, }).Data; - var pcaInput = new RandomizedPcaAnomalyDetectionTrainer.Options + var pcaInput = new RandomizedPcaTrainer.Options { TrainingData = dataView, }; - var model = RandomizedPcaAnomalyDetectionTrainer.TrainPcaAnomaly(Env, pcaInput).PredictorModel; + var model = RandomizedPcaTrainer.TrainPcaAnomaly(Env, pcaInput).PredictorModel; var output = SummarizePredictor.Summarize(Env, new SummarizePredictor.Input() { PredictorModel = model }); diff --git a/test/Microsoft.ML.Functional.Tests/DataTransformation.cs b/test/Microsoft.ML.Functional.Tests/DataTransformation.cs index 68eb944c6a..fc16d312ef 100644 --- a/test/Microsoft.ML.Functional.Tests/DataTransformation.cs +++ b/test/Microsoft.ML.Functional.Tests/DataTransformation.cs @@ -144,8 +144,8 @@ void ExtensibilityModifyTextFeaturization() VectorNormalizer = TextFeaturizingEstimator.NormFunction.L1 }, "SentimentText") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.BinaryClassification.Trainers.SdcaCalibrated( + new SdcaCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Functional.Tests/Evaluation.cs b/test/Microsoft.ML.Functional.Tests/Evaluation.cs index a26671c3cd..3491168a9c 100644 --- a/test/Microsoft.ML.Functional.Tests/Evaluation.cs +++ b/test/Microsoft.ML.Functional.Tests/Evaluation.cs @@ -64,8 +64,8 @@ public void TrainAndEvaluateBinaryClassification() // Create a training pipeline. var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -122,7 +122,7 @@ public void TrainAndEvaluateClustering() // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new KMeansPlusPlusClusteringTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new KMeansPlusPlusTrainer.Options { NumberOfThreads = 1 })); // Train the model. var model = pipeline.Fit(data); @@ -150,8 +150,8 @@ public void TrainAndEvaluateMulticlassClassification() // Create a training pipeline. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1})); + .Append(mlContext.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { NumberOfThreads = 1})); // Train the model. var model = pipeline.Fit(data); @@ -209,7 +209,7 @@ public void TrainAndEvaluateRecommendation() // Create a pipeline to train on the sentiment data. var pipeline = mlContext.Recommendation().Trainers.MatrixFactorization( - new MatrixFactorizationRecommendationTrainer.Options{ + new MatrixFactorizationTrainer.Options{ MatrixColumnIndexColumnName = "MatrixColumnIndex", MatrixRowIndexColumnName = "MatrixRowIndex", LabelColumnName = "Label", diff --git a/test/Microsoft.ML.Functional.Tests/Explainability.cs b/test/Microsoft.ML.Functional.Tests/Explainability.cs index 09a9635010..3cb4d08b60 100644 --- a/test/Microsoft.ML.Functional.Tests/Explainability.cs +++ b/test/Microsoft.ML.Functional.Tests/Explainability.cs @@ -34,7 +34,7 @@ public void GlobalFeatureImportanceWithPermutationFeatureImportance() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.Regression.Trainers.Sdca()); // Fit the pipeline and transform the data. var model = pipeline.Fit(data); @@ -66,7 +66,7 @@ public void GlobalFeatureImportanceForLinearModelThroughWeights() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.Regression.Trainers.Sdca()); // Fit the pipeline and transform the data. var model = pipeline.Fit(data); @@ -144,7 +144,7 @@ public void LocalFeatureImportanceForLinearModel() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.Regression.Trainers.Sdca()); // Fit the pipeline and transform the data. var model = pipeline.Fit(data); @@ -256,7 +256,7 @@ public void LocalFeatureImportanceForGamModel() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel(numberOfIterations: 2)); + .Append(mlContext.Regression.Trainers.Gam(numberOfIterations: 2)); // Fit the pipeline and transform the data. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs index 6baf0bedba..cf0c2e4c7c 100644 --- a/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs +++ b/test/Microsoft.ML.Functional.Tests/IntrospectiveTraining.cs @@ -142,8 +142,8 @@ void IntrospectGamShapeFunctions() // Compose the transformation. var pipeline = mlContext.Transforms.Concatenate("Features", Iris.Features) - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel( - new GeneralizedAdditiveModelRegressionTrainer.Options { NumberOfIterations = 100, NumberOfThreads = 1 })); + .Append(mlContext.Regression.Trainers.Gam( + new GamRegressionTrainer.Options { NumberOfIterations = 100, NumberOfThreads = 1 })); // Fit the pipeline. var model = pipeline.Fit(data); @@ -216,8 +216,8 @@ public void InpsectLinearModelParameters() // Create a training pipeline. var pipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Fit the pipeline. var model = pipeline.Fit(data); @@ -421,9 +421,9 @@ private IEstimator>> StepTwo(MLContext mlContext) { return mlContext.Transforms.Conversion.MapValueToKey("Label") - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { + .Append(mlContext.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 10, NumberOfThreads = 1 })); } diff --git a/test/Microsoft.ML.Functional.Tests/Prediction.cs b/test/Microsoft.ML.Functional.Tests/Prediction.cs index 9bad405571..1dec8da1ed 100644 --- a/test/Microsoft.ML.Functional.Tests/Prediction.cs +++ b/test/Microsoft.ML.Functional.Tests/Prediction.cs @@ -32,7 +32,7 @@ public void ReconfigurablePrediction() "CrimesPerCapita", "PercentResidental", "PercentNonRetail", "CharlesRiver", "NitricOxides", "RoomsPerDwelling", "PercentPre40s", "EmploymentDistance", "HighwayDistance", "TaxRate", "TeacherRatio"}) .Append(mlContext.Transforms.CopyColumns("Label", "MedianHomeValue")) - .Append(mlContext.Regression.Trainers.OrdinaryLeastSquares()); + .Append(mlContext.Regression.Trainers.Ols()); var model = pipeline.Fit(split.TrainSet); diff --git a/test/Microsoft.ML.Functional.Tests/Validation.cs b/test/Microsoft.ML.Functional.Tests/Validation.cs index 49a5db6693..eb28f6b420 100644 --- a/test/Microsoft.ML.Functional.Tests/Validation.cs +++ b/test/Microsoft.ML.Functional.Tests/Validation.cs @@ -37,7 +37,7 @@ void CrossValidation() // Create a pipeline to train on the housing data. var pipeline = mlContext.Transforms.Concatenate("Features", HousingRegression.Features) - .Append(mlContext.Regression.Trainers.OrdinaryLeastSquares()); + .Append(mlContext.Regression.Trainers.Ols()); // Compute the CV result. var cvResult = mlContext.Regression.CrossValidate(data, pipeline, numFolds: 5); diff --git a/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs b/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs index 7a59a4fd16..8ef374d434 100644 --- a/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs +++ b/test/Microsoft.ML.Predictor.Tests/TestIniModels.cs @@ -527,7 +527,7 @@ public void TestGamRegressionIni() }).Load(GetDataPath("breast-cancer.txt")); var pipeline = mlContext.Transforms.ReplaceMissingValues("Features") - .Append(mlContext.Regression.Trainers.GeneralizedAdditiveModel()); + .Append(mlContext.Regression.Trainers.Gam()); var model = pipeline.Fit(idv); var data = model.Transform(idv); @@ -566,7 +566,7 @@ public void TestGamBinaryClassificationIni() }).Load(GetDataPath("breast-cancer.txt")); var pipeline = mlContext.Transforms.ReplaceMissingValues("Features") - .Append(mlContext.BinaryClassification.Trainers.GeneralizedAdditiveModel()); + .Append(mlContext.BinaryClassification.Trainers.Gam()); var model = pipeline.Fit(idv); var data = model.Transform(idv); diff --git a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs index 2f0576285d..cfa5d6557c 100644 --- a/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs +++ b/test/Microsoft.ML.Predictor.Tests/TestPredictors.cs @@ -41,7 +41,7 @@ protected override void InitializeEnvironment(IHostEnvironment environment) base.InitializeEnvironment(environment); environment.ComponentCatalog.RegisterAssembly(typeof(LightGbmBinaryModelParameters).Assembly); - environment.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdBinaryClassificationTrainer).Assembly); + environment.ComponentCatalog.RegisterAssembly(typeof(SymbolicSgdTrainer).Assembly); } /// @@ -732,7 +732,7 @@ public void TestEnsembleCombiner() LabelColumnName = DefaultColumnNames.Label, TrainingData = dataView }).PredictorModel, - AveragedPerceptronBinaryClassificationTrainer.TrainBinary(ML, new AveragedPerceptronBinaryClassificationTrainer.Options() + AveragedPerceptronTrainer.TrainBinary(ML, new AveragedPerceptronTrainer.Options() { FeatureColumnName = "Features", LabelColumnName = DefaultColumnNames.Label, diff --git a/test/Microsoft.ML.StaticPipelineTesting/Training.cs b/test/Microsoft.ML.StaticPipelineTesting/Training.cs index d4fd2267e2..c75ea916f2 100644 --- a/test/Microsoft.ML.StaticPipelineTesting/Training.cs +++ b/test/Microsoft.ML.StaticPipelineTesting/Training.cs @@ -45,7 +45,7 @@ public void SdcaRegression() var est = reader.MakeNewEstimator() .Append(r => (r.label, score: catalog.Trainers.Sdca(r.label, r.features, null, - new StochasticDualCoordinateAscentRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new SdcaRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: p => pred = p))); var pipe = reader.Append(est); @@ -87,7 +87,7 @@ public void SdcaRegressionNameCollision() var est = reader.MakeNewEstimator() .Append(r => (r.label, r.Score, score: catalog.Trainers.Sdca(r.label, r.features, null, - new StochasticDualCoordinateAscentRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }))); + new SdcaRegressionTrainer.Options() { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }))); var pipe = reader.Append(est); @@ -118,7 +118,7 @@ public void SdcaBinaryClassification() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.Sdca(r.label, r.features, null, - new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new SdcaCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -198,7 +198,7 @@ public void SdcaBinaryClassificationNoCalibration() // With a custom loss function we no longer get calibrated predictions. var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.SdcaNonCalibrated(r.label, r.features, null, loss, - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, + new SdcaNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 2, NumberOfThreads = 1 }, onFit: p => pred = p))); var pipe = reader.Append(est); @@ -784,7 +784,7 @@ public void KMeans() ( r.features, null, - options: new KMeansPlusPlusClusteringTrainer.Options + options: new KMeansPlusPlusTrainer.Options { NumberOfClusters = 3, NumberOfThreads = 1 @@ -1009,7 +1009,7 @@ public void HogwildSGDLogisticRegression() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.StochasticGradientDescentClassificationTrainer(r.label, r.features, null, - new StochasticGradientDescentBinaryClassificationTrainer.Options { L2Regularization = 0, NumberOfThreads = 1 }, + new SgdCalibratedTrainer.Options { L2Regularization = 0, NumberOfThreads = 1 }, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -1082,7 +1082,7 @@ public void HogwildSGDSupportVectorMachine() var est = reader.MakeNewEstimator() .Append(r => (r.label, preds: catalog.Trainers.StochasticGradientDescentNonCalibratedClassificationTrainer(r.label, r.features, null, - new StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options { L2Regularization = 0, NumberOfThreads = 1, Loss = new HingeLoss()}, + new SgdNonCalibratedTrainer.Options { L2Regularization = 0, NumberOfThreads = 1, Loss = new HingeLoss()}, onFit: (p) => { pred = p; }))); var pipe = reader.Append(est); @@ -1162,7 +1162,7 @@ public void MatrixFactorization() var matrixFactorizationEstimator = reader.MakeNewEstimator() .Append(r => (r.label, score: mlContext.Regression.Trainers.MatrixFactorization( r.label, r.matrixRowIndex, r.matrixColumnIndex, - new MatrixFactorizationRecommendationTrainer.Options { NumberOfThreads = 1 }, + new MatrixFactorizationTrainer.Options { NumberOfThreads = 1 }, onFit: p => pred = p))); // Create a pipeline from the reader (the 1st step) and the matrix factorization estimator (the 2nd step). diff --git a/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs b/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs index 82969ad81b..2d96e306d6 100644 --- a/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs +++ b/test/Microsoft.ML.Tests/AnomalyDetectionTests.cs @@ -65,7 +65,7 @@ public static void RandomizedPcaInMemory() ExecutePipelineWithGivenRandomizedPcaTrainer(mlContext, trainer1); // Object required in the creation of another detector. - var options = new Trainers.RandomizedPcaAnomalyDetectionTrainer.Options() + var options = new Trainers.RandomizedPcaTrainer.Options() { FeatureColumnName = nameof(DataPoint.Features), Rank = 1, @@ -102,7 +102,7 @@ private class Result /// /// Help function used to execute trainers defined in . /// - private static void ExecutePipelineWithGivenRandomizedPcaTrainer(MLContext mlContext, Trainers.RandomizedPcaAnomalyDetectionTrainer trainer) + private static void ExecutePipelineWithGivenRandomizedPcaTrainer(MLContext mlContext, Trainers.RandomizedPcaTrainer trainer) { var samples = new List() { diff --git a/test/Microsoft.ML.Tests/FeatureContributionTests.cs b/test/Microsoft.ML.Tests/FeatureContributionTests.cs index fbb067b11f..ee79e6de4a 100644 --- a/test/Microsoft.ML.Tests/FeatureContributionTests.cs +++ b/test/Microsoft.ML.Tests/FeatureContributionTests.cs @@ -28,7 +28,7 @@ public FeatureContributionTests(ITestOutputHelper output) : base(output) public void FeatureContributionEstimatorWorkout() { var data = GetSparseDataset(); - var model = ML.Regression.Trainers.OrdinaryLeastSquares().Fit(data); + var model = ML.Regression.Trainers.Ols().Fit(data); var estPipe = new FeatureContributionCalculatingEstimator(ML, model.Model, model.FeatureColumn) .Append(new FeatureContributionCalculatingEstimator(ML, model.Model, model.FeatureColumn, normalize: false)) @@ -44,7 +44,7 @@ public void FeatureContributionEstimatorWorkout() [Fact] public void TestOrdinaryLeastSquaresRegression() { - TestFeatureContribution(ML.Regression.Trainers.OrdinaryLeastSquares(), GetSparseDataset(numberOfInstances: 100), "LeastSquaresRegression"); + TestFeatureContribution(ML.Regression.Trainers.Ols(), GetSparseDataset(numberOfInstances: 100), "LeastSquaresRegression"); } [LightGBMFact] @@ -74,8 +74,8 @@ public void TestFastTreeTweedieRegression() [Fact] public void TestSDCARegression() { - TestFeatureContribution(ML.Regression.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentRegressionTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(numberOfInstances: 100), "SDCARegression"); + TestFeatureContribution(ML.Regression.Trainers.Sdca( + new SdcaRegressionTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(numberOfInstances: 100), "SDCARegression"); } [Fact] @@ -94,7 +94,7 @@ public void TestPoissonRegression() [Fact] public void TestGAMRegression() { - TestFeatureContribution(ML.Regression.Trainers.GeneralizedAdditiveModel(), GetSparseDataset(numberOfInstances: 100), "GAMRegression"); + TestFeatureContribution(ML.Regression.Trainers.Gam(), GetSparseDataset(numberOfInstances: 100), "GAMRegression"); } // Tests for ranking trainers that implement IFeatureContributionMapper interface. @@ -150,15 +150,15 @@ public void TestLightGbmBinary() [Fact] public void TestSDCABinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(TaskType.BinaryClassification, 100), "SDCABinary", precision: 5); + TestFeatureContribution(ML.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1, }), GetSparseDataset(TaskType.BinaryClassification, 100), "SDCABinary", precision: 5); } [Fact] public void TestSGDBinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.StochasticGradientDescent( - new StochasticGradientDescentBinaryClassificationTrainer.Options { NumberOfThreads = 1}), + TestFeatureContribution(ML.BinaryClassification.Trainers.SgdCalibrated( + new SgdCalibratedTrainer.Options { NumberOfThreads = 1}), GetSparseDataset(TaskType.BinaryClassification, 100), "SGDBinary"); } @@ -171,7 +171,7 @@ public void TestSSGDBinary() [Fact] public void TestGAMBinary() { - TestFeatureContribution(ML.BinaryClassification.Trainers.GeneralizedAdditiveModel(), GetSparseDataset(TaskType.BinaryClassification, 100), "GAMBinary"); + TestFeatureContribution(ML.BinaryClassification.Trainers.Gam(), GetSparseDataset(TaskType.BinaryClassification, 100), "GAMBinary"); } private void TestFeatureContribution( diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index 3e5a2569db..36d2b7271a 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -59,7 +59,7 @@ public void SimpleEndToEndOnnxConversionTest() var dynamicPipeline = mlContext.Transforms.Normalize("FeatureVector") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new StochasticDualCoordinateAscentRegressionTrainer.Options() { + .Append(mlContext.Regression.Trainers.Sdca(new SdcaRegressionTrainer.Options() { LabelColumnName = "Target", FeatureColumnName = "FeatureVector", NumberOfThreads = 1 @@ -138,13 +138,13 @@ public void KmeansOnnxConversionTest() hasHeader: true); var pipeline = mlContext.Transforms.Normalize("Features"). - Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new Trainers.KMeansPlusPlusClusteringTrainer.Options + Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new Trainers.KMeansPlusPlusTrainer.Options { FeatureColumnName = DefaultColumnNames.Features, MaximumNumberOfIterations = 1, NumberOfClusters = 4, NumberOfThreads = 1, - InitializationAlgorithm = Trainers.KMeansPlusPlusClusteringTrainer.InitializationAlgorithm.Random + InitializationAlgorithm = Trainers.KMeansPlusPlusTrainer.InitializationAlgorithm.Random })); var model = pipeline.Fit(data); @@ -317,7 +317,7 @@ public void LogisticRegressionOnnxConversionTest() var dynamicPipeline = mlContext.Transforms.Normalize("FeatureVector") .AppendCacheCheckpoint(mlContext) - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(new StochasticDualCoordinateAscentRegressionTrainer.Options() { + .Append(mlContext.Regression.Trainers.Sdca(new SdcaRegressionTrainer.Options() { LabelColumnName = "Target", FeatureColumnName = "FeatureVector", NumberOfThreads = 1 diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs index 77c6145849..48a76d3d58 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs @@ -105,7 +105,7 @@ private void TrainRegression(string trainDataPath, string testDataPath, string m // once so adding a caching step before it is not helpful. .AppendCacheCheckpoint(mlContext) // Add the SDCA regression trainer. - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(labelColumnName: "Target", featureColumnName: "FeatureVector")); + .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Target", featureColumnName: "FeatureVector")); // Step three. Fit the pipeline to the training data. var model = pipeline.Fit(trainData); @@ -165,7 +165,7 @@ private ITransformer TrainOnIris(string irisDataPath) // Cache data in memory for steps after the cache check point stage. .AppendCacheCheckpoint(mlContext) // Use the multi-class SDCA model to predict the label using features. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); // Train the model. var trainedModel = pipeline.Fit(trainData); @@ -423,7 +423,7 @@ private void CrossValidationOn(string dataPath) // Notice that unused part in the data may not be cached. .AppendCacheCheckpoint(mlContext) // Use the multi-class SDCA model to predict the label using features. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); // Split the data 90:10 into train and test sets, train and evaluate. var split = mlContext.MulticlassClassification.TrainTestSplit(data, testFraction: 0.1); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs index d6119069f7..441732aa39 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/DecomposableTrainAndPredict.cs @@ -31,8 +31,8 @@ void DecomposableTrainAndPredict() var pipeline = new ColumnConcatenatingEstimator (ml, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(new ValueToKeyMappingEstimator(ml, "Label"), TransformerScope.TrainTest) - .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })) + .Append(ml.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })) .Append(new KeyToValueMappingEstimator(ml, "PredictedLabel")); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs index e8ff194fba..e04a0ca6f1 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Extensibility.cs @@ -40,8 +40,8 @@ void Extensibility() var pipeline = new ColumnConcatenatingEstimator (ml, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(new CustomMappingEstimator(ml, action, null), TransformerScope.TrainTest) .Append(new ValueToKeyMappingEstimator(ml, "Label"), TransformerScope.TrainTest) - .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 })) + .Append(ml.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 })) .Append(new KeyToValueMappingEstimator(ml, "PredictedLabel")); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs index d0b751e8df..9e9411a2f9 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/Metacomponents.cs @@ -23,8 +23,8 @@ public void Metacomponents() var ml = new MLContext(); var data = ml.Data.LoadFromTextFile(GetDataPath(TestDatasets.irisData.trainFilename), separatorChar: ','); - var sdcaTrainer = ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, }); + var sdcaTrainer = ml.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, }); var pipeline = new ColumnConcatenatingEstimator (ml, "Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(ml.Transforms.Conversion.MapValueToKey("Label"), TransformerScope.TrainTest) diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs index 77d4010b49..bac7c98229 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/MultithreadedPrediction.cs @@ -29,8 +29,8 @@ void MultithreadedPrediction() // Pipeline. var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) - .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(ml.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs index 2957e7fada..c293ec6970 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/PredictAndMetadata.cs @@ -29,8 +29,8 @@ void PredictAndMetadata() var pipeline = ml.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(ml.Transforms.Conversion.MapValueToKey("Label"), TransformerScope.TrainTest) - .Append(ml.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })); + .Append(ml.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1, })); var model = pipeline.Fit(data).GetModelFor(TransformerScope.Scoring); var engine = model.CreatePredictionEngine(ml); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs index 59104f0279..0b7c8fd430 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/SimpleTrainAndPredict.cs @@ -26,8 +26,8 @@ public void SimpleTrainAndPredict() // Pipeline. var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) - .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(ml.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); @@ -63,7 +63,7 @@ public void SimpleTrainAndPredictSymSGD() // Pipeline. var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) - .Append(ml.BinaryClassification.Trainers.SymbolicSgd(new SymbolicSgdBinaryClassificationTrainer.Options + .Append(ml.BinaryClassification.Trainers.SymbolicSgd(new SymbolicSgdTrainer.Options { NumberOfThreads = 1 })); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs index a998386a67..f5603f633b 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainSaveModelAndPredict.cs @@ -28,8 +28,8 @@ public void TrainSaveModelAndPredict() // Pipeline. var pipeline = ml.Transforms.Text.FeaturizeText("Features", "SentimentText") .AppendCacheCheckpoint(ml) - .Append(ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(ml.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 })); // Train. var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs index 4dd69e7a51..4f28e8ff4d 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/Estimators/TrainWithInitialPredictor.cs @@ -31,8 +31,8 @@ public void TrainWithInitialPredictor() var trainData = ml.Data.Cache(pipeline.Fit(data).Transform(data)); // Train the first predictor. - var trainer = ml.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 }); + var trainer = ml.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { NumberOfThreads = 1 }); var firstModel = trainer.Fit(trainData); diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs index 68500736a3..a1fb6691e0 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs @@ -183,7 +183,7 @@ public void TrainAveragedPerceptronWithCache() var cached = mlContext.Data.Cache(xf); var estimator = mlContext.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronBinaryClassificationTrainer.Options { NumberOfIterations = 2 }); + new AveragedPerceptronTrainer.Options { NumberOfIterations = 2 }); estimator.Fit(cached).Transform(cached); diff --git a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs index faf2f714a0..ae516d1d2c 100644 --- a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationTests.cs @@ -31,8 +31,8 @@ public void TrainAndPredictIrisModelTest() var pipe = mlContext.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(mlContext.Transforms.Normalize("Features")) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); // Read training and test data sets string dataPath = GetDataPath(TestDatasets.iris.trainFilename); diff --git a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs index b52dbb18d0..d86b605d1a 100644 --- a/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/IrisPlantClassificationWithStringLabelTests.cs @@ -37,8 +37,8 @@ public void TrainAndPredictIrisModelWithStringLabelTest() .Append(mlContext.Transforms.Normalize("Features")) .Append(mlContext.Transforms.Conversion.MapValueToKey("Label", "IrisPlantType"), TransformerScope.TrainTest) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })) + .Append(mlContext.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })) .Append(mlContext.Transforms.Conversion.MapKeyToValue(("Plant", "PredictedLabel"))); // Train the pipeline diff --git a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs index 1b5231aa53..2683479e35 100644 --- a/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs +++ b/test/Microsoft.ML.Tests/Scenarios/OvaTest.cs @@ -65,7 +65,7 @@ public void OvaAveragedPerceptron() // Pipeline var ap = mlContext.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronBinaryClassificationTrainer.Options { Shuffle = true }); + new AveragedPerceptronTrainer.Options { Shuffle = true }); var pipeline = mlContext.MulticlassClassification.Trainers.OneVersusAll(ap, useProbabilities: false); var model = pipeline.Fit(data); @@ -131,7 +131,7 @@ public void OvaLinearSvm() // Pipeline var pipeline = mlContext.MulticlassClassification.Trainers.OneVersusAll( - mlContext.BinaryClassification.Trainers.LinearSvm(new LinearSvmBinaryClassificationTrainer.Options { NumberOfIterations = 100 }), + mlContext.BinaryClassification.Trainers.LinearSvm(new LinearSvmTrainer.Options { NumberOfIterations = 100 }), useProbabilities: false); var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs b/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs index 3d7b57a685..4801f67760 100644 --- a/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/TensorflowTests.cs @@ -39,7 +39,7 @@ public void TensorFlowTransforCifarEndToEndTest() .Append(new ColumnConcatenatingEstimator(mlContext, "Features", "Output")) .Append(new ValueToKeyMappingEstimator(mlContext, "Label")) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); var transformer = pipeEstimator.Fit(data); diff --git a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs index cf3122806d..98a10eb8e4 100644 --- a/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs +++ b/test/Microsoft.ML.Tests/ScenariosWithDirectInstantiation/IrisPlantClassificationTests.cs @@ -29,8 +29,8 @@ public void TrainAndPredictIrisModelUsingDirectInstantiationTest() var pipe = mlContext.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth") .Append(mlContext.Transforms.Normalize("Features")) .AppendCacheCheckpoint(mlContext) - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); + .Append(mlContext.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { NumberOfThreads = 1 })); // Read training and test data sets string dataPath = GetDataPath(TestDatasets.iris.trainFilename); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs b/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs index 2ea971e096..616f98231b 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/FAFMEstimator.cs @@ -19,7 +19,7 @@ public void FfmBinaryClassificationWithAdvancedArguments() var data = DatasetUtils.GenerateFfmSamples(500); var dataView = mlContext.Data.LoadFromEnumerable(data); - var ffmArgs = new FieldAwareFactorizationMachineBinaryClassificationTrainer.Options(); + var ffmArgs = new FieldAwareFactorizationMachineTrainer.Options(); // Customized the field names. ffmArgs.FeatureColumnName = nameof(DatasetUtils.FfmExample.Field0); // First field. @@ -44,7 +44,7 @@ public void FieldAwareFactorizationMachine_Estimator() var data = new TextLoader(Env, GetFafmBCLoaderArgs()) .Load(GetDataPath(TestDatasets.breastCancer.trainFilename)); - var ffmArgs = new FieldAwareFactorizationMachineBinaryClassificationTrainer.Options { + var ffmArgs = new FieldAwareFactorizationMachineTrainer.Options { FeatureColumnName = "Feature1", // Features from the 1st field. ExtraFeatureColumns = new[] { "Feature2", "Feature3", "Feature4" }, // 2nd field's feature column, 3rd field's feature column, 4th field's feature column. Shuffle = false, diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs index 59dd3099de..f0e6ed6b5e 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MatrixFactorizationTests.cs @@ -33,7 +33,7 @@ public void MatrixFactorization_Estimator() var invalidData = new TextLoader(Env, GetLoaderArgs(labelColumnName, matrixColumnIndexColumnName + "Renamed", matrixRowIndexColumnName + "Renamed")) .Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.testFilename))); - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = matrixColumnIndexColumnName, MatrixRowIndexColumnName = matrixRowIndexColumnName, @@ -68,7 +68,7 @@ public void MatrixFactorizationSimpleTrainAndPredict() var data = reader.Load(new MultiFileSource(GetDataPath(TestDatasets.trivialMatrixFactorization.trainFilename))); // Create a pipeline with a single operator. - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = userColumnName, MatrixRowIndexColumnName = itemColumnName, @@ -205,7 +205,7 @@ public void MatrixFactorizationInMemoryData() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -295,7 +295,7 @@ public void MatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), @@ -415,12 +415,12 @@ public void OneClassMatrixFactorizationInMemoryDataZeroBaseIndex() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationRecommendationTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. @@ -551,12 +551,12 @@ public void OneClassMatrixFactorizationWithUnseenColumnAndRow() // matrix's column index, and "MatrixRowIndex" as the matrix's row index. var mlContext = new MLContext(seed: 1); - var options = new MatrixFactorizationRecommendationTrainer.Options + var options = new MatrixFactorizationTrainer.Options { MatrixColumnIndexColumnName = nameof(MatrixElement.MatrixColumnIndex), MatrixRowIndexColumnName = nameof(MatrixElement.MatrixRowIndex), LabelColumnName = nameof(MatrixElement.Value), - LossFunction = MatrixFactorizationRecommendationTrainer.LossFunctionType.SquareLossOneClass, + LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass, NumberOfIterations = 100, NumberOfThreads = 1, // To eliminate randomness, # of threads must be 1. Lambda = 0.025, // Let's test non-default regularization coefficient. diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs index e183d199cf..ed907e4de0 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/MetalinearEstimators.cs @@ -22,7 +22,7 @@ public void OVAWithAllConstructorArgs() var (pipeline, data) = GetMultiClassPipeline(); var calibrator = new PlattCalibratorEstimator(Env); var averagePerceptron = ML.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronBinaryClassificationTrainer.Options { Shuffle = true }); + new AveragedPerceptronTrainer.Options { Shuffle = true }); var ova = ML.MulticlassClassification.Trainers.OneVersusAll(averagePerceptron, imputeMissingLabelsAsNegative: true, calibrator: calibrator, maxCalibrationExamples: 10000, useProbabilities: true); @@ -41,8 +41,8 @@ public void OVAWithAllConstructorArgs() public void OVAUncalibrated() { var (pipeline, data) = GetMultiClassPipeline(); - var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); + var sdcaTrainer = ML.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); pipeline = pipeline.Append(ML.MulticlassClassification.Trainers.OneVersusAll(sdcaTrainer, useProbabilities: false)) .Append(new KeyToValueMappingEstimator(Env, "PredictedLabel")); @@ -59,8 +59,8 @@ public void PairwiseCouplingTrainer() { var (pipeline, data) = GetMultiClassPipeline(); - var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); + var sdcaTrainer = ML.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { MaximumNumberOfIterations = 100, Shuffle = true, NumberOfThreads = 1 }); pipeline = pipeline.Append(ML.MulticlassClassification.Trainers.PairwiseCoupling(sdcaTrainer)) .Append(ML.Transforms.Conversion.MapKeyToValue("PredictedLabel")); @@ -82,8 +82,8 @@ public void MetacomponentsFeaturesRenamed() var data = loader.Load(GetDataPath(TestDatasets.irisData.trainFilename)); - var sdcaTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { + var sdcaTrainer = ML.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { LabelColumnName = "Label", FeatureColumnName = "Vars", MaximumNumberOfIterations = 100, diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/OlsLinearRegressionTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/OlsLinearRegressionTests.cs index cace14d6e0..5787a7aaa6 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/OlsLinearRegressionTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/OlsLinearRegressionTests.cs @@ -14,7 +14,7 @@ public partial class TrainerEstimators public void TestEstimatorOlsLinearRegression() { var dataView = GetRegressionPipeline(); - var trainer = ML.Regression.Trainers.OrdinaryLeastSquares(new OrdinaryLeastSquaresRegressionTrainer.Options()); + var trainer = ML.Regression.Trainers.Ols(new OlsTrainer.Options()); TestEstimatorCore(trainer, dataView); var model = trainer.Fit(dataView); @@ -22,7 +22,7 @@ public void TestEstimatorOlsLinearRegression() Assert.NotEmpty(model.Model.StandardErrors); Assert.NotEmpty(model.Model.PValues); Assert.NotEmpty(model.Model.TValues); - trainer = ML.Regression.Trainers.OrdinaryLeastSquares(new OrdinaryLeastSquaresRegressionTrainer.Options() { CalculateStatistics = false }); + trainer = ML.Regression.Trainers.Ols(new OlsTrainer.Options() { CalculateStatistics = false }); model = trainer.Fit(dataView); Assert.False(model.Model.HasStatistics); Done(); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs index 86e1f2e17d..08e889c600 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/OnlineLinearTests.cs @@ -37,7 +37,7 @@ public void OnlineLinearWorkout() var binaryTrainData = binaryPipe.Fit(binaryData).Transform(binaryData).AsDynamic; var apTrainer = ML.BinaryClassification.Trainers.AveragedPerceptron( - new AveragedPerceptronBinaryClassificationTrainer.Options{ LearningRate = 0.5f }); + new AveragedPerceptronTrainer.Options{ LearningRate = 0.5f }); TestEstimatorCore(apTrainer, binaryTrainData); var apModel = apTrainer.Fit(binaryTrainData); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs index 88486f6f39..93eef33e3b 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/SdcaTests.cs @@ -20,20 +20,20 @@ public void SdcaWorkout() var data = TextLoaderStatic.CreateLoader(Env, ctx => (Label: ctx.LoadFloat(0), Features: ctx.LoadFloat(1, 10))) .Load(dataPath).Cache(); - var binaryTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); + var binaryTrainer = ML.BinaryClassification.Trainers.SdcaCalibrated( + new SdcaCalibratedBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(binaryTrainer, data.AsDynamic); - var nonCalibratedBinaryTrainer = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( - new StochasticDualCoordinateAscentNonCalibratedBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); + var nonCalibratedBinaryTrainer = ML.BinaryClassification.Trainers.SdcaNonCalibrated( + new SdcaNonCalibratedBinaryClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(nonCalibratedBinaryTrainer, data.AsDynamic); - var regressionTrainer = ML.Regression.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentRegressionTrainer.Options { ConvergenceTolerance = 1e-2f }); + var regressionTrainer = ML.Regression.Trainers.Sdca( + new SdcaRegressionTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(regressionTrainer, data.AsDynamic); - var mcTrainer = ML.MulticlassClassification.Trainers.StochasticDualCoordinateAscent( - new StochasticDualCoordinateAscentMulticlassClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); + var mcTrainer = ML.MulticlassClassification.Trainers.Sdca( + new SdcaMulticlassClassificationTrainer.Options { ConvergenceTolerance = 1e-2f }); TestEstimatorCore(mcTrainer, data.AsDynamic); Done(); @@ -58,7 +58,7 @@ public void SdcaLogisticRegression() // Step 2: Create a binary classifier. // We set the "Label" column as the label of the dataset, and the "Features" column as the features column. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscent(labelColumnName: "Label", featureColumnName: "Features", l2Regularization: 0.001f); + var pipeline = mlContext.BinaryClassification.Trainers.SdcaCalibrated(labelColumnName: "Label", featureColumnName: "Features", l2Regularization: 0.001f); // Step 3: Train the pipeline created. var model = pipeline.Fit(data); @@ -102,7 +102,7 @@ public void SdcaSupportVectorMachine() // Step 2: Create a binary classifier. // We set the "Label" column as the label of the dataset, and the "Features" column as the features column. - var pipeline = mlContext.BinaryClassification.Trainers.StochasticDualCoordinateAscentNonCalibrated( + var pipeline = mlContext.BinaryClassification.Trainers.SdcaNonCalibrated( labelColumnName: "Label", featureColumnName: "Features", loss: new HingeLoss(), l2Regularization: 0.001f); // Step 3: Train the pipeline created. diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs b/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs index 478831039e..5d1774fd62 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/SymSgdClassificationTests.cs @@ -16,7 +16,7 @@ public partial class TrainerEstimators public void TestEstimatorSymSgdClassificationTrainer() { (var pipe, var dataView) = GetBinaryClassificationPipeline(); - var trainer = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()); + var trainer = new SymbolicSgdTrainer(Env, new SymbolicSgdTrainer.Options()); var pipeWithTrainer = pipe.Append(trainer); TestEstimatorCore(pipeWithTrainer, dataView); @@ -32,14 +32,14 @@ public void TestEstimatorSymSgdInitPredictor() (var pipe, var dataView) = GetBinaryClassificationPipeline(); var transformedData = pipe.Fit(dataView).Transform(dataView); - var initPredictor = ML.BinaryClassification.Trainers.StochasticDualCoordinateAscent().Fit(transformedData); + var initPredictor = ML.BinaryClassification.Trainers.SdcaCalibrated().Fit(transformedData); var data = initPredictor.Transform(transformedData); - var withInitPredictor = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()).Fit(transformedData, + var withInitPredictor = new SymbolicSgdTrainer(Env, new SymbolicSgdTrainer.Options()).Fit(transformedData, modelParameters: initPredictor.Model.SubModel); var outInitData = withInitPredictor.Transform(transformedData); - var notInitPredictor = new SymbolicSgdBinaryClassificationTrainer(Env, new SymbolicSgdBinaryClassificationTrainer.Options()).Fit(transformedData); + var notInitPredictor = new SymbolicSgdTrainer(Env, new SymbolicSgdTrainer.Options()).Fit(transformedData); var outNoInitData = notInitPredictor.Transform(transformedData); int numExamples = 10; diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs index 5cf8b0bcfa..8846a13d0a 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs @@ -41,7 +41,7 @@ public void PCATrainerEstimator() // Pipeline. - var pipeline = new RandomizedPcaAnomalyDetectionTrainer(Env, featureColumn, rank: 10); + var pipeline = new RandomizedPcaTrainer(Env, featureColumn, rank: 10); TestEstimatorCore(pipeline, data); Done(); @@ -71,11 +71,11 @@ public void KMeansEstimator() // Pipeline. - var pipeline = new KMeansPlusPlusClusteringTrainer(Env, new KMeansPlusPlusClusteringTrainer.Options + var pipeline = new KMeansPlusPlusTrainer(Env, new KMeansPlusPlusTrainer.Options { FeatureColumnName = featureColumn, ExampleWeightColumnName = weights, - InitializationAlgorithm = KMeansPlusPlusClusteringTrainer.InitializationAlgorithm.KMeansYinyang, + InitializationAlgorithm = KMeansPlusPlusTrainer.InitializationAlgorithm.KMeansYinyang, }); TestEstimatorCore(pipeline, data); @@ -89,8 +89,8 @@ public void KMeansEstimator() [Fact] public void TestEstimatorHogwildSGD() { - var trainers = new[] { ML.BinaryClassification.Trainers.StochasticGradientDescent(l2Regularization: 0, numberOfIterations: 80), - ML.BinaryClassification.Trainers.StochasticGradientDescent(new Trainers.StochasticGradientDescentBinaryClassificationTrainer.Options(){ L2Regularization = 0, NumberOfIterations = 80})}; + var trainers = new[] { ML.BinaryClassification.Trainers.SgdCalibrated(l2Regularization: 0, numberOfIterations: 80), + ML.BinaryClassification.Trainers.SgdCalibrated(new Trainers.SgdCalibratedTrainer.Options(){ L2Regularization = 0, NumberOfIterations = 80})}; foreach (var trainer in trainers) { @@ -121,8 +121,8 @@ public void TestEstimatorHogwildSGD() [Fact] public void TestEstimatorHogwildSGDNonCalibrated() { - var trainers = new[] { ML.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(loss : new SmoothedHingeLoss()), - ML.BinaryClassification.Trainers.StochasticGradientDescentNonCalibrated(new Trainers.StochasticGradientDescentNonCalibratedBinaryClassificationTrainer.Options() { Loss = new HingeLoss() }) }; + var trainers = new[] { ML.BinaryClassification.Trainers.SgdNonCalibrated(loss : new SmoothedHingeLoss()), + ML.BinaryClassification.Trainers.SgdNonCalibrated(new Trainers.SgdNonCalibratedTrainer.Options() { Loss = new HingeLoss() }) }; foreach (var trainer in trainers) { diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs index 3bf3151fda..8cfb019da1 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TreeEstimators.cs @@ -70,7 +70,7 @@ public void GAMClassificationEstimator() { var (pipe, dataView) = GetBinaryClassificationPipeline(); - var trainer = new GeneralizedAdditiveModelBinaryClassificationTrainer(Env, new GeneralizedAdditiveModelBinaryClassificationTrainer.Options + var trainer = new GamBinaryClassificationTrainer(Env, new GamBinaryClassificationTrainer.Options { GainConfidenceLevel = 0, NumberOfIterations = 15, @@ -90,7 +90,7 @@ public void FastForestClassificationEstimator() var (pipe, dataView) = GetBinaryClassificationPipeline(); var trainer = ML.BinaryClassification.Trainers.FastForest( - new FastForestClassification.Options + new FastForestBinaryClassificationTrainer.Options { NumberOfLeaves = 10, NumberOfTrees = 20, @@ -188,7 +188,7 @@ public void LightGBMRegressorEstimator() public void GAMRegressorEstimator() { var dataView = GetRegressionPipeline(); - var trainer = new GeneralizedAdditiveModelRegressionTrainer(Env, new GeneralizedAdditiveModelRegressionTrainer.Options + var trainer = new GamRegressionTrainer(Env, new GamRegressionTrainer.Options { EnablePruning = false, NumberOfIterations = 15, @@ -207,7 +207,7 @@ public void TweedieRegressorEstimator() { var dataView = GetRegressionPipeline(); var trainer = ML.Regression.Trainers.FastTreeTweedie( - new FastTreeTweedieRegressionTrainer.Options + new FastTreeTweedieTrainer.Options { EntropyCoefficient = 0.3, OptimizationAlgorithm = BoostedTreeOptions.OptimizationAlgorithmType.AcceleratedGradientDescent, From b749064016a1cd94c87ba58ff12dd9ab4b7ad61a Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Tue, 12 Mar 2019 04:05:54 +0000 Subject: [PATCH 4/7] fix name of MetaTrainer --- .../Standard/MultiClass/MetaMulticlassTrainer.cs | 6 +++--- .../Standard/MultiClass/OneVersusAllTrainer.cs | 2 +- .../Standard/MultiClass/PairwiseCouplingTrainer.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs index c7e3647ee1..b2c7267f63 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs @@ -16,7 +16,7 @@ namespace Microsoft.ML.Trainers { using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public abstract class MetaMulticlassTrainer : ITrainerEstimator, ITrainer + public abstract class MetaTrainer : ITrainerEstimator, ITrainer where TTransformer : ISingleFeaturePredictionTransformer where TModel : class { @@ -54,7 +54,7 @@ internal abstract class OptionsBase public TrainerInfo Info { get; } /// - /// Initializes the from the class. + /// Initializes the from the class. /// /// The private instance of the . /// The legacy arguments class. @@ -62,7 +62,7 @@ internal abstract class OptionsBase /// The label column for the metalinear trainer and the binary trainer. /// The binary estimator. /// The calibrator. If a calibrator is not explicitly provided, it will default to - internal MetaMulticlassTrainer(IHostEnvironment env, OptionsBase options, string name, string labelColumn = null, + internal MetaTrainer(IHostEnvironment env, OptionsBase options, string name, string labelColumn = null, TScalarTrainer singleEstimator = null, ICalibratorTrainer calibrator = null) { Host = Contracts.CheckRef(env, nameof(env)).Register(name); diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs index 82a3b259ff..1ce63ec946 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs @@ -39,7 +39,7 @@ namespace Microsoft.ML.Trainers using TScalarPredictor = IPredictorProducing; using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public sealed class OneVersusAllTrainer : MetaMulticlassTrainer, OneVersusAllModelParameters> + public sealed class OneVersusAllTrainer : MetaTrainer, OneVersusAllModelParameters> { internal const string LoadNameValue = "OVA"; internal const string UserNameValue = "One-vs-All"; diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs index 53cc39327c..f15ebe2e23 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs @@ -52,7 +52,7 @@ namespace Microsoft.ML.Trainers /// L-BFGS history for all classes *simultaneously*, rather than just one-by-one /// as would be needed for a one-versus-all classification model. /// - public sealed class PairwiseCouplingTrainer : MetaMulticlassTrainer, PairwiseCouplingModelParameters> + public sealed class PairwiseCouplingTrainer : MetaTrainer, PairwiseCouplingModelParameters> { internal const string LoadNameValue = "PKPD"; internal const string UserNameValue = "Pairwise coupling (PKPD)"; From cbd9eaa8cca692eb40b7160bf4daedf07ee2c676 Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Tue, 12 Mar 2019 17:32:49 +0000 Subject: [PATCH 5/7] fix review comments --- .../Dynamic/Trainers/Clustering/KMeans.cs | 2 +- .../Trainers/Clustering/KMeansWithOptions.cs | 4 ++-- .../TreeTrainersCatalog.cs | 8 +++---- .../KMeansCatalog.cs | 18 +++++++------- .../KMeansPlusPlusTrainer.cs | 24 +++++++++---------- .../MklComponentsCatalog.cs | 8 ++++++- src/Microsoft.ML.PCA/PCACatalog.cs | 4 ++-- .../MultiClass/MetaMulticlassTrainer.cs | 6 ++--- .../MultiClass/OneVersusAllTrainer.cs | 2 +- .../MultiClass/PairwiseCouplingTrainer.cs | 2 +- .../StandardTrainersCatalog.cs | 4 ++-- src/Microsoft.ML.StaticPipe/KMeansStatic.cs | 12 +++++----- .../Common/EntryPoints/core_ep-list.tsv | 2 +- .../KMeansAndLogisticRegressionBench.cs | 2 +- .../Evaluation.cs | 2 +- .../IntrospectiveTraining.cs | 6 ++--- .../Training.cs | 2 +- test/Microsoft.ML.Tests/OnnxConversionTest.cs | 4 ++-- .../Scenarios/ClusteringTests.cs | 2 +- .../TrainerEstimators/TrainerEstimators.cs | 4 ++-- 20 files changed, 62 insertions(+), 56 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs index a38d768053..fb9c867e95 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs @@ -27,7 +27,7 @@ public static void Example() // A pipeline for concatenating the age, parity and induced columns together in the Features column and training a KMeans model on them. string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) - .Append(ml.Clustering.Trainers.KMeansPlusPlus(outputColumnName, numberOfClusters: 2)); + .Append(ml.Clustering.Trainers.KMeans(outputColumnName, numberOfClusters: 2)); var model = pipeline.Fit(trainData); diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs index d6eadb5ad9..4aa171b7c3 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs @@ -28,8 +28,8 @@ public static void Example() // A pipeline for concatenating the age, parity and induced columns together in the Features column and training a KMeans model on them. string outputColumnName = "Features"; var pipeline = ml.Transforms.Concatenate(outputColumnName, new[] { "Age", "Parity", "Induced" }) - .Append(ml.Clustering.Trainers.KMeansPlusPlus( - new KMeansPlusPlusTrainer.Options + .Append(ml.Clustering.Trainers.KMeans( + new KMeansTrainer.Options { FeatureColumnName = outputColumnName, NumberOfClusters = 2, diff --git a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs index 14968c6ad1..974aec4e3a 100644 --- a/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs +++ b/src/Microsoft.ML.FastTree/TreeTrainersCatalog.cs @@ -136,7 +136,7 @@ public static FastTreeRankingTrainer FastTree(this RankingCatalog.RankingTrainer } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models (GAM) trained with the . /// /// The . /// The name of the label column. @@ -159,7 +159,7 @@ public static GamBinaryClassificationTrainer Gam(this BinaryClassificationCatalo } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models (GAM) trained with the . /// /// The . /// Algorithm advanced settings. @@ -172,7 +172,7 @@ public static GamBinaryClassificationTrainer Gam(this BinaryClassificationCatalo } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models (GAM) trained with the . /// /// The . /// The name of the label column. @@ -195,7 +195,7 @@ public static GamRegressionTrainer Gam(this RegressionCatalog.RegressionTrainers } /// - /// Predict a target using generalized additive models trained with the . + /// Predict a target using generalized additive models (GAM) trained with the . /// /// The . /// Algorithm advanced settings. diff --git a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs index ed4d852b30..8e2cdefcb1 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansCatalog.cs @@ -9,12 +9,12 @@ namespace Microsoft.ML { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// The name of the feature column. @@ -26,25 +26,25 @@ public static class KMeansClusteringExtensions /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeans.cs)] /// ]]> /// - public static KMeansPlusPlusTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, + public static KMeansTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, string featureColumnName = DefaultColumnNames.Features, string exampleWeightColumnName = null, - int numberOfClusters = KMeansPlusPlusTrainer.Defaults.NumberOfClusters) + int numberOfClusters = KMeansTrainer.Defaults.NumberOfClusters) { Contracts.CheckValue(catalog, nameof(catalog)); var env = CatalogUtils.GetEnvironment(catalog); - var options = new KMeansPlusPlusTrainer.Options + var options = new KMeansTrainer.Options { FeatureColumnName = featureColumnName, ExampleWeightColumnName = exampleWeightColumnName, NumberOfClusters = numberOfClusters }; - return new KMeansPlusPlusTrainer(env, options); + return new KMeansTrainer(env, options); } /// - /// Train a KMeans++ clustering algorithm using . + /// Train a KMeans++ clustering algorithm using . /// /// The clustering catalog trainer object. /// Algorithm advanced options. @@ -54,13 +54,13 @@ public static KMeansPlusPlusTrainer KMeansPlusPlus(this ClusteringCatalog.Cluste /// [!code-csharp[KMeans](~/../docs/samples/docs/samples/Microsoft.ML.Samples/Dynamic/Trainers/Clustering/KMeansWithOptions.cs)] /// ]]> /// - public static KMeansPlusPlusTrainer KMeansPlusPlus(this ClusteringCatalog.ClusteringTrainers catalog, KMeansPlusPlusTrainer.Options options) + public static KMeansTrainer KMeans(this ClusteringCatalog.ClusteringTrainers catalog, KMeansTrainer.Options options) { Contracts.CheckValue(catalog, nameof(catalog)); Contracts.CheckValue(options, nameof(options)); var env = CatalogUtils.GetEnvironment(catalog); - return new KMeansPlusPlusTrainer(env, options); + return new KMeansTrainer(env, options); } } } diff --git a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs index 498fa2c861..ef1c6e9d3f 100644 --- a/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs +++ b/src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs @@ -17,18 +17,18 @@ using Microsoft.ML.Runtime; using Microsoft.ML.Trainers; -[assembly: LoadableClass(KMeansPlusPlusTrainer.Summary, typeof(KMeansPlusPlusTrainer), typeof(KMeansPlusPlusTrainer.Options), +[assembly: LoadableClass(KMeansTrainer.Summary, typeof(KMeansTrainer), typeof(KMeansTrainer.Options), new[] { typeof(SignatureClusteringTrainer), typeof(SignatureTrainer) }, - KMeansPlusPlusTrainer.UserNameValue, - KMeansPlusPlusTrainer.LoadNameValue, - KMeansPlusPlusTrainer.ShortName, "KMeans")] + KMeansTrainer.UserNameValue, + KMeansTrainer.LoadNameValue, + KMeansTrainer.ShortName, "KMeans")] -[assembly: LoadableClass(typeof(void), typeof(KMeansPlusPlusTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] +[assembly: LoadableClass(typeof(void), typeof(KMeansTrainer), null, typeof(SignatureEntryPointModule), "KMeans")] namespace Microsoft.ML.Trainers { /// - public class KMeansPlusPlusTrainer : TrainerEstimatorBase, KMeansModelParameters> + public class KMeansTrainer : TrainerEstimatorBase, KMeansModelParameters> { internal const string LoadNameValue = "KMeansPlusPlus"; internal const string UserNameValue = "KMeans++ Clustering"; @@ -112,11 +112,11 @@ public sealed class Options : UnsupervisedTrainerInputBaseWithWeight private protected override PredictionKind PredictionKind => PredictionKind.Clustering; /// - /// Initializes a new instance of + /// Initializes a new instance of /// /// The to use. /// The advanced options of the algorithm. - internal KMeansPlusPlusTrainer(IHostEnvironment env, Options options) + internal KMeansTrainer(IHostEnvironment env, Options options) : base(Contracts.CheckRef(env, nameof(env)).Register(LoadNameValue), TrainerUtils.MakeR4VecFeature(options.FeatureColumnName), default, TrainerUtils.MakeR4ScalarWeightColumn(options.ExampleWeightColumnName)) { Host.CheckValue(options, nameof(options)); @@ -245,7 +245,7 @@ internal static CommonOutputs.ClusteringOutput TrainKMeans(IHostEnvironment env, EntryPointUtils.CheckInputArgs(host, input); return TrainerEntryPointsUtils.Train(host, input, - () => new KMeansPlusPlusTrainer(host, input), + () => new KMeansTrainer(host, input), getWeight: () => TrainerEntryPointsUtils.FindColumn(host, input.TrainingData.Schema, input.ExampleWeightColumnName)); } @@ -739,10 +739,10 @@ public static void Initialize(IHost host, int numThreads, IChannel ch, FeatureFl host.CheckValue(ch, nameof(ch)); ch.CheckValue(cursorFactory, nameof(cursorFactory)); ch.CheckValue(centroids, nameof(centroids)); - ch.CheckUserArg(numThreads > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfThreads), "Must be positive"); - ch.CheckUserArg(k > 0, nameof(KMeansPlusPlusTrainer.Options.NumberOfClusters), "Must be positive"); + ch.CheckUserArg(numThreads > 0, nameof(KMeansTrainer.Options.NumberOfThreads), "Must be positive"); + ch.CheckUserArg(k > 0, nameof(KMeansTrainer.Options.NumberOfClusters), "Must be positive"); ch.CheckParam(dimensionality > 0, nameof(dimensionality), "Must be positive"); - ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansPlusPlusTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); + ch.CheckUserArg(accelMemBudgetMb >= 0, nameof(KMeansTrainer.Options.AccelerationMemoryBudgetMb), "Must be non-negative"); int numRounds; int numSamplesPerRound; diff --git a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs index 7f2d9affe4..7ba5c81031 100644 --- a/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs +++ b/src/Microsoft.ML.Mkl.Components/MklComponentsCatalog.cs @@ -16,6 +16,7 @@ public static class MklComponentsCatalog { /// /// Predict a target using a linear regression model trained with the . + /// It uses ordinary least squares (OLS) for estimating the parameters of the linear regression model. /// /// The . /// The name of the label column. @@ -47,6 +48,7 @@ public static OlsTrainer Ols(this RegressionCatalog.RegressionTrainers catalog, /// /// Predict a target using a linear regression model trained with the . + /// It uses ordinary least squares (OLS) for estimating the parameters of the linear regression model. /// /// The . /// Algorithm advanced options. See . @@ -69,7 +71,9 @@ public static OlsTrainer Ols( } /// - /// Predict a target using a linear binary classification model trained with the . + /// Predict a target using a linear binary classification model trained with the . + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + /// The parallelizes SGD using symbolic execution. /// /// The . /// The name of the label column. @@ -101,6 +105,8 @@ public static SymbolicSgdTrainer SymbolicSgd(this BinaryClassificationCatalog.Bi /// /// Predict a target using a linear binary classification model trained with the . + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. + /// The parallelizes SGD using symbolic execution. /// /// The . /// Algorithm advanced options. See . diff --git a/src/Microsoft.ML.PCA/PCACatalog.cs b/src/Microsoft.ML.PCA/PCACatalog.cs index b8b5220425..2cf6f5e1bb 100644 --- a/src/Microsoft.ML.PCA/PCACatalog.cs +++ b/src/Microsoft.ML.PCA/PCACatalog.cs @@ -39,7 +39,7 @@ public static PrincipalComponentAnalyzer ProjectToPrincipalComponents(this Trans => new PrincipalComponentAnalyzer(CatalogUtils.GetEnvironment(catalog), columns); /// - /// Trains an approximate PCA using Randomized SVD algorithm. + /// Trains an approximate principal component analysis (PCA) model using randomized SVD algorithm. /// /// The anomaly detection catalog trainer object. /// The name of the feature column. @@ -68,7 +68,7 @@ public static RandomizedPcaTrainer RandomizedPca(this AnomalyDetectionCatalog.An } /// - /// Trains an approximate PCA using Randomized SVD algorithm. + /// Trains an approximate principal component analysis (PCA) model using randomized SVD algorithm. /// /// The anomaly detection catalog trainer object. /// Advanced options to the algorithm. diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs index 1ee81fc444..70c1d39287 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/MetaMulticlassTrainer.cs @@ -15,7 +15,7 @@ namespace Microsoft.ML.Trainers { using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public abstract class MetaTrainer : ITrainerEstimator, ITrainer + public abstract class MetaMulticlassClassificationTrainer : ITrainerEstimator, ITrainer where TTransformer : ISingleFeaturePredictionTransformer where TModel : class { @@ -53,7 +53,7 @@ internal abstract class OptionsBase public TrainerInfo Info { get; } /// - /// Initializes the from the class. + /// Initializes the from the class. /// /// The private instance of the . /// The legacy arguments class. @@ -61,7 +61,7 @@ internal abstract class OptionsBase /// The label column for the metalinear trainer and the binary trainer. /// The binary estimator. /// The calibrator. If a calibrator is not explicitly provided, it will default to - internal MetaTrainer(IHostEnvironment env, OptionsBase options, string name, string labelColumn = null, + internal MetaMulticlassClassificationTrainer(IHostEnvironment env, OptionsBase options, string name, string labelColumn = null, TScalarTrainer singleEstimator = null, ICalibratorTrainer calibrator = null) { Host = Contracts.CheckRef(env, nameof(env)).Register(name); diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs index 2e5d51576f..fd743440d1 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/OneVersusAllTrainer.cs @@ -39,7 +39,7 @@ namespace Microsoft.ML.Trainers using TScalarPredictor = IPredictorProducing; using TScalarTrainer = ITrainerEstimator>, IPredictorProducing>; - public sealed class OneVersusAllTrainer : MetaTrainer, OneVersusAllModelParameters> + public sealed class OneVersusAllTrainer : MetaMulticlassClassificationTrainer, OneVersusAllModelParameters> { internal const string LoadNameValue = "OVA"; internal const string UserNameValue = "One-vs-All"; diff --git a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs index 230db8950f..26ea2b463c 100644 --- a/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs +++ b/src/Microsoft.ML.StandardTrainers/Standard/MultiClass/PairwiseCouplingTrainer.cs @@ -52,7 +52,7 @@ namespace Microsoft.ML.Trainers /// L-BFGS history for all classes *simultaneously*, rather than just one-by-one /// as would be needed for a one-versus-all classification model. /// - public sealed class PairwiseCouplingTrainer : MetaTrainer, PairwiseCouplingModelParameters> + public sealed class PairwiseCouplingTrainer : MetaMulticlassClassificationTrainer, PairwiseCouplingModelParameters> { internal const string LoadNameValue = "PKPD"; internal const string UserNameValue = "Pairwise coupling (PKPD)"; diff --git a/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs b/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs index b5a55c9006..d4181241ef 100644 --- a/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs +++ b/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs @@ -681,7 +681,7 @@ public static PairwiseCouplingTrainer PairwiseCoupling(this MulticlassCl /// /// /// - /// The idea behind support vector machines, is to map instances into a high dimensional space + /// The idea behind support vector machines (SVM), is to map instances into a high dimensional space /// in which the two classes are linearly separable, i.e., there exists a hyperplane such that all the positive examples are on one side of it, /// and all the negative examples are on the other. /// @@ -710,7 +710,7 @@ public static LinearSvmTrainer LinearSvm(this BinaryClassificationCatalog.Binary /// /// /// - /// The idea behind support vector machines, is to map instances into a high dimensional space + /// The idea behind support vector machines (SVM), is to map instances into a high dimensional space /// in which the two classes are linearly separable, i.e., there exists a hyperplane such that all the positive examples are on one side of it, /// and all the negative examples are on the other. /// diff --git a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs index 17b5ecd247..8918102717 100644 --- a/src/Microsoft.ML.StaticPipe/KMeansStatic.cs +++ b/src/Microsoft.ML.StaticPipe/KMeansStatic.cs @@ -9,7 +9,7 @@ namespace Microsoft.ML.StaticPipe { /// - /// The trainer context extensions for the . + /// The trainer context extensions for the . /// public static class KMeansClusteringExtensions { @@ -28,7 +28,7 @@ public static class KMeansClusteringExtensions /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights = null, - int clustersCount = KMeansPlusPlusTrainer.Defaults.NumberOfClusters, + int clustersCount = KMeansTrainer.Defaults.NumberOfClusters, Action onFit = null) { Contracts.CheckValue(features, nameof(features)); @@ -39,14 +39,14 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste var rec = new TrainerEstimatorReconciler.Clustering( (env, featuresName, weightsName) => { - var options = new KMeansPlusPlusTrainer.Options + var options = new KMeansTrainer.Options { FeatureColumnName = featuresName, NumberOfClusters = clustersCount, ExampleWeightColumnName = weightsName }; - var trainer = new KMeansPlusPlusTrainer(env, options); + var trainer = new KMeansTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); @@ -72,7 +72,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste /// The predicted output. public static (Vector score, Key predictedLabel) KMeans(this ClusteringCatalog.ClusteringTrainers catalog, Vector features, Scalar weights, - KMeansPlusPlusTrainer.Options options, + KMeansTrainer.Options options, Action onFit = null) { Contracts.CheckValueOrNull(onFit); @@ -84,7 +84,7 @@ public static (Vector score, Key predictedLabel) KMeans(this Cluste options.FeatureColumnName = featuresName; options.ExampleWeightColumnName = weightsName; - var trainer = new KMeansPlusPlusTrainer(env, options); + var trainer = new KMeansTrainer(env, options); if (onFit != null) return trainer.WithOnFitDelegate(trans => onFit(trans.Model)); diff --git a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv index cd16ac4208..37833e10e3 100644 --- a/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv +++ b/test/BaselineOutput/Common/EntryPoints/core_ep-list.tsv @@ -52,7 +52,7 @@ Trainers.FastTreeTweedieRegressor Trains gradient boosted decision trees to fit Trainers.FieldAwareFactorizationMachineBinaryClassifier Train a field-aware factorization machine for binary classification Microsoft.ML.Trainers.FieldAwareFactorizationMachineTrainer TrainBinary Microsoft.ML.Trainers.FieldAwareFactorizationMachineTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.GeneralizedAdditiveModelBinaryClassifier 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.Trainers.FastTree.Gam TrainBinary Microsoft.ML.Trainers.FastTree.GamBinaryClassificationTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput 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.Trainers.FastTree.Gam TrainRegression Microsoft.ML.Trainers.FastTree.GamRegressionTrainer+Options Microsoft.ML.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.Trainers.KMeansPlusPlusTrainer TrainKMeans Microsoft.ML.Trainers.KMeansPlusPlusTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput +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.Trainers.KMeansTrainer TrainKMeans Microsoft.ML.Trainers.KMeansTrainer+Options Microsoft.ML.EntryPoints.CommonOutputs+ClusteringOutput Trainers.LightGbmBinaryClassifier Train a LightGBM binary classification model. Microsoft.ML.LightGBM.LightGbm TrainBinary Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+BinaryClassificationOutput Trainers.LightGbmClassifier Train a LightGBM multi class model. Microsoft.ML.LightGBM.LightGbm TrainMultiClass Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+MulticlassClassificationOutput Trainers.LightGbmRanker Train a LightGBM ranking model. Microsoft.ML.LightGBM.LightGbm TrainRanking Microsoft.ML.LightGBM.Options Microsoft.ML.EntryPoints.CommonOutputs+RankingOutput diff --git a/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs b/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs index 2fc12537d4..7f568adca6 100644 --- a/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs +++ b/test/Microsoft.ML.Benchmarks/KMeansAndLogisticRegressionBench.cs @@ -37,7 +37,7 @@ public CalibratedModelParametersBase>> StepOne(MLContext mlContext) { return mlContext.Transforms.Concatenate("LabelAndFeatures", "Label", "Features") - .Append(mlContext.Clustering.Trainers.KMeansPlusPlus( - new KMeansPlusPlusTrainer.Options + .Append(mlContext.Clustering.Trainers.KMeans( + new KMeansTrainer.Options { - InitializationAlgorithm = KMeansPlusPlusTrainer.InitializationAlgorithm.Random, + InitializationAlgorithm = KMeansTrainer.InitializationAlgorithm.Random, NumberOfClusters = 4, MaximumNumberOfIterations = 10, NumberOfThreads = 1 diff --git a/test/Microsoft.ML.StaticPipelineTesting/Training.cs b/test/Microsoft.ML.StaticPipelineTesting/Training.cs index 1deee7c045..dce9837022 100644 --- a/test/Microsoft.ML.StaticPipelineTesting/Training.cs +++ b/test/Microsoft.ML.StaticPipelineTesting/Training.cs @@ -784,7 +784,7 @@ public void KMeans() ( r.features, null, - options: new KMeansPlusPlusTrainer.Options + options: new KMeansTrainer.Options { NumberOfClusters = 3, NumberOfThreads = 1 diff --git a/test/Microsoft.ML.Tests/OnnxConversionTest.cs b/test/Microsoft.ML.Tests/OnnxConversionTest.cs index eeda76c9a3..6ca09ac5ab 100644 --- a/test/Microsoft.ML.Tests/OnnxConversionTest.cs +++ b/test/Microsoft.ML.Tests/OnnxConversionTest.cs @@ -138,13 +138,13 @@ public void KmeansOnnxConversionTest() hasHeader: true); var pipeline = mlContext.Transforms.Normalize("Features"). - Append(mlContext.Clustering.Trainers.KMeansPlusPlus(new Trainers.KMeansPlusPlusTrainer.Options + Append(mlContext.Clustering.Trainers.KMeans(new Trainers.KMeansTrainer.Options { FeatureColumnName = DefaultColumnNames.Features, MaximumNumberOfIterations = 1, NumberOfClusters = 4, NumberOfThreads = 1, - InitializationAlgorithm = Trainers.KMeansPlusPlusTrainer.InitializationAlgorithm.Random + InitializationAlgorithm = Trainers.KMeansTrainer.InitializationAlgorithm.Random })); var model = pipeline.Fit(data); diff --git a/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs b/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs index b310dc2ea8..ef95c95b45 100644 --- a/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs +++ b/test/Microsoft.ML.Tests/Scenarios/ClusteringTests.cs @@ -63,7 +63,7 @@ public void PredictClusters() var testData = mlContext.Data.LoadFromEnumerable(clusters); // Create Estimator - var pipe = mlContext.Clustering.Trainers.KMeansPlusPlus("Features", numberOfClusters: k); + var pipe = mlContext.Clustering.Trainers.KMeans("Features", numberOfClusters: k); // Train the pipeline var trainedModel = pipe.Fit(trainData); diff --git a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs index 8846a13d0a..69b8aa0c1f 100644 --- a/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs +++ b/test/Microsoft.ML.Tests/TrainerEstimators/TrainerEstimators.cs @@ -71,11 +71,11 @@ public void KMeansEstimator() // Pipeline. - var pipeline = new KMeansPlusPlusTrainer(Env, new KMeansPlusPlusTrainer.Options + var pipeline = new KMeansTrainer(Env, new KMeansTrainer.Options { FeatureColumnName = featureColumn, ExampleWeightColumnName = weights, - InitializationAlgorithm = KMeansPlusPlusTrainer.InitializationAlgorithm.KMeansYinyang, + InitializationAlgorithm = KMeansTrainer.InitializationAlgorithm.KMeansYinyang, }); TestEstimatorCore(pipeline, data); From 3d577e9a8007bf042e08a08c358977ac77e4b29a Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Tue, 12 Mar 2019 17:55:41 +0000 Subject: [PATCH 6/7] connect acronym for SGD --- .../StandardTrainersCatalog.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs b/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs index d4181241ef..2c7019bbfd 100644 --- a/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs +++ b/src/Microsoft.ML.StandardTrainers/StandardTrainersCatalog.cs @@ -18,6 +18,7 @@ public static class StandardTrainersCatalog { /// /// Predict a target using a linear classification model trained with . + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -49,6 +50,7 @@ public static SgdCalibratedTrainer SgdCalibrated(this BinaryClassificationCatalo /// /// Predict a target using a linear classification model trained with and advanced options. + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. /// /// The binary classification catalog trainer object. /// Trainer options. @@ -70,7 +72,8 @@ public static SgdCalibratedTrainer SgdCalibrated(this BinaryClassificationCatalo } /// - /// Predict a target using a linear classification model trained with . + /// Predict a target using a linear classification model trained with . + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. /// /// The binary classification catalog trainer object. /// The name of the label column, or dependent variable. @@ -104,6 +107,7 @@ public static SgdNonCalibratedTrainer SgdNonCalibrated(this BinaryClassification /// /// Predict a target using a linear classification model trained with and advanced options. + /// Stochastic gradient descent (SGD) is an iterative algorithm that optimizes a differentiable objective function. /// /// The binary classification catalog trainer object. /// Trainer options. From 0ebd4a6d0426a33b0285ca4f3d38fc64dba95b5f Mon Sep 17 00:00:00 2001 From: Abhishek Goswami Date: Tue, 12 Mar 2019 21:17:03 +0000 Subject: [PATCH 7/7] updates to cookbook markdown file --- docs/code/MlNetCookBook.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index f851941c24..babe2f73f5 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -244,7 +244,7 @@ We tried to make `Preview` debugger-friendly: our expectation is that, if you en Here is the code sample: ```csharp var estimator = mlContext.Transforms.Categorical.MapValueToKey("Label") - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()) + .Append(mlContext.MulticlassClassification.Trainers.Sdca()) .Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel")); var data = mlContext.Data.LoadFromTextFile(new TextLoader.Column[] { @@ -355,7 +355,7 @@ var pipeline = // once so adding a caching step before it is not helpful. .AppendCacheCheckpoint(mlContext) // Add the SDCA regression trainer. - .Append(mlContext.Regression.Trainers.StochasticDualCoordinateAscent(labelColumnName: "Target", featureColumnName: "FeatureVector")); + .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Target", featureColumnName: "FeatureVector")); // Step three. Fit the pipeline to the training data. var model = pipeline.Fit(trainData); @@ -423,7 +423,7 @@ var pipeline = // Cache data in memory for steps after the cache check point stage. .AppendCacheCheckpoint(mlContext) // Use the multi-class SDCA model to predict the label using features. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()) + .Append(mlContext.MulticlassClassification.Trainers.Sdca()) // Apply the inverse conversion from 'PredictedLabel' column back to string value. .Append(mlContext.Transforms.Conversion.MapKeyToValue(("PredictedLabel", "Data"))); @@ -547,7 +547,7 @@ var pipeline = // Cache data in memory for steps after the cache check point stage. .AppendCacheCheckpoint(mlContext) // Use the multi-class SDCA model to predict the label using features. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); // Train the model. var trainedModel = pipeline.Fit(trainData); @@ -822,7 +822,7 @@ var pipeline = // Notice that unused part in the data may not be cached. .AppendCacheCheckpoint(mlContext) // Use the multi-class SDCA model to predict the label using features. - .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent()); + .Append(mlContext.MulticlassClassification.Trainers.Sdca()); // Split the data 90:10 into train and test sets, train and evaluate. var split = mlContext.Data.TrainTestSplit(data, testFraction: 0.1);