Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -48,8 +48,8 @@ public static void Example()
// Instantiate the forecasting model.
var model = ml.Forecasting.ForecastBySsa(outputColumnName, inputColumnName, 5, 11, data.Count, 5,
confidenceLevel: 0.95f,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

// Train.
var transformer = model.Fit(dataView);
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.ML.TimeSeries/ExtensionsCatalog.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,11 +164,11 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training(at prediction time).</param>
/// <example>
Expand All@@ -182,10 +182,10 @@ public static SrCnnAnomalyEstimator DetectAnomalyBySrCnn(this TransformsCatalog
public static SsaForecastingEstimator ForecastBySsa(
this ForecastingCatalog catalog, string outputColumnName, string inputColumnName, int windowSize, int seriesLength, int trainSize, int horizon,
bool isAdaptive = false, float discountFactor = 1, RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact, int? rank = null,
int? maxRank = null, bool shouldStablize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
int? maxRank = null, bool shouldStabilize = true, bool shouldMaintainInfo = false, GrowthRatio? maxGrowth = null, string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null, float confidenceLevel = 0.95f, bool variableHorizon = false) =>
new SsaForecastingEstimator(CatalogUtils.GetEnvironment(catalog), outputColumnName, inputColumnName, windowSize, seriesLength, trainSize,
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStablize, shouldMaintainInfo, maxGrowth, forcastingConfidentLowerBoundColumnName,
forcastingConfidentUpperBoundColumnName, confidenceLevel, variableHorizon);
horizon, isAdaptive, discountFactor, rankSelectionMethod, rank, maxRank, shouldStabilize, shouldMaintainInfo, maxGrowth, lowerBoundConfidenceColumn,
upperBoundConfidenceColumn, confidenceLevel, variableHorizon);
}
}
40 changes: 20 additions & 20 deletions src/Microsoft.ML.TimeSeries/SSaForecasting.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -42,10 +42,10 @@ internal sealed class Options : TransformInputBase
public string Name;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname", SortOrder = 3)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname", SortOrder = 3)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The discount factor in [0,1] used for online updates.", ShortName = "disc", SortOrder = 5)]
public float DiscountFactor = 1;
Expand All@@ -67,7 +67,7 @@ internal sealed class Options : TransformInputBase
public int? MaxRank = null;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the model should be stabilized.", SortOrder = 3)]
public bool ShouldStablize = true;
public bool ShouldStabilize = true;

[Argument(ArgumentType.AtMostOnce, HelpText = "The flag determining whether the meta information for the model needs to be maintained.", SortOrder = 3)]
public bool ShouldMaintainInfo = false;
Expand DownExpand Up@@ -97,14 +97,14 @@ public BaseArguments(Options options)
{
Source = options.Source;
Name = options.Name;
ForcastingConfidentLowerBoundColumnName = options.ForcastingConfidentLowerBoundColumnName;
ForcastingConfidentUpperBoundColumnName = options.ForcastingConfidentUpperBoundColumnName;
LowerBoundConfidenceColumn = options.LowerBoundConfidenceColumn;
UpperBoundConfidenceColumn = options.UpperBoundConfidenceColumn;
WindowSize = options.WindowSize;
DiscountFactor = options.DiscountFactor;
IsAdaptive = options.IsAdaptive;
RankSelectionMethod = options.RankSelectionMethod;
Rank = options.Rank;
ShouldStablize = options.ShouldStablize;
ShouldStablize = options.ShouldStabilize;
MaxGrowth = options.MaxGrowth;
SeriesLength = options.SeriesLength;
TrainSize = options.TrainSize;
Expand DownExpand Up@@ -255,11 +255,11 @@ public sealed class SsaForecastingEstimator : IEstimator<SsaForecastingTransform
/// <param name="rank">The desired rank of the subspace used for SSA projection (parameter r). This parameter should be in the range in [1, windowSize].
/// If set to null, the rank is automatically determined based on prediction error minimization.</param>
/// <param name="maxRank">The maximum rank considered during the rank selection process. If not provided (i.e. set to null), it is set to windowSize - 1.</param>
/// <param name="shouldStablize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldStabilize">The flag determining whether the model should be stabilized.</param>
/// <param name="shouldMaintainInfo">The flag determining whether the meta information for the model needs to be maintained.</param>
/// <param name="maxGrowth">The maximum growth on the exponential trend.</param>
/// <param name="forcastingConfidentLowerBoundColumnName">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="forcastingConfidentUpperBoundColumnName">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="lowerBoundConfidenceColumn">The name of the confidence interval lower bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="upperBoundConfidenceColumn">The name of the confidence interval upper bound column. If not specified then confidence intervals will not be calculated.</param>
/// <param name="confidenceLevel">The confidence level for forecasting.</param>
/// <param name="variableHorizon">Set this to true if horizon will change after training.</param>
internal SsaForecastingEstimator(IHostEnvironment env,
Expand All@@ -274,11 +274,11 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod rankSelectionMethod = RankSelectionMethod.Exact,
int? rank = null,
int? maxRank = null,
bool shouldStablize = true,
bool shouldStabilize = true,
bool shouldMaintainInfo = false,
GrowthRatio? maxGrowth = null,
string forcastingConfidentLowerBoundColumnName = null,
string forcastingConfidentUpperBoundColumnName = null,
string lowerBoundConfidenceColumn = null,
string upperBoundConfidenceColumn = null,
float confidenceLevel = 0.95f,
bool variableHorizon = false)
: this(env, new SsaForecastingTransformer.Options
Expand All@@ -291,12 +291,12 @@ internal SsaForecastingEstimator(IHostEnvironment env,
RankSelectionMethod = rankSelectionMethod,
Rank = rank,
MaxRank = maxRank,
ShouldStablize = shouldStablize,
ShouldStabilize = shouldStabilize,
ShouldMaintainInfo = shouldMaintainInfo,
MaxGrowth = maxGrowth,
ConfidenceLevel = confidenceLevel,
ForcastingConfidentLowerBoundColumnName = forcastingConfidentLowerBoundColumnName,
ForcastingConfidentUpperBoundColumnName = forcastingConfidentUpperBoundColumnName,
LowerBoundConfidenceColumn = lowerBoundConfidenceColumn,
UpperBoundConfidenceColumn = upperBoundConfidenceColumn,
SeriesLength = seriesLength,
TrainSize = trainSize,
VariableHorizon = variableHorizon,
Expand DownExpand Up@@ -344,14 +344,14 @@ public SchemaShape GetOutputSchema(SchemaShape inputSchema)
resultDic[_options.Name] = new SchemaShape.Column(
_options.Name, SchemaShape.Column.VectorKind.Vector, NumberDataViewType.Single, false);

if (!string.IsNullOrEmpty(_options.ForcastingConfidentUpperBoundColumnName))
if (!string.IsNullOrEmpty(_options.UpperBoundConfidenceColumn))
{
resultDic[_options.ForcastingConfidentLowerBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentLowerBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.LowerBoundConfidenceColumn] = new SchemaShape.Column(
_options.LowerBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);

resultDic[_options.ForcastingConfidentUpperBoundColumnName] = new SchemaShape.Column(
_options.ForcastingConfidentUpperBoundColumnName, SchemaShape.Column.VectorKind.Vector,
resultDic[_options.UpperBoundConfidenceColumn] = new SchemaShape.Column(
_options.UpperBoundConfidenceColumn, SchemaShape.Column.VectorKind.Vector,
NumberDataViewType.Single, false);
}

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,11 +28,11 @@ internal abstract class ForecastingArgumentsBase

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval lower bound column.", ShortName = "cnfminname",
SortOrder = 2)]
public string ForcastingConfidentLowerBoundColumnName;
public string LowerBoundConfidenceColumn;

[Argument(ArgumentType.Required, HelpText = "The name of the confidence interval upper bound column.", ShortName = "cnfmaxnname",
SortOrder = 2)]
public string ForcastingConfidentUpperBoundColumnName;
public string UpperBoundConfidenceColumn;

[Argument(ArgumentType.AtMostOnce, HelpText = "The length of series from the begining used for training.", ShortName = "wnd",
SortOrder = 3)]
Expand DownExpand Up@@ -67,8 +67,8 @@ private protected SequentialForecastingTransformBase(int windowSize, int initial
}

private protected SequentialForecastingTransformBase(ForecastingArgumentsBase args, string name, int outputLength, IHostEnvironment env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.ForcastingConfidentLowerBoundColumnName,
args.ForcastingConfidentUpperBoundColumnName, args.Name, name, outputLength, env)
: this(args.TrainSize, args.SeriesLength, args.Source, args.LowerBoundConfidenceColumn,
args.UpperBoundConfidenceColumn, args.Name, name, outputLength, env)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.ML.TimeSeries/SsaForecastingBase.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,16 +127,16 @@ internal sealed class SsaForecastingBase : SequentialForecastingTransformBase<fl
internal SequenceModelerBase<Single, Single> Model;

public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
: base(options.TrainSize, 0, options.Source, options.Name, options.ForcastingConfidentLowerBoundColumnName,
options.ForcastingConfidentUpperBoundColumnName, name, options.VariableHorizon ? 0: options.Horizon, env)
: base(options.TrainSize, 0, options.Source, options.Name, options.LowerBoundConfidenceColumn,
options.UpperBoundConfidenceColumn, name, options.VariableHorizon ? 0: options.Horizon, env)
{
Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
IsAdaptive = options.IsAdaptive;
Horizon = options.Horizon;
ConfidenceLevel = options.ConfidenceLevel;
// Creating the master SSA model
Model = new AdaptiveSingularSpectrumSequenceModelerInternal(Host, options.TrainSize, options.SeriesLength, options.WindowSize,
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.ForcastingConfidentLowerBoundColumnName),
options.DiscountFactor, options.RankSelectionMethod, options.Rank, options.MaxRank, !string.IsNullOrEmpty(options.LowerBoundConfidenceColumn),
options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

StateRef = new State();
Expand Down
6 changes: 3 additions & 3 deletions test/BaselineOutput/Common/EntryPoints/core_manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -4095,7 +4095,7 @@
"Default": false
},
{
"Name": "ForcastingConfidentLowerBoundColumnName",
"Name": "LowerBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval lower bound column.",
"Aliases": [
Expand All@@ -4107,7 +4107,7 @@
"Default": null
},
{
"Name": "ForcastingConfidentUpperBoundColumnName",
"Name": "UpperBoundConfidenceColumn",
"Type": "String",
"Desc": "The name of the confidence interval upper bound column.",
"Aliases": [
Expand DownExpand Up@@ -4153,7 +4153,7 @@
"Default": null
},
{
"Name": "ShouldStablize",
"Name": "ShouldStabilize",
"Type": "Bool",
"Desc": "The flag determining whether the model should be stabilized.",
"Required": false,
Expand Down
12 changes: 6 additions & 6 deletions test/Microsoft.ML.TimeSeries.Tests/TimeSeriesDirectApi.cs
Original file line numberDiff line numberDiff line change
Expand Up@@ -338,8 +338,8 @@ public void SsaForecast()
ConfidenceLevel = 0.95f,
Source = "Value",
Name = "Forecast",
ForcastingConfidentLowerBoundColumnName = "MinCnf",
ForcastingConfidentUpperBoundColumnName = "MaxCnf",
LowerBoundConfidenceColumn = "MinCnf",
UpperBoundConfidenceColumn = "MaxCnf",
WindowSize = 10,
SeriesLength = 11,
TrainSize = 22,
Expand DownExpand Up@@ -397,8 +397,8 @@ public void SsaForecastPredictionEngine()
SeriesLength = 11,
TrainSize = 22,
Horizon = 4,
ForcastingConfidentLowerBoundColumnName = "ConfidenceLowerBound",
ForcastingConfidentUpperBoundColumnName = "ConfidenceUpperBound",
LowerBoundConfidenceColumn = "ConfidenceLowerBound",
UpperBoundConfidenceColumn = "ConfidenceUpperBound",
VariableHorizon = true
};

Expand All@@ -413,8 +413,8 @@ public void SsaForecastPredictionEngine()
var model = ml.Transforms.Text.FeaturizeText("Text_Featurized", "Text")
.Append(ml.Transforms.Conversion.ConvertType("Value", "Value", DataKind.Single))
.Append(ml.Forecasting.ForecastBySsa("Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound", variableHorizon: true))
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound", variableHorizon: true))
.Append(ml.Transforms.Concatenate("Forecast", "Forecast", "ConfidenceLowerBound", "ConfidenceUpperBound"))
.Fit(dataView);

Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -95,8 +95,8 @@ void TestSsaForecastingEstimator()

// Train
var pipe = new SsaForecastingEstimator(Env, "Forecast", "Value", 10, 11, 22, 4,
forcastingConfidentLowerBoundColumnName: "ConfidenceLowerBound",
forcastingConfidentUpperBoundColumnName: "ConfidenceUpperBound");
lowerBoundConfidenceColumn: "ConfidenceLowerBound",
upperBoundConfidenceColumn: "ConfidenceUpperBound");

var xyData = new List<TestDataXY> { new TestDataXY() { A = new float[inputSize] } };
var stringData = new List<TestDataDifferntType> { new TestDataDifferntType() { data_0 = new string[inputSize] } };
Expand Down