public void find_exceptions_points(string csv_learn, string csv_detect, List <string> features, string chosen_feature) { Anomaly_detector anomaly = new Anomaly_detector(); SimpleAnomalyDetector s = new SimpleAnomalyDetector(); this.sd = s; ts_normal = new TimeSeries((string)csv_learn, features); sd.learnNormal(ts_normal); ts_detect = new TimeSeries((string)csv_detect, features); anomaly_reports = sd.detect(ts_detect); for (int i = 0; i < anomaly_reports.Count; i++) { Line_Reg_Points.Add(new DataPoint(anomaly_reports[i].timeStep, 0)); } NotifyPropertyChanged("Line_Reg_Points"); }
public void updateChoose(string csv_learn, string csv_detect, List <string> features, string chosen_feature) { /*Anomaly_detector anomaly = new Anomaly_detector(); * SimpleAnomalyDetector s = new SimpleAnomalyDetector(); * this.sd = s; * ts_normal = new TimeSeries((string)csv_learn, features); * s.learnNormal(ts_normal); * TimeSeries ts_detect = new TimeSeries((string)csv_detect, features); * anomaly_reports = s.detect(ts_detect);*/ Anomaly_detector anomaly = new Anomaly_detector(); SimpleAnomalyDetector s = new SimpleAnomalyDetector(); this.sd = s; ts_normal = new TimeSeries((string)csv_learn, features); sd.learnNormal(ts_normal); ts_detect = new TimeSeries((string)csv_detect, features); anomaly_reports = sd.detect(ts_detect); for (int i = 0; i < anomaly_reports.Count; i++) { Line_Reg_Points.Add(new DataPoint(anomaly_reports[i].timeStep, 0)); } NotifyPropertyChanged("Line_Reg_Points"); CorrelatedFeatures c = sd.get_correlated(chosen_feature); if (c != null) { string second_cor; if (c.get_feature1() == chosen_feature) { second_cor = c.get_feature2(); } else { second_cor = c.get_feature1(); } int size = ts_normal.get_dict()[features.IndexOf(chosen_feature)].Count; //sap- List <DataPoint> learn_points = line_to_points(c.get_line_reg(), size, ts_detect.get_dict()[features.IndexOf(chosen_feature)], ts_detect.get_dict()[features.IndexOf(second_cor)]); Line_Reg_Points = learn_points; NotifyPropertyChanged("Line_Reg_Points"); //same List <DataPoint> detected_points = new List <DataPoint>(); for (int i = 0; i < anomaly_reports.Count; i++) { if (anomaly_reports[i].get_feature1() == chosen_feature) { float x = ts_detect.get_dict()[features.IndexOf(chosen_feature)][(int)anomaly_reports[i].timeStep]; float y = ts_detect.get_dict()[features.IndexOf(second_cor)][(int)anomaly_reports[i].timeStep]; detected_points.Add(new DataPoint(x, y)); } else { float x = ts_detect.get_dict()[features.IndexOf(second_cor)][(int)anomaly_reports[i].timeStep]; float y = ts_detect.get_dict()[features.IndexOf(chosen_feature)][(int)anomaly_reports[i].timeStep]; detected_points.Add(new DataPoint(x, y)); } } Anomaly_Points = detected_points; NotifyPropertyChanged("Anomaly_Points"); } else { Anomaly_Points = new List <DataPoint>(); Line_Reg_Points = new List <DataPoint>(); } }