private object BuildSummaryAndChart(Product product)
 =>
 ProductWithData
 .Create(product)
 .Map(GetEstimate)
 .Match(
     estimate => PopulateDtoWithEstimate(product, estimate),
     error => PopulateDtoWithoutEstimate(product, error.ToString())
     );
Пример #2
0
        public static float GetEstimate(ProductWithData product)
        {
            MLContext mlContext = new MLContext();
            IDataView dataView  = mlContext.Data.LoadFromEnumerable(product.SalesData);

            var estimate =
                mlContext.Forecasting.ForecastBySsa(
                    outputColumnName: nameof(SalesEstimate.ForecastAmount),
                    inputColumnName: nameof(SalesDatum.Amount),
                    windowSize: 3,
                    seriesLength: 24,
                    trainSize: 24,
                    horizon: 1)
                .Fit(dataView)
                .CreateTimeSeriesEngine <SalesDatum, SalesEstimate>(mlContext)
                .Predict();

            return(estimate.ForecastAmount.First());
        }
Пример #3
0
 private static Option <ProductWithData> Convert(this Product product) => ProductWithData.Create(product);
Пример #4
0
 private static float GetEstimate(this ProductWithData product) => SsaEstimator.GetEstimate(product);
 private static Either <Error, ProductWithData> ValidProduct(this Product product) => ProductWithData.Create(product);