- Hands-On Machine Learning with ML.NET
- Jarred Capellman
- 310字
- 2021-06-24 16:43:30
The Predictor class
The Predictor class, as noted earlier, is the class that provides prediction support in our project. The idea behind this method is to provide a simple interface to run the model, given the relatively simple input. In future chapters, we will be expanding this method structure to support more complex integrations, such as those hosted in a web application:
- Akin to what was done in the Trainer class, we verify that the model exists prior to reading it:
if (!File.Exists(ModelPath)) {
Console.WriteLine($"Failed to find model at {ModelPath}");
return;
}
- Then, we define the ITransformer object:
ITransformer mlModel;
using (var stream = new FileStream(ModelPath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
mlModel = MlContext.Model.Load(stream, out _);
}
if (mlModel == null) {
Console.WriteLine("Failed to load model");
return;
}
This object will contain our model once we load via the Model.Load method. This method can also take a direct file path. However, the stream approach lends itself to support non on-disk approaches that we will use in later chapters.
- Next, create a PredictionEngine object given the model we loaded earlier:
var predictionEngine = MlContext.Model.CreatePredictionEngine<RestaurantFeedback, RestaurantPrediction>(mlModel);
We are passing in both TSrc and TDst, in our case for this project, RestaurantFeedback and RestaurantPrediction, respectively.
- Then, call the Predict method on the PredictionEngine class:
var prediction = predictionEngine.Predict(new RestaurantFeedback { Text = inputData });
Because, when we created the object with TSrc, the type was set to RestaurantFeedback, we have a strongly typed interface to our model. We then create the RestaurantFeedback object with the inputData variable that contains the string with the sentence we are going to run our model on.
- Finally, display the prediction output along with the probability:
Console.WriteLine($"Based on \"{inputData}\", the feedback is predicted to be:{Environment.NewLine}" +
"{(prediction.Prediction ? "Negative" : "Positive")} at a {prediction.Probability:P0}" + " confidence");
- Python 3.7網(wǎng)絡(luò)爬蟲快速入門
- 數(shù)字媒體應(yīng)用教程
- Pandas Cookbook
- Hands-On Data Structures and Algorithms with JavaScript
- 算法基礎(chǔ):打開程序設(shè)計之門
- INSTANT MinGW Starter
- 編寫高質(zhì)量代碼:改善C程序代碼的125個建議
- 人人都是網(wǎng)站分析師:從分析師的視角理解網(wǎng)站和解讀數(shù)據(jù)
- Java 9模塊化開發(fā):核心原則與實踐
- C#程序設(shè)計基礎(chǔ):教程、實驗、習(xí)題
- 可解釋機(jī)器學(xué)習(xí):模型、方法與實踐
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 軟件品質(zhì)之完美管理:實戰(zhàn)經(jīng)典
- Internet of Things with ESP8266
- Java圖像處理:基于OpenCV與JVM