C# 如何将监控数据加载到MLContext对象中

C# 如何将监控数据加载到MLContext对象中,c#,machine-learning,ml.net,C#,Machine Learning,Ml.net,我的处境 我正在尝试创建一个神经网络,它使用ML.net对两种类型的信号(本质上是或否)进行分类。我有一组数据映射到no,另一组数据映射到yes。我希望用这些数据来训练网络 我的问题 由于我的训练数据是受监控的(我知道所需的输出),我如何“告诉”LoadFromTextFile函数所有这些数据都应该映射为“是”(或1这无关紧要) 我的问题 简言之,如何使用ML.Net中的受监控数据(我知道我的训练数据的期望输出)来训练网络 我的数据模型: public class Analog { [L

我的处境 我正在尝试创建一个神经网络,它使用ML.net对两种类型的信号(本质上是或否)进行分类。我有一组数据映射到no,另一组数据映射到yes。我希望用这些数据来训练网络

我的问题 由于我的训练数据是受监控的(我知道所需的输出),我如何“告诉”
LoadFromTextFile
函数所有这些数据都应该映射为“是”(或1这无关紧要)

我的问题 简言之,如何使用ML.Net中的受监控数据(我知道我的训练数据的期望输出)来训练网络

我的数据模型:

public class Analog
{
    [LoadColumn(0, Global.SAMPLE_SIZE - 1)]
    [VectorType(Global.SAMPLE_SIZE)]
    public float[] DiscreteSignal { get; set; }
}
加载代码:

//Create MLContext
static MLContext mCont = new MLContext();

//Load Data
IDataView data = mCont.Data.LoadFromTextFile<Analog>("myYesSignalData.csv", separatorChar: ',', hasHeader: false);
//创建MLContext
静态MLContext mCont=新的MLContext();
//加载数据
IDataView data=mCont.data.LoadFromTextFile(“myYesSignalData.csv”,separatorChar:',',hashreader:false);

ML.NET支持使用
MultiFileSource
类将多个数据集加载到一个
IDataView

var loader = mCont.Data.LoadFromTextFile<Analog>(separatorChar: ',', hasHeader: false);
IDataView data = loader.Load(new MultiFileSource("myYesSignalData.csv", "myNoSignalData.csv"));
添加标签列可以使用简单的C#程序完成,例如:

public class AnalogNoLabel
{
    [LoadColumn(0, Global.SAMPLE_SIZE - 1)]
    [VectorType(Global.SAMPLE_SIZE)]
    public float[] DiscreteSignal { get; set; }
}

public void AddLabel(MLContext mCont)
{
    IDataView data = mCont.Data.LoadFromTextFile<AnalogNoLabel>("myYesSignalData.csv", separatorChar: ',', hasHeader: false);
    var pipeline = mCont.Transforms.CustomMapping<AnalogNoLabel, Analog>((input, output) => {
        output.DiscreteSignal = input.DiscreteSignal;
        output.Label = 1;
    }, contractName: null);
    IDataView dataWithLabel = pipeline.Fit(data).Transform(data);
    using (var stream = new FileStream("myNewYesSignalData.txt", FileMode.Create))
        mCont.Data.SaveAsText(dataWithLabel, stream);
}

公共类类比标签
{
[LoadColumn(0,Global.SAMPLE_SIZE-1)]
[向量类型(全局样本大小)]
公共浮点[]离散信号{get;set;}
}
公共无效添加标签(MLContext mCont)
{
IDataView data=mCont.data.LoadFromTextFile(“myYesSignalData.csv”,separatorChar:',',hashreader:false);
var pipeline=mCont.Transforms.CustomMapping((输入、输出)=>{
output.DiscreteSignal=input.DiscreteSignal;
输出标签=1;
},合同名称:空);
IDataView dataWithLabel=pipeline.Fit(数据).Transform(数据);
使用(var stream=newfilestream(“myNewYesSignalData.txt”,FileMode.Create))
mCont.Data.SaveAsText(dataWithLabel,stream);
}
“myNoSignalData.csv”的类似脚本,其
output.Label=0
而不是
output.Label=1

public class AnalogNoLabel
{
    [LoadColumn(0, Global.SAMPLE_SIZE - 1)]
    [VectorType(Global.SAMPLE_SIZE)]
    public float[] DiscreteSignal { get; set; }
}

public void AddLabel(MLContext mCont)
{
    IDataView data = mCont.Data.LoadFromTextFile<AnalogNoLabel>("myYesSignalData.csv", separatorChar: ',', hasHeader: false);
    var pipeline = mCont.Transforms.CustomMapping<AnalogNoLabel, Analog>((input, output) => {
        output.DiscreteSignal = input.DiscreteSignal;
        output.Label = 1;
    }, contractName: null);
    IDataView dataWithLabel = pipeline.Fit(data).Transform(data);
    using (var stream = new FileStream("myNewYesSignalData.txt", FileMode.Create))
        mCont.Data.SaveAsText(dataWithLabel, stream);
}