public static IObservable <IO <IObservable <KeyValuePair <DateTime, Tuple <double, double>[]> > > > GetDynamicOutput(bool optimise, Type type, TwoVariableInput filter, IConnectableObservable <KeyValuePair <DateTime, double> > measurements, IScheduler scheduler) { measurements.Connect(); measurements.Subscribe(ddd => Console.WriteLine(ddd.Key + " " + (DateTime.Now - ddd.Key).Seconds)); if (optimise) { // return Filter.Optimisation.Class1.GetOptimisedOutput(measurements); return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler)); } else { return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler)); } }
public static IO <IObservable <KeyValuePair <DateTime, Tuple <double, double>[]> > > GetNonOptimisedOutput(TwoVariableInput t, IObservable <KeyValuePair <DateTime, double> > e) { var run = TypeHelper.GetInstance <IFilterWrapper>(t.Filter, t.VarA, t.VarB).Run(e.Select(_ => new KeyValuePair <DateTime, double?>(_.Key, _.Value))); return(new IO <IObservable <KeyValuePair <DateTime, Tuple <double, double>[]> > > { Output = run, Parameters = new double[] { t.VarA, t.VarB }, Score = 0//ErrorHelper.GetErrorSum(e, run) }); }
public static IObservable <IO <IEnumerable <KeyValuePair <DateTime, Tuple <double, double>[]> > > > GetStaticOutput(bool optimise, Type type, TwoVariableInput filter, IEnumerable <KeyValuePair <DateTime, double> > measurements, IScheduler scheduler) { if (optimise) { //return Optimisation.Class1.GetOptimisedOutput(type, measurements).SubscribeOn(scheduler); return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler)); } else { return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler)); } }
// public static AccordGenetic.Wrapper.TimeSeries2DOptimisation<IObservable<KeyValuePair<DateTime, double>>, IObservable<KeyValuePair<DateTime, Tuple<double, double>[]>>> //GetOptimiser(List<KeyValuePair<DateTime, double>> z) // { // return new AccordGenetic.Wrapper.TimeSeries2DOptimisation<IObservable<KeyValuePair<DateTime, double>>, IObservable<KeyValuePair<DateTime, Tuple<double, double>[]>>> // ((ss) => (a, b) => new GaussianProcessWrapper(a, b).Run(ss.Select(_=>new KeyValuePair<DateTime, double?>(_.Key,_.Value))), z.ToObservable(), ErrorHelper.GetErrorSum); // } public static IO <IEnumerable <KeyValuePair <DateTime, Tuple <double, double>[]> > > GetNonOptimisedOutput(TwoVariableInput t, IEnumerable <KeyValuePair <DateTime, double> > e) { var run = TypeHelper.GetInstance <IFilterWrapper>(t.Filter, t.VarA, t.VarB).BatchRun(e).ToList(); return(new IO <IEnumerable <KeyValuePair <DateTime, Tuple <double, double>[]> > > { Output = run, Parameters = new double[] { t.VarA, t.VarB }, Score = ErrorHelper.GetErrorSum(e, run) }); }