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; }
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; }
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; }
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); } }
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] }); } } }