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)如果我的训练数据不在文本文件中怎么办?

ML.NET Cookbook:(18)如何在文本数据上训练模型?

ML.NET Cookbook:如何训练回归模型?

ML.NET Cookbook:(12)我想看看模型的系数

ML.NET Cookbook:如何查看中间过程数据?

ML.NET Cookbook:(17)如何在分类数据上训练模型?