4

我在 ML.net 中运行二进制分类器。输出类如下所示,它有一个“PredictedLabel”,通过反复试验,我发现“分数”和“概率”也是有效的。有效属性记录在哪里?是否有一个我可以使用的属性(在输入数据类上具有相应的名称),它允许我在将与预测一起输出的输入数据上存储行 ID?

谢谢

public class TargetData
{
    [ColumnName("PredictedLabel")]
    public bool Value { get; set; }

    public float Score { get; set; }
    public float Probability { get; set; }
}
4

1 回答 1

3

ML.NET 依靠模式理解将对象的字段映射到数据视图的列并返回。

您的数据视图可能包含的列没有限制。例如,您可以将示例类定义为

public class Example
{
    // Let's say your features are floats:
    public float FeatureA;
    public float FeatureB;
    // ...
    public bool Label;

    // Here's an arbitrary RowId column.
    public string RowId; 
}

RowId列将被创建,并在整个训练过程中传播,并将保留在生成的模型中。为了读回它,只需在输出类中声明具有相同名称的字段/属性:

public class TargetData
{
    [ColumnName("PredictedLabel")]
    public bool Value { get; set; }

    public float Score { get; set; }
    public float Probability { get; set; }

    public string RowId { get; set; }
}

唯一的限制是允许的类型:例如,您不能声明GUID字段等。模式理解文档和其他链接文档精确地定义了允许的类型。

于 2018-08-21T02:30:59.887 回答