我正在ML.net中运行二进制分类器。输出类如下所示,它具有“ PredictedLabel”,通过反复试验,我发现“得分”和“概率”也有效。有效属性记录在哪里?并有一个我可以使用的属性(在输入数据类上具有一个对应的名称),该属性可以让我在将与预测一起输出的输入数据上存储行ID吗?
谢谢
public class TargetData
{
[ColumnName("PredictedLabel")]
public bool Value { get; set; }
public float Score { get; set; }
public float Probability { get; set; }
}
答案 0 :(得分:1)
ML.NET依靠schema comprehension来将对象的字段映射到数据视图的列中并返回。
您的数据视图可以包含哪些列没有限制。例如,您可以将示例类定义为
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
字段等。schema comprehension文档和其他链接的文档精确地定义了允许的类型。