如何将监督数据加载到MLContext对象中

我的情况我正在尝试使用ML.net创建一个神经网络,用于分类两种信号(本质上是是或否)。我有一组数据映射到“否”,另一组数据将映射到“是”。我希望用这些数据来训练网络。

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

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

我的数据模型:

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

加载代码:

//创建MLContextstatic MLContext mCont = new MLContext();//加载数据IDataView data = mCont.Data.LoadFromTextFile<Analog>("myYesSignalData.csv", separatorChar: ',', hasHeader: false);

回答:

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

var loader = mCont.Data.LoadFromTextFile<Analog>(separatorChar: ',', hasHeader: false);IDataView data = loader.Load(new MultiFileSource("myYesSignalData.csv", "myNoSignalData.csv"));

然而,目前我没有看到任何方法可以让训练器知道哪些示例是正面,哪些是负面,除非在两个文件中都添加一个标签列:在“是”的文件中添加一个全1列,在“否”的文件中添加一个全0列。然后这样定义Analog类:

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

可以通过一个简单的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);}

对于“myNoSignalData.csv”文件,可以使用类似的脚本,但将output.Label = 1改为output.Label = 0

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注