private protected override void CloneCore(State state)
                {
                    base.CloneCore(state);
                    Contracts.Assert(state is State);
                    var stateLocal = state as State;

                    stateLocal.WindowedBuffer        = WindowedBuffer.Clone();
                    stateLocal.InitialWindowedBuffer = InitialWindowedBuffer.Clone();
                    if (_model != null)
                    {
                        _parentAnomalyDetector.Model = _parentAnomalyDetector.Model.Clone();
                        _model = _parentAnomalyDetector.Model;
                    }
                }
示例#2
0
            public SsaForecastingBase(SsaForecastingOptions options, string name, IHostEnvironment env, SsaForecastingBaseWrapper parent)
                : base(options.TrainSize, 0, options.Source, options.Name, options.ConfidenceLowerBoundColumn,
                       options.ConfidenceUpperBoundColumn, 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.ConfidenceLowerBoundColumn),
                                                                            options.ShouldStablize, options.ShouldMaintainInfo, options.MaxGrowth);

                StateRef = new State();
                StateRef.InitState(WindowSize, InitialWindowSize, this, Host);
                Parent = parent;
            }
            public SsaAnomalyDetectionBase(SsaOptions options, string name, IHostEnvironment env, SsaAnomalyDetectionBaseWrapper parent)
                : base(options.WindowSize, 0, options.Source, options.Name, name, env, options.Side, options.Martingale, options.AlertOn, options.PowerMartingaleEpsilon, options.AlertThreshold)
            {
                Host.CheckUserArg(2 <= options.SeasonalWindowSize, nameof(options.SeasonalWindowSize), "Must be at least 2.");
                Host.CheckUserArg(0 <= options.DiscountFactor && options.DiscountFactor <= 1, nameof(options.DiscountFactor), "Must be in the range [0, 1].");
                Host.CheckUserArg(Enum.IsDefined(typeof(ErrorFunction), options.ErrorFunction), nameof(options.ErrorFunction), ErrorFunctionUtils.ErrorFunctionHelpText);

                SeasonalWindowSize = options.SeasonalWindowSize;
                DiscountFactor     = options.DiscountFactor;
                ErrorFunction      = options.ErrorFunction;
                ErrorFunc          = ErrorFunctionUtils.GetErrorFunction(ErrorFunction);
                IsAdaptive         = options.IsAdaptive;
                // Creating the master SSA model
                Model = new AdaptiveSingularSpectrumSequenceModeler(Host, options.InitialWindowSize, SeasonalWindowSize + 1, SeasonalWindowSize,
                                                                    DiscountFactor, AdaptiveSingularSpectrumSequenceModeler.RankSelectionMethod.Exact, null, SeasonalWindowSize / 2, false, false);

                StateRef = new State();
                StateRef.InitState(WindowSize, InitialWindowSize, this, Host);
                Parent = parent;
            }
 private protected override void InitializeAnomalyDetector()
 {
     _parentAnomalyDetector = (SsaAnomalyDetectionBase)Parent;
     _model = _parentAnomalyDetector.Model;
 }
示例#5
0
 private protected override void InitializeForecaster()
 {
     _parentForecaster = (SsaForecastingBase)Parent;
     _model            = _parentForecaster.Model;
 }