ML.NET Cookbook:(1)如何从文本文件加载数据?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值