TextLoader
用于从文本文件加载数据。您需要指定什么是数据列、它们的类型以及在文本文件中的位置。
当输入文件包含许多相同类型的列(通常打算一起使用)时,我们建议从一开始就将它们作为向量列进行加载:这样,数据的架构就更干净了,我们不会产生不必要的性能成本。
示例文件[1]:
-2.75;0.77;-0.61;0.14;1.39;0.38;-0.53;-0.50;-2.13;-0.39;0.46;140.66
-0.61;-0.37;-0.12;0.55;-1.00;0.84;-0.02;1.30;-0.24;-0.50;-2.12;148.12
-0.85;-0.91;1.81;0.02;-0.78;-1.41;-1.09;-0.65;0.90;-0.37;-0.22;402.20
0.28;1.05;-0.24;0.30;-0.99;0.19;0.32;-0.95;-1.19;-0.63;0.75;443.51
使用TextLoader
加载此文件:
// 创建加载器:定义数据列以及它们在文本文件中的位置。
var loader = mlContext.Data.CreateTextLoader(new[] {// 我们将前10个值作为单个浮点向量加载。new TextLoader.Column("FeatureVector", DataKind.Single, new[] { new TextLoader.Range(0, 10) }),// 单独加载目标变量。new TextLoader.Column("Target", DataKind.Single, 11)},// 默认分隔符是tab,但我们需要使用分号。separatorChar: ';');// 现在加载文件(记住,加载器是延迟执行的,所以实际加载将在访问数据时发生)。
var data = loader.Load(dataPath);
或者通过为其创建数据模型:
private class RegressionData
{[LoadColumn(0, 10), ColumnName("Features")]public float FeatureVector { get; set;}[LoadColumn(11)]public float Target { get; set;}
}// 将数据加载到数据视图中。
var trainData = mlContext.Data.LoadFromTextFile<RegressionData>(trainDataPath,// 默认分隔符是tab,但我们需要使用分号。separatorChar: ';'
);
参考资料
[1]
示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/generated_regression_dataset.csv