【发布时间】:2019-12-20 21:25:12
【问题描述】:
我正在尝试将Binary Classification 中所示的批量预测应用于Multi Class Classification 中的示例
在 google 和 Microsoft 工作中展示的许多示例都显示了一个预测,以展示经过训练的模型的能力。
但是,我希望通过批量预测 a) 多手动输入和 b) 使用没有标签的文件来证明训练模型的有效性。
我遵循Binary Classification 示例并尝试将其映射到Multi Class Classification 示例,但是没有显示预测。
以下是多类分类示例中所示的单个预测
// Single Prediction
ITransformer loadedModel = _mlContext.Model.Load(_modelPath, out var modelInputSchema);
GitHubIssue singleIssue = new GitHubIssue() { Title = "Entity Framework crashes", Description = "When connecting to the database, EF is crashing" }; // Our single issue
_predEngine = _mlContext.Model.CreatePredictionEngine<GitHubIssue, IssuePrediction>(loadedModel);
var singleprediction = _predEngine.Predict(singleIssue);
Console.WriteLine($"=============== Single Prediction - Result: {singleprediction.Area} ===============");
以下是二元分类示例中所示的批量预测,但在该场景中不起作用。
// Batch Predictions from Enumerable
ITransformer loadedModel = _mlContext.Model.Load(_modelPath, out var modelInputSchema);
IDataView batchIssues = _mlContext.Data.LoadFromEnumerable(issues);
IDataView predictions = loadedModel.Transform(batchIssues);
IEnumerable<GitHubIssue> predictedResults = _mlContext.Data.CreateEnumerable<GitHubIssue>(predictions, reuseRowObject: false);
foreach (GitHubIssue prediction in predictedResults)
{
Console.WriteLine($"Title: {prediction.Title} | Prediction: {prediction.Area}");
}
根据单一预测,我得到以下结果:
area-System.Data
虽然批处理不能预测输出,但我认为它不是预测的,但是阅读Microsofts ML.NET 网站上的材料,它说转换将使用模型对一批数据进行预测.
“使用模型使用Transform()方法预测评论数据情绪”
问题 1) 我不确定,我在批量预测中缺少什么,可枚举以获取 prediction.area 的预测,如单个值所示。
问题 2)我将如何调整可枚举以加载到未标记信息的文件中以进行预测。
【问题讨论】:
标签: c# .net machine-learning ml.net