private static void TestSinglePrediction(MLContext mlContext, ITransformer model) { //Prediction test // Create prediction function and make prediction. var predictionFunction = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(model); //Sample: //vendor_id,rate_code,passenger_count,trip_time_in_secs,trip_distance,payment_type,fare_amount //VTS,1,1,1140,3.75,CRD,15.5 var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 // To predict. Actual/Observed = 15.5 }; var prediction = predictionFunction.Predict(taxiTripSample); Console.WriteLine($"**********************************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"**********************************************************************"); }
// Predicts fare amount based on test data, displays the predicted results private static void TestSinglePrediction(MLContext mlContext, ITransformer model) { // Uses the CreatePredictionEngine to predict the Taxifare var predictionFunction = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(model); //Sample data to test the prediction-engine var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 }; // Run prediction pipeline on one example var prediction = predictionFunction.Predict(taxiTripSample); Console.WriteLine($"**********************************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"**********************************************************************"); }
private static void TestSinglePrediction(MLContext mlContext) { //load the model ITransformer loadedModel; using (var stream = new FileStream(_modelPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { loadedModel = mlContext.Model.Load(stream); } //Prediction test // Create prediction function and make prediction. var predictionFunction = loadedModel.MakePredictionFunction <TaxiTrip, TaxiTripFarePrediction>(mlContext); //Sample: //vendor_id,rate_code,passenger_count,trip_time_in_secs,trip_distance,payment_type,fare_amount //VTS,1,1,1140,3.75,CRD,15.5 var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 // To predict. Actual/Observed = 15.5 }; var prediction = predictionFunction.Predict(taxiTripSample); Console.WriteLine($"**********************************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"**********************************************************************"); }
public async Task <IActionResult> Edit(int id, [Bind("ID,dropOffLat,pdropOffLat,pickUpLat,pickUpLon")] TaxiTrip taxiTrip) { if (id != taxiTrip.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(taxiTrip); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TaxiTripExists(taxiTrip.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } return(View(taxiTrip)); }
public TaxiTripFarePrediction GetFarePrediction(TaxiTrip trip) { var predictionFunction = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(dataTransformer); TaxiTripFarePrediction prediction = predictionFunction.Predict(trip); return(prediction); }
static void Main(string[] args) { MLContext mlContext = new MLContext(seed: 0); var model = Train(mlContext, _trainDataPath); Evaluate(mlContext, model); TestSinglePrediction(mlContext); ITransformer loadedModel; using (var stream = new FileStream(_modelPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { loadedModel = mlContext.Model.Load(stream); } var predictionFunction = loadedModel.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(mlContext); var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 // To predict. Actual/Observed = 15.5 }; var prediction = predictionFunction.Predict(taxiTripSample); Console.WriteLine(); Console.WriteLine($"*****************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"*****************************************************"); Console.WriteLine(); }
private static void TestSinglePrediction(MLContext mlContext) { //Sample: //vendor_id,rate_code,passenger_count,trip_time_in_secs,trip_distance,payment_type,fare_amount //VTS,1,1,1140,3.75,CRD,15.5 var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 // To predict. Actual/Observed = 15.5 }; /// ITransformer trainedModel = mlContext.Model.Load(ModelPath, out var modelInputSchema); // Create prediction engine related to the loaded trained model var predEngine = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePredictionWithContribution>(trainedModel); //Score var prediction = predEngine.Predict(taxiTripSample); /// Console.WriteLine($"**********************************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"**********************************************************************"); }
public IActionResult Create([FromBody] TaxiTrip item) { if (item == null) { return(BadRequest()); } TaxiTrips.Add(item); return(CreatedAtRoute("GetTrip", new { id = item.Key }, item)); }
public IActionResult Post([FromBody] TaxiTrip trip) { // Create prediction engine related to the loaded trained model var function = _prediction.MakePredictionFunction <TaxiTrip, TaxiTripFarePrediction>(_mlContext); //Score var farePrediction = function.Predict(trip); return(Ok(farePrediction.FareAmount)); }
public async Task <IActionResult> Create([Bind("ID,dropOffLat,pdropOffLat,pickUpLat,pickUpLon")] TaxiTrip taxiTrip) { if (ModelState.IsValid) { _context.Add(taxiTrip); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(taxiTrip)); }
public static void Run() { MLContext mlContext = new MLContext(); // STEP 1: Load data IDataView trainDataView = mlContext.Data.LoadFromTextFile <TaxiTrip>(TrainDataPath, separatorChar: ',', hasHeader: true); IDataView testDataView = mlContext.Data.LoadFromTextFile <TaxiTrip>(TestDataPath, separatorChar: ',', hasHeader: true); // STEP 2: Run AutoML experiment Console.WriteLine($"Running AutoML multiclass classification experiment for {ExperimentTime} seconds..."); ExperimentResult <MulticlassClassificationMetrics> experimentResult = mlContext.Auto() .CreateMulticlassClassificationExperiment(ExperimentTime) .Execute(trainDataView, LabelColumnName); // STEP 3: Print metric from the best model RunDetail <MulticlassClassificationMetrics> bestRun = experimentResult.BestRun; Console.WriteLine($"Total models produced: {experimentResult.RunDetails.Count()}"); Console.WriteLine($"Best model's trainer: {bestRun.TrainerName}"); Console.WriteLine($"Metrics of best model from validation data --"); PrintMetrics(bestRun.ValidationMetrics); // STEP 6: Create prediction engine from the best trained model var predictionEngine = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(bestRun.Model); // STEP 7: Initialize new pixel data, and get the predicted number var testTaxiTripData = new TaxiTrip { VendorId = "CMT", RateCode = 1, PassengerCount = 1, TripTimeInSeconds = 1271, TripDistance = 3.8F, PaymentType = "CRD", FareAmount = 17.5F, }; var prediction = predictionEngine.Predict(testTaxiTripData); Console.WriteLine($"Predicted number for test data:"); foreach (var x in prediction.Payment) { Console.WriteLine(x.ToString()); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public JsonResult GetPrediction([FromBody] TaxiTrip trip) { MLContext mlContext = new MLContext(seed: 0); ITransformer loadedModel; using (var stream = new FileStream(_ModelPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { loadedModel = mlContext.Model.Load(stream); } var predictionFunction = loadedModel.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(mlContext); var prediction = predictionFunction.Predict(trip); return(new JsonResult(Math.Round(prediction.FareAmount, 2))); }
private async Task Predict() { Trip = new TaxiTrip() { FareAmount = FareAmount, PassengerCount = PassengerCount, PaymentType = PaymentType, RateCode = RateCode, TripDistance = TripDistance, TripTime = TripTime, VendorId = VendorId }; var amount = await PredictionService.Predict(Trip); await App.Current.MainPage.DisplayAlert("Prediction", $"Trip Fare: {amount:C2}", "OK"); }
public IActionResult Update(string id, [FromBody] TaxiTrip item) { if (item == null || item.Key != id) { return(BadRequest()); } var todo = TaxiTrips.Find(id); if (todo == null) { return(NotFound()); } TaxiTrips.Update(item); return(new NoContentResult()); }
public ActionResult Create(TaxiTrip trip) { TaxiFarePredictionEngine.Models.TaxiTrip taxitrip = new TaxiFarePredictionEngine.Models.TaxiTrip { VendorId = trip.VendorId.ToString(), RateCode = trip.RateCode, PassengerCount = trip.PassengerCount, TripTime = trip.TripTime, TripDistance = trip.TripDistance, PaymentType = trip.PaymentType.ToString() }; TaxiFarePredictionEngine.PredictionEngine predictionEngine = new TaxiFarePredictionEngine.PredictionEngine(); TaxiFarePredictionEngine.Models.TaxiTripFarePrediction prediction = predictionEngine.GetFarePrediction(taxitrip); trip.FareAmount = prediction.FareAmount; return(View("View", trip)); }
public static void LoadDataInCache() { var currentLine = string.Empty; string baseDataRelativePath = @"../../../../Data"; string filepath = GetAbsolutePath($"{baseDataRelativePath}/taxi-fare-full.csv"); List <TaxiTrip> dataList = new List <TaxiTrip>(); int i = 0; using (StreamReader r = new StreamReader(filepath)) { while ((currentLine = r.ReadLine()) != null) { string[] incomingData = currentLine.Split(","); TaxiTrip data = new TaxiTrip(); data.RateCode = float.Parse(incomingData[0]); data.PassengerCount = float.Parse(incomingData[1]); data.TripTime = float.Parse(incomingData[2]); data.TripDistance = float.Parse(incomingData[3]); data.FareAmount = float.Parse(incomingData[4]); dataList.Add(data); if (dataList.Count > 100) { //Remove first entries and move sliding window if (TrainingData.Count > dataList.Count) { TrainingData.RemoveRange(0, dataList.Count); } TrainingData.AddRange(dataList); //publish message for notifying data upate Topic.Publish(new Message("DataSet has been updated."), DeliveryOption.All); dataList.Clear(); Console.WriteLine("Chunk of data has been added:" + i); i++; //Sleep for 5 minutes Thread.Sleep(30000); } } } }
private static void TestSinglePrediction(MLContext mlContext, ITransformer model) { TestSinglePrediction(mlContext, model); var predictionFunction = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(model); var taxiTripSample = new TaxiTrip() { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 0 // To predict. Actual/Observed = 15.5 }; var prediction = predictionFunction.Predict(taxiTripSample); Console.WriteLine($"**********************************************************************"); Console.WriteLine($"Predicted fare: {prediction.FareAmount:0.####}, actual fare: 15.5"); Console.WriteLine($"**********************************************************************"); }
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 async static Task <float> Predict(TaxiTrip trip) { try { var json = JsonConvert.SerializeObject(trip); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync(TaxiFarePredictionService, content); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); return(float.Parse(result)); } } catch (Exception ex) { } return(0); }
private async void MLNet_Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { ResultTextBlock.Text = string.Empty; var trip = new TaxiTrip { VendorId = "VTS", RateCode = "1", PassengerCount = 1, TripDistance = 10.33f, PaymentType = "CSH", FareAmount = 0 // predict it. actual = 29.5 }; MLContext mlContext = new MLContext(seed: 0); var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///Assets/TaxiFareModel.zip")); ITransformer trainedModel = mlContext.Model.Load(await modelFile.OpenStreamForReadAsync(), out var modelInputSchema); var predEngine = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(trainedModel); var resultprediction = predEngine.Predict(trip); ResultTextBlock.Text = resultprediction.FareAmount.ToString("C"); }
public ActionResult Post([FromBody] TaxiTrip input) { TaxiTripFarePrediction prediction = _predictionEnginePool.Predict(modelName: "TaxiTripFarePredictionModel", example: input); return(Ok(prediction.FareAmount)); }
static void Main(string[] args) { string TrainDataPath = "NYCTaxi/train.csv"; string TestDataPath = "NYCTaxi/test.csv"; //Create ML Context with seed for repeteable/deterministic results MLContext mlContext = new MLContext(seed: 0); // STEP 1: Common data loading configuration TextLoader textLoader = mlContext.Data.CreateTextReader(new[] { new TextLoader.Column("VendorId", DataKind.Text, 0), new TextLoader.Column("RateCode", DataKind.Text, 1), new TextLoader.Column("PassengerCount", DataKind.R4, 2), new TextLoader.Column("TripTime", DataKind.R4, 3), new TextLoader.Column("TripDistance", DataKind.R4, 4), new TextLoader.Column("PaymentType", DataKind.Text, 5), new TextLoader.Column("FareAmount", DataKind.R4, 6), new TextLoader.Column("TipAmount", DataKind.R4, 7) }, hasHeader: true, separatorChar: ',' ); IDataView baseTrainingDataView = textLoader.Read(TrainDataPath); IDataView testDataView = textLoader.Read(TestDataPath); //Sample code of removing extreme data like "outliers" for FareAmounts higher than $150 and lower than $1 which can be error-data var cnt = baseTrainingDataView.GetColumn <float>(mlContext, "FareAmount").Count(); IDataView trainingDataView = mlContext.Data.FilterByColumn(baseTrainingDataView, "FareAmount", lowerBound: 1, upperBound: 150); var cnt2 = trainingDataView.GetColumn <float>(mlContext, "FareAmount").Count(); // STEP 2: Common data process configuration with pipeline data transformations var dataProcessPipeline = mlContext.Transforms.Concatenate("Y", "FareAmount", "TipAmount") .Append(mlContext.Transforms.Categorical.OneHotEncoding("VendorId", "VendorIdEncoded")) .Append(mlContext.Transforms.Categorical.OneHotEncoding("RateCode", "RateCodeEncoded")) .Append(mlContext.Transforms.Categorical.OneHotEncoding("PaymentType", "PaymentTypeEncoded")) .Append(mlContext.Transforms.Normalize(inputName: "PassengerCount", mode: NormalizerMode.MeanVariance)) .Append(mlContext.Transforms.Normalize(inputName: "TripTime", mode: NormalizerMode.MeanVariance)) .Append(mlContext.Transforms.Normalize(inputName: "TripDistance", mode: NormalizerMode.MeanVariance)) .Append(mlContext.Transforms.Concatenate("X", "VendorIdEncoded", "RateCodeEncoded", "PaymentTypeEncoded", "PassengerCount", "TripTime", "TripDistance")) .Append(new TensorFlowEstimator(mlContext, new TensorFlowTransform.Arguments() { ModelLocation = "NYCTaxi/model", // Model is created with this script: DeepLearningWithMLdotNet\NYCTaxiMultiOutputRegression\TF_MultiOutputLR.py InputColumns = new[] { "X" }, OutputColumns = new[] { "RegScores" }, LabelColumn = "Y", TensorFlowLabel = "Y", OptimizationOperation = "MomentumOptimizer", LossOperation = "Loss", Epoch = 10, LearningRateOperation = "learning_rate", LearningRate = 0.01f, BatchSize = 20, ReTrain = true })); var trainedModel = dataProcessPipeline.Fit(baseTrainingDataView); // The evaluation does not work. It requires the score to be scalar. // However, for multi-output regression its vector // var predicted = trainedModel.Transform(testDataView); // var metrics = mlContext.Regression.Evaluate(predicted, "Y", "RegScores"); // Create prediction function and test prediction var predictFunction = trainedModel.CreatePredictionEngine <TaxiTrip, TaxiTripFarePrediction>(mlContext); var oneSample = new TaxiTrip() { VendorId = "CMT", RateCode = "1", PassengerCount = 2, TripTime = 1405, TripDistance = 10.3f, PaymentType = "CRD", FareAmount = 0, // To predict. Actual/Observed = 31.0 TipAmount = 0 // To predict. Actual/Observed = 7.36 }; var prediction = predictFunction.Predict(oneSample); Console.WriteLine("[FareAmount, TipAmount] = [{0}]", string.Join(", ", prediction.RegScores)); Console.WriteLine("Press any key to exit.."); Console.ReadLine(); }
private static void Main(string[] args) { try { LinearRegression <TaxiTrip> regression; #region Creating model if (!File.Exists("model.lrm")) { Console.WriteLine("DEBUG: Training model..."); regression = new LinearRegression <TaxiTrip>(_trainDataPath, _nonencodedColumns, _encodedColumns); } else { Console.WriteLine("Trained model is found"); Console.Write("Do you want to load the existing model or train a new model? [L/T] "); switch (Console.ReadLine()) { case "L" or "l": Console.WriteLine("DEBUG: Loading model..."); regression = new LinearRegression <TaxiTrip>("model.lrm"); break; case "T" or "t": Console.WriteLine("DEBUG: Training model..."); regression = new LinearRegression <TaxiTrip>(_trainDataPath, _nonencodedColumns, _encodedColumns); break; default: throw new ArgumentException("Invalid input"); } } #endregion #region Testing model Console.WriteLine("DEBUG: Testing model..."); var metrics = regression.TestModel(_testDataPath); Console.WriteLine(); Console.WriteLine("*************************************************"); Console.WriteLine("* Model quality metrics evaluation "); Console.WriteLine("*------------------------------------------------"); Console.WriteLine($"* R2 Score: {metrics.RSquared,0:F2}"); Console.WriteLine($"* RMS Error: {metrics.RootMeanSquaredError,0:F2}"); Console.WriteLine("*************************************************"); #endregion #region Saving model Console.WriteLine("DEBUG: Saving model..."); regression.SaveModel("model.lrm"); #endregion #region Testing model with a single sample var sample = new TaxiTrip() { VendorId = "VTS", RateCode = (int)RateCode.Standard, PassengerCount = 1, TripTime = 1140, TripDistance = 3.75f, PaymentType = "CRD", FareAmount = 15.5f }; var sampleResult = regression.SingleSamplePrediction <TaxiTripFarePrediction>(sample); Console.WriteLine(); Console.WriteLine("*************************************************"); Console.WriteLine("* Testing model with a sample "); Console.WriteLine("*------------------------------------------------"); Console.WriteLine($"* Predicted fare: {sampleResult.FareAmount,0:F2}"); Console.WriteLine($"* Actual fare: {sample.FareAmount,0:F2}"); Console.WriteLine("*************************************************"); #endregion } catch (Exception e) { Console.WriteLine($"ERROR: {e.Message}"); } }
static void Main(string[] args) { var mlContext = new MLContext(); var loader = mlContext.Data.CreateTextLoader(new TextLoader.Options { HasHeader = true, Separators = new[] { ',' }, Columns = new TextLoader.Column[] { new TextLoader.Column("VendorID", DataKind.String, 0), new TextLoader.Column("PassengerCount", DataKind.Single, 3), new TextLoader.Column("TripDistance", DataKind.Single, 4), new TextLoader.Column("RateCard", DataKind.String, 5), new TextLoader.Column("PaymentType", DataKind.String, 9), new TextLoader.Column("FareAmount", DataKind.Single, 10), new TextLoader.Column("PickUpDateTime", DataKind.DateTime, 1), new TextLoader.Column("DropOffDateTime", DataKind.DateTime, 2), } }); // load the data Console.WriteLine("*** Loading Training Data ***"); IDataView dataView = loader.Load(DataPath); Console.WriteLine("*** Done ***"); dataView = mlContext.Data.FilterRowsByColumn(dataView, "FareAmount", lowerBound: 0); dataView = mlContext.Data.FilterRowsByColumn(dataView, "PassengerCount", lowerBound: 0); dataView = mlContext.Data.FilterRowsByColumn(dataView, "TripDistance", lowerBound: 0); // prepare the training data var trainingData = mlContext.Data.TrainTestSplit(dataView, 0.99); // create learning pipeline var pipeline1 = mlContext.Transforms.CopyColumns(outputColumnName: "Label", inputColumnName: "FareAmount") .Append(mlContext.Transforms.Categorical.OneHotEncoding(inputColumnName: "VendorID", outputColumnName: "EncodedVendorID")) .Append(mlContext.Transforms.Categorical.OneHotEncoding(inputColumnName: "RateCard", outputColumnName: "EncodedRateCard")) .Append(mlContext.Transforms.Categorical.OneHotEncoding(inputColumnName: "PaymentType", outputColumnName: "EncodedPaymentType")); var pipeline = pipeline1 .Append(mlContext.Transforms.CustomMapping <TaxiTrip, TaxiTripTime>((inp, outp) => { float tripTime = 0; if (inp.PickUpDateTime != DateTime.MinValue && inp.DropOffDateTime != DateTime.MinValue && inp.DropOffDateTime.Subtract(inp.PickUpDateTime).Minutes > 0) { tripTime = (float)inp.DropOffDateTime.Subtract(inp.PickUpDateTime).Minutes; } outp.TripTime = tripTime; }, contractName: "TripTime")) .Append(mlContext.Transforms.Concatenate("Features", "EncodedVendorID",//"VendorID", "PassengerCount", "TripDistance", "EncodedRateCard", //"RateCard", "EncodedPaymentType", //"PaymentType", "TripTime")) .Append(mlContext.Transforms.DropColumns("PickUpDateTime", "DropOffDateTime", "VendorID", "RateCard", "PaymentType")) .AppendCacheCheckpoint(mlContext) .Append(mlContext.Regression.Trainers.FastTree()); //pipeline.Preview(dataView); // Train the model Console.WriteLine("*** Training the Model ***"); var model = pipeline.Fit(trainingData.TrainSet); Console.WriteLine("*** Done ***"); // get set of predictions Console.WriteLine("*** Evaluate the Model ***"); var testData = model.Transform(trainingData.TestSet); Console.WriteLine("*** Done ***"); // get the regression score var metrics = mlContext.Regression.Evaluate(testData, "Label", "Score"); // print metrics Console.WriteLine(); Console.WriteLine("Model Metrics:"); Console.WriteLine($"RMSE: {metrics.RootMeanSquaredError:#.##}"); Console.WriteLine($"MAE: {metrics.MeanAbsoluteError:#.##}"); Console.WriteLine($"MSE: {metrics.MeanSquaredError:#.##}"); // make a single prediction var predictionEngine = mlContext.Model.CreatePredictionEngine <TaxiTrip, TaxiTripPrediction>(model); // prep a single taxi trip var trip = new TaxiTrip { VendorID = "1", PassengerCount = 1, RateCard = "1", TripDistance = 3.75f, PaymentType = "1", FareAmount = 0, PickUpDateTime = Convert.ToDateTime("2018-12-01 00:28:22"), DropOffDateTime = Convert.ToDateTime("2018-12-01 00:48:07") }; var predictedFare = predictionEngine.Predict(trip); Console.WriteLine($"Predicted Price: {predictedFare.FareAmount:0.####}"); }
public TaxiTripFarePrediction GetTripFare(TaxiTrip taxiTrip) { var predictionFunction = loadedModel.MakePredictionFunction <TaxiTrip, TaxiTripFarePrediction>(mlContext); return(predictionFunction.Predict(taxiTrip)); }