ML.NET Cookbook:如何从文本文件加载数据?
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ML.NET Cookbook:如何从文本文件加载数据?相关的知识,希望对你有一定的参考价值。
TextLoader
用于从文本文件加载数据。您需要指定什么是数据列、它们的类型以及在文本文件中的位置。
请注意,完全加载文件的某些列或多次加载同一列是完全可以接受的。
示例文件[1]:
Label Workclass education marital-status
0 Private 11th Never-married
0 Private HS-grad Married-civ-spouse
1 Local-gov Assoc-acdm Married-civ-spouse
1 Private Some-college Married-civ-spouse
您可以这样加载数据:
// 创建加载器:定义数据列以及它们在文本文件中的位置。
var loader = mlContext.Data.CreateTextLoader(new[] {
// 描述“label”的布尔列。
new TextLoader.Column("Label", DataKind.Boolean, 0),
// 三个文本列。
new TextLoader.Column("Workclass", DataKind.String, 1),
new TextLoader.Column("Education", DataKind.String, 2),
new TextLoader.Column("MaritalStatus", DataKind.String, 3)
},
// 文件的第一行是标题,而不是数据行。
hasHeader: true
);
// 现在加载文件(记住,加载器是延迟执行的,所以实际加载将在访问数据时发生)。
var data = loader.Load(dataPath);
您还可以创建数据模型类,并基于此类型加载数据。
// 数据模型。
private class InspectedRow
{
[LoadColumn(0)]
public bool Label { get; set; }
[LoadColumn(1)]
public string Workclass { get; set; }
[LoadColumn(2)]
public string Education { get; set; }
[LoadColumn(3)]
public string MaritalStatus { get; set; }
}
private class InspectedRowWithAllFeatures : InspectedRow
{
public string[] AllFeatures { get; set; }
}
// 将数据加载到数据视图中。
var data = mlContext.Data.LoadFromTextFile<InspectedRow>(dataPath,
// 文件的第一行是标题,而不是数据行。
hasHeader: true
)
参考资料
[1]
示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/adult.tiny.with-schema.txt
以上是关于ML.NET Cookbook:如何从文本文件加载数据?的主要内容,如果未能解决你的问题,请参考以下文章
ML.NET Cookbook:(11)如果我的训练数据不在文本文件中怎么办?