Skip to content

Commit

Permalink
Logistic Regression NumberOfIterations to MaximumNumberOfIterations (#…
Browse files Browse the repository at this point in the history
…2923)

* Updating LR and it's relatives to use MaximumNumberOfIterations as a parameter instead of NumberOfIterations.
* Updating manifest, adding all aliases for NumberOfIterations to all learners that made the switch back to MaxNumberOfIterations.
  • Loading branch information
rogancarr authored Mar 12, 2019
1 parent 0d6f036 commit fc03353
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/Microsoft.ML.KMeansClustering/KMeansPlusPlusTrainer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public sealed class Options : UnsupervisedTrainerInputBaseWithWeight
/// <summary>
/// Maximum number of iterations.
/// </summary>
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of iterations.", ShortName = "maxiter")]
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of iterations.", ShortName = "maxiter, NumberOfIterations")]
[TGUI(Label = "Max Number of Iterations")]
public int MaximumNumberOfIterations = 1000;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ public abstract class OptionsBase : TrainerInputBaseWithWeight
/// <summary>
/// Number of iterations.
/// </summary>
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum iterations.", ShortName = "maxiter, MaxIterations")]
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum iterations.", ShortName = "maxiter, MaxIterations, NumberOfIterations")]
[TGUI(Label = "Max Number of Iterations")]
[TlcModule.SweepableLongParamAttribute("MaxIterations", 1, int.MaxValue)]
public int NumberOfIterations = Defaults.NumberOfIterations;
public int MaximumNumberOfIterations = Defaults.MaximumNumberOfIterations;

/// <summary>
/// Run SGD to initialize LR weights, converging to this tolerance.
Expand Down Expand Up @@ -122,7 +122,7 @@ internal static class Defaults
public const float L1Regularization = 1;
public const float OptimizationTolerance = 1e-7f;
public const int HistorySize = 20;
public const int NumberOfIterations = int.MaxValue;
public const int MaximumNumberOfIterations = int.MaxValue;
public const bool EnforceNonNegativity = false;
}
}
Expand Down Expand Up @@ -221,7 +221,7 @@ internal LbfgsTrainerBase(IHostEnvironment env,
Host.CheckUserArg(LbfgsTrainerOptions.L1Regularization >= 0, nameof(LbfgsTrainerOptions.L1Regularization), "Must be non-negative");
Host.CheckUserArg(LbfgsTrainerOptions.OptmizationTolerance > 0, nameof(LbfgsTrainerOptions.OptmizationTolerance), "Must be positive");
Host.CheckUserArg(LbfgsTrainerOptions.HistorySize > 0, nameof(LbfgsTrainerOptions.HistorySize), "Must be positive");
Host.CheckUserArg(LbfgsTrainerOptions.NumberOfIterations > 0, nameof(LbfgsTrainerOptions.NumberOfIterations), "Must be positive");
Host.CheckUserArg(LbfgsTrainerOptions.MaximumNumberOfIterations > 0, nameof(LbfgsTrainerOptions.MaximumNumberOfIterations), "Must be positive");
Host.CheckUserArg(LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance >= 0, nameof(LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance), "Must be non-negative");
Host.CheckUserArg(LbfgsTrainerOptions.NumberOfThreads == null || LbfgsTrainerOptions.NumberOfThreads.Value >= 0, nameof(LbfgsTrainerOptions.NumberOfThreads), "Must be non-negative");

Expand All @@ -234,7 +234,7 @@ internal LbfgsTrainerBase(IHostEnvironment env,
L1Weight = LbfgsTrainerOptions.L1Regularization;
OptTol = LbfgsTrainerOptions.OptmizationTolerance;
MemorySize =LbfgsTrainerOptions.HistorySize;
MaxIterations = LbfgsTrainerOptions.NumberOfIterations;
MaxIterations = LbfgsTrainerOptions.MaximumNumberOfIterations;
SgdInitializationTolerance = LbfgsTrainerOptions.StochasticGradientDescentInitilaizationTolerance;
Quiet = LbfgsTrainerOptions.Quiet;
InitWtsDiameter = LbfgsTrainerOptions.InitialWeightsDiameter;
Expand Down
2 changes: 1 addition & 1 deletion src/Microsoft.ML.StandardTrainers/Standard/SdcaBinary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ public abstract class OptionsBase : TrainerInputBaseWithLabel
/// <value>
/// Set to 1 to simulate online learning. Defaults to automatic.
/// </value>
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of iterations; set to 1 to simulate online learning. Defaults to automatic.", NullName = "<Auto>", ShortName = "iter, MaxIterations")]
[Argument(ArgumentType.AtMostOnce, HelpText = "Maximum number of iterations; set to 1 to simulate online learning. Defaults to automatic.", NullName = "<Auto>", ShortName = "iter, MaxIterations, NumberOfIterations")]
[TGUI(Label = "Max number of iterations", SuggestedSweeps = "<Auto>,10,20,100")]
[TlcModule.SweepableDiscreteParam("MaxIterations", new object[] { "<Auto>", 10, 20, 100 })]
public int? MaximumNumberOfIterations;
Expand Down
27 changes: 17 additions & 10 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -11026,7 +11026,8 @@
"Type": "Int",
"Desc": "Maximum number of iterations.",
"Aliases": [
"maxiter"
"maxiter",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -13559,12 +13560,13 @@
}
},
{
"Name": "NumberOfIterations",
"Name": "MaximumNumberOfIterations",
"Type": "Int",
"Desc": "Maximum iterations.",
"Aliases": [
"maxiter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -13879,12 +13881,13 @@
}
},
{
"Name": "NumberOfIterations",
"Name": "MaximumNumberOfIterations",
"Type": "Int",
"Desc": "Maximum iterations.",
"Aliases": [
"maxiter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -14907,12 +14910,13 @@
}
},
{
"Name": "NumberOfIterations",
"Name": "MaximumNumberOfIterations",
"Type": "Int",
"Desc": "Maximum iterations.",
"Aliases": [
"maxiter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -15233,7 +15237,8 @@
"Desc": "Maximum number of iterations; set to 1 to simulate online learning. Defaults to automatic.",
"Aliases": [
"iter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -15506,7 +15511,8 @@
"Desc": "Maximum number of iterations; set to 1 to simulate online learning. Defaults to automatic.",
"Aliases": [
"iter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down Expand Up @@ -15779,7 +15785,8 @@
"Desc": "Maximum number of iterations; set to 1 to simulate online learning. Defaults to automatic.",
"Aliases": [
"iter",
"MaxIterations"
"MaxIterations",
"NumberOfIterations"
],
"Required": false,
"SortOrder": 150.0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 MulticlassLogisticRegression.Options { MaximumNumberOfIterations = 1000 }).Fit(data);
var pfi = ML.MulticlassClassification.PermutationFeatureImportance(model, data);

// Pfi Indices:
Expand Down

0 comments on commit fc03353

Please sign in to comment.