Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ML.NET IDataView返回到csv_C#_Csv_Machine Learning_Ml.net - Fatal编程技术网

C# ML.NET IDataView返回到csv

C# ML.NET IDataView返回到csv,c#,csv,machine-learning,ml.net,C#,Csv,Machine Learning,Ml.net,假设我有以下示例数据: Sample.csv: Dog,25 Cat,23 Cat,20 Dog,0 我想将其加载到IDataView,将其转换为ML(无字符串等),然后再次将其保存为.csv,比如使用其他工具或语言对其进行分析 //加载数据: var sampleCsv=Path.Combine(“数据”,“Sample.csv”); var columns=new[] { 新的TextLoader.Column(“type”,DataKind.String,0), 新的TextLoader

假设我有以下示例数据:

Sample.csv:

Dog,25
Cat,23
Cat,20
Dog,0
我想将其加载到
IDataView
,将其转换为ML(无字符串等),然后再次将其保存为
.csv
,比如使用其他工具或语言对其进行分析

//加载数据:
var sampleCsv=Path.Combine(“数据”,“Sample.csv”);
var columns=new[]
{
新的TextLoader.Column(“type”,DataKind.String,0),
新的TextLoader.Column(“age”,DataKind.Int16,1),
};
var mlContext=新的mlContext(种子:0);
var dataView=mlContext.Data.LoadFromTextFile(sampleCsv,列,,);
//转化
var管道=
mlContext.Transforms.Categorical.OneHotEncoding(“类型”,
//此outputKind将只添加一列,而其他将添加一些:
outputKind:OneHotEncodingEstimator.outputKind.Key);
var transformedDataView=pipeline.Fit(dataView).Transform(dataView);
//转换数据视图:
//狗,1,25
//猫,2,23
//猫,2,20
//狗,1,0

如何获取两个数字列并将其写入
.csv
文件?

您可以为输出数据创建

类输出
{
//注意,数据视图中的类型应该相同
公共UInt32类型{get;set;}
公共Int16年龄{get;set;}
}
然后使用从
数据视图中读取所有行,并将它们打印到“.csv”。文件:

File.writeAllines(sampleCsv+“.output”,
mlContext.Data.CreateEnumerable(transformedDataView,false)
.Select(t=>string.Join(',',t.type,t.age));

我对这个答案不满意。交叉链接到。你找到解决方法了吗?是的。移动到
Python
中的
pandas
包:-(没有答案,但您能分享一下如何在transformedDataView中得到“Dog”和“Cat”作为结果吗?我目前正面临一个类似的问题,我无法从您可以检查的转换数据视图中获得实际标签。也许C不适合动态类型