private async Task AnalyzeData()
        {
            IsBusy      = true;
            DataPointEx = new ObservableCollection <DataPointEx>();

            DataRequest.Sensitivity = Sensitivity;
            DataResult = await AnomalyDetectorService.AnalyzeData(DataRequest);

            if (DataResult != null)
            {
                for (int i = 0; i < DataResult.IsAnomaly.Length; i++)
                {
                    if (DataResult.IsAnomaly[i])
                    {
                        var point = DataRequest.Series[i];

                        DataPointEx.Add(new DataPointEx()
                        {
                            Value     = point.Value,
                            Timestamp = point.Timestamp,
                            IsAnomaly = true
                        });
                    }
                }

                CreateChart(anomalies: true);
            }

            IsBusy = false;
        }
Ejemplo n.º 2
0
        private async Task DetectStatus()
        {
            IsBusy = true;

            PriceInfo.sensitivity = Sensitivity;
            PriceAnomalies        = new ObservableCollection <Anomaly>();
            PriceStatus           = await AnomalyDetectorService.DetectStatus(priceInfo);

            if (PriceStatus != null)
            {
                if (PriceStatus.IsAnomaly)
                {
                    var priceData = PriceInfo.series.Last();

                    var lowerBoundary = PriceStatus.ExpectedValue - PriceStatus.LowerMargin;
                    var upperBoundary = PriceStatus.ExpectedValue + PriceStatus.UpperMargin;

                    PriceAnomalies.Add(new Anomaly()
                    {
                        Value      = priceData.value,
                        Timestamp  = priceData.timestamp,
                        IsPositive = PriceStatus.IsPositiveAnomaly,
                        Range      = $"Range: [{lowerBoundary:N2}, {upperBoundary:N2}]"
                    });
                }

                CreateChart(anomalies: true);
            }

            IsBusy = false;
        }
Ejemplo n.º 3
0
        private async Task FindAnomalies()
        {
            IsBusy = true;

            PriceInfo.sensitivity = Sensitivity;
            PriceAnomalies        = new ObservableCollection <Anomaly>();
            PriceResult           = await AnomalyDetectorService.DetectAnomalies(priceInfo);

            if (PriceResult != null)
            {
                for (int i = 0; i < PriceResult.IsAnomaly.Length; i++)
                {
                    if (PriceResult.IsAnomaly[i])
                    {
                        var priceData = PriceInfo.series[i];

                        var lowerBoundary = PriceResult.ExpectedValues[i] - PriceResult.LowerMargins[i];
                        var upperBoundary = PriceResult.ExpectedValues[i] + PriceResult.UpperMargins[i];

                        PriceAnomalies.Add(new Anomaly()
                        {
                            Value      = priceData.value,
                            Timestamp  = priceData.timestamp,
                            IsPositive = PriceResult.IsPositiveAnomaly[i],
                            Range      = $"Range: [{lowerBoundary:N2}, {upperBoundary:N2}]"
                        });
                    }
                }

                CreateChart(anomalies: true);
            }

            IsBusy = false;
        }
Ejemplo n.º 4
0
        private async Task AnalyzeData()
        {
            PriceInfo.sensitivity = Sensitivity;
            PriceAnomalies        = new ObservableCollection <Anomaly>();
            PriceResult           = await AnomalyDetectorService.AnalyzeData(priceInfo);

            if (PriceResult != null)
            {
                for (int i = 0; i < PriceResult.IsAnomaly.Length; i++)
                {
                    if (PriceResult.IsAnomaly[i])
                    {
                        var priceData = PriceInfo.series[i];

                        PriceAnomalies.Add(new Anomaly()
                        {
                            Value      = priceData.value,
                            Timestamp  = priceData.timestamp,
                            IsPositive = PriceResult.IsPositiveAnomaly[i]
                        });
                    }
                }

                CreateChart(anomalies: true);
            }
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <AnomaliesReport> > PostAnomaly()
        {
            string    model = Request.Form["anomalyModels"];
            IFormFile train = Request.Form.Files["trainFile"];
            IFormFile test  = Request.Form.Files["testFile"];

            if (model == null || train == null || test == null)
            {
                return(BadRequest("Read params failed"));
            }

            IAnomalyDetectorService        anomalyDetectorService = new AnomalyDetectorService(model, train, test);
            ActionResult <AnomaliesReport> anomaly = await Task.Run(anomalyDetectorService.FindAnomaly);

            return(anomaly);
        }
        private async Task AnalyzeData()
        {
            Anomalies = new ObservableCollection <Anomaly>();

            Result = await AnomalyDetectorService.AnalyzeData(Info);

            for (int i = 0; i < Result.IsAnomaly.Length; i++)
            {
                if (Result.IsAnomaly[i])
                {
                    var info = Info.series[i];

                    Anomalies.Add(new Anomaly()
                    {
                        Timestamp  = info.timestamp,
                        Value      = info.value,
                        IsPositive = Result.IsPositiveAnomaly[i]
                    });
                }
            }
        }