ML.NET Cookbook:(3)如何从CSV加载包含多个列的数据?
生活随笔
收集整理的這篇文章主要介紹了
ML.NET Cookbook:(3)如何从CSV加载包含多个列的数据?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
TextLoader用于從文本文件加載數(shù)據(jù)。您需要指定什么是數(shù)據(jù)列、它們的類型以及在文本文件中的位置。
當輸入文件包含許多相同類型的列(通常打算一起使用)時,我們建議從一開始就將它們作為向量列進行加載:這樣,數(shù)據(jù)的架構就更干凈了,我們不會產生不必要的性能成本。
示例文件[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加載此文件:
//?創(chuàng)建加載器:定義數(shù)據(jù)列以及它們在文本文件中的位置。 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:?';');//?現(xiàn)在加載文件(記住,加載器是延遲執(zhí)行的,所以實際加載將在訪問數(shù)據(jù)時發(fā)生)。 var?data?=?loader.Load(dataPath);或者通過為其創(chuàng)建數(shù)據(jù)模型:
private?class?RegressionData {[LoadColumn(0,?10),?ColumnName("Features")]public?float?FeatureVector?{?get;?set;}[LoadColumn(11)]public?float?Target?{?get;?set;} }//?將數(shù)據(jù)加載到數(shù)據(jù)視圖中。 var?trainData?=?mlContext.Data.LoadFromTextFile<RegressionData>(trainDataPath,//?默認分隔符是tab,但我們需要使用分號。separatorChar:?';' );??參考資料
[1]
示例文件: https://github.com/dotnet/machinelearning/blob/main/test/data/generated_regression_dataset.csv
總結
以上是生活随笔為你收集整理的ML.NET Cookbook:(3)如何从CSV加载包含多个列的数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次 .NET 某外贸Web站 内存泄
- 下一篇: .Net Core with 微服务 -