【问题标题】:ML.NET Model Builder generated code to return multiple prediction resultsML.NET 模型生成器生成代码以返回多个预测结果
【发布时间】:2021-01-29 04:08:11
【问题描述】:

我在模型构建器中选择了文本分类,并且能够使用示例数据评估模型。我在 Visual Studio 插件中获得了多个准确率百分比的结果行,如下所示:

结果

结果1 60%


结果2 5%

结果3

结果4

结果5

但是,当使用生成的模型代码时,我只能得到一个预测结果

var predictionResult = ConsumeModel.Predict(input);

问题:如何使用生成的模型为一个模型输入返回具有百分比准确度的多个预测结果?类似于模型构建器在 Visual Studio 插件中的“评估”步骤中的显示方式。

【问题讨论】:

    标签: ml.net ml.net-model-builder


    【解决方案1】:

    最简单的方法是基于 Score 返回的内容,并将其与 Dataset 文件夹中的标签名称匹配。然后使用比较来重新排列收到的结果的顺序。

    例如在下面的数据集动物中:

    (Image) Convert scores to Label name

    PredictedLabel: Cat
    Score: [0.003, 0.981, 0.01, 0.0025, 0.003, 0.0015]
    ------------Similar
    Bird: 0.003
    Cat: 0.981
    Dog: 0.01
    Mouse: 0.0025
    Snake: 0.003
    Tiger: 0.0015
    

    您可以将其放入二维数组中并对其进行排序。最后得到如下结果。

    Cat: 0.981
    Dog: 0.01
    Bird: 0.003
    Snake: 0.003
    Mouse: 0.0025
    Tiger: 0.0015
    

    你可以参考下面的二维数组排序代码,它会排序Score并保留你的LabelName。

    int j = 1;
    
            Array.Sort(array, delegate (object[] x, object[] y)
            {
                return (y[j] as IComparable).CompareTo(x[j]);
            });
    

    现在,您可以使用循环来检索结果并以您想要的方式呈现它们。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 2013-01-27
      • 2010-10-22
      • 1970-01-01
      相关资源
      最近更新 更多