示例#1
0
        public TaxiTripFarePrediction GetFarePrediction(TaxiTrip trip)
        {
            var predictionFunction            = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(dataTransformer);
            TaxiTripFarePrediction prediction = predictionFunction.Predict(trip);

            return(prediction);
        }
示例#2
0
        static async Task Main(string[] args)
        {
            PredictionModel <TaxiTrip, TaxiTripFarePrediction> model = await Train();

            Evaluate(model);

            TaxiTripFarePrediction prediction = model.Predict(TestTrips.Trip1);

            Console.WriteLine("Predicted fare: {0}, actual fare: 29.5", prediction.FareAmount);
        }
示例#3
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "PredictTaxiFare")] HttpRequest req)
        {
            IActionResult returnValue = null;

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            var input = JsonConvert.DeserializeObject <TaxiTrip>(requestBody);

            // Make Prediction
            TaxiTripFarePrediction prediction = _predictionEnginePool.Predict(
                modelName: "TaxiTripModel",
                example: input);

            var insertedPrediction = new TaxiTripInsertObject
            {
                Id                  = Guid.NewGuid().ToString(),
                VendorId            = input.VendorId,
                RateCode            = input.RateCode,
                PassengerCount      = input.PassengerCount,
                TripTime            = input.TripTime,
                TripDistance        = input.TripDistance,
                PaymentType         = input.PaymentType,
                FareAmount          = input.FareAmount,
                PredictedFareAmount = prediction.FareAmount
            };

            try
            {
                ItemResponse <TaxiTripInsertObject> predictionResponse = await _container.CreateItemAsync(
                    insertedPrediction,
                    new PartitionKey(insertedPrediction.VendorId));

                returnValue = new OkObjectResult(predictionResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError($"Inserting prediction failed: Exception thrown: {ex.Message}");
                returnValue = new StatusCodeResult(StatusCodes.Status500InternalServerError);
            }

            return(returnValue);
        }
示例#4
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "/TaxiPrediction")] HttpRequest req)
        {
            IActionResult result = null;

            try
            {
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

                var input = JsonConvert.DeserializeObject <TaxiTrip>(requestBody);

                TaxiTripFarePrediction prediction = _predictionEnginePool.Predict(
                    modelName: "TaxiTripModel",
                    example: input);

                var insertedPrediction = new TaxiTripDTO()
                {
                    Id                  = Guid.NewGuid().ToString(),
                    VendorId            = input.VendorId,
                    RateCode            = input.RateCode,
                    PassengerCount      = input.PassengerCount,
                    TripTime            = input.TripTime,
                    TripDistance        = input.TripDistance,
                    PaymentType         = input.PaymentType,
                    FareAmount          = input.FareAmount,
                    PredictedFareAmount = prediction.FareAmount
                };

                ItemResponse <TaxiTripDTO> response = await _taxiContainer.CreateItemAsync(
                    insertedPrediction,
                    new PartitionKey(insertedPrediction.VendorId));

                _logger.LogInformation($"Inserting prediction cost: {response.RequestCharge} RU/s");
                result = new StatusCodeResult(StatusCodes.Status201Created);
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong. Exception thrown: {ex.Message}");
                result = new StatusCodeResult(StatusCodes.Status500InternalServerError);
            }

            return(result);
        }
示例#5
0
        public async Task RegressionTutorial()
        {
            var regression = new RegressionTaxi();
            var model      = await regression.Train();

            regression.Evaluate(model);

            var trip1 = new TaxiTrip
            {
                VendorId       = "VTS",
                RateCode       = "1",
                PassengerCount = 1,
                TripDistance   = 10.33f,
                PaymentType    = "CSH",
                FareAmount     = 0 // predict it. actual = 29.5
            };

            TaxiTripFarePrediction prediction = model.Predict(trip1);

            Console.WriteLine("Predicted fare: {0}, actual fare: 29.5", prediction.FareAmount);
        }
        public ActionResult Post([FromBody] TaxiTrip input)
        {
            TaxiTripFarePrediction prediction = _predictionEnginePool.Predict(modelName: "TaxiTripFarePredictionModel", example: input);

            return(Ok(prediction.FareAmount));
        }
示例#7
0
 private static void DisplayPredictedFare(TaxiTripFarePrediction prediction)
 {
     Console.WriteLine();
     Console.WriteLine(new String('*', 35));
     Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5");
 }