Microsoft ML.NET分类分数

问题描述

我目前正在使用ML.NET进行二进制分类(我认为这是正确的术语……我基本上是在要求它预测对/错)。

我正在使用mlnet命令行通过以下命令进行训练:mlnet classification --dataset data.csv --test-dataset test-data.csv --label-col Moves --has-header true --cache on --train-time 1800

训练似乎总是从“ FastTreeOva”算法中获得最佳结果。然后,我使用培训创建的文件通过以下方法进行预测(这几乎是Microsoft提供的即用型示例。

public static ModelOutput Predict(ModelInput input,string modelFile)
{
    // Create new MLContext
    MLContext mlContext = new MLContext();
    // Load model & create prediction engine
    var modelPath = Path.Combine(Environment.CurrentDirectory,modelFile);
    ITransformer mlModel = mlContext.Model.Load(modelPath,out var modelInputSchema);
    var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput,ModelOutput>(mlModel);
    // Predict the outcome
    ModelOutput result = predEngine.Predict(input);
    return result;
}

我的问题是这个。我从中得到一个名为“ score”的“ ModelOutput”属性,该属性一个浮点数组,在其中我总是得到两个值。我不知道这两个值是什么意思。有人知道如何解释它们吗?

例如,假设我得到的预测是“ True”……我一直假设两个值中的较高者是“信心”,即“ True”实际上是正确的预测...但现实生活中的使用似乎已崩溃。我会让它以90%的置信度返回“ True”(根据我对分数的含义的解释),并且大多数时候都是错误的。

这让我觉得我不知道那些分数的实际含义。

任何见识都会受到赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)