【问题标题】:Set up training pipeline without removing a column in ML.NET在不删除 ML.NET 中的列的情况下设置训练管道
【发布时间】:2021-08-05 15:36:00
【问题描述】:

我从有关如何在 .NET 中设置和训练 ML 模型的教程中复制了一些代码,在示例中,它在设置管道时使用“DropColumns”删除了一个列,我如何在没有的情况下设置管道删除一列?我尝试只添加一个虚拟列并将其删除,虽然它训练得很好,但当我去使用该模型时它抱怨该列丢失。

var mlContext = new MLContext();

        // set up a text loader
        var textLoader = mlContext.Data.CreateTextLoader(
            new Microsoft.ML.Data.TextLoader.Options()
            {
                Separators = new[] { ',' },
                HasHeader = true,
                AllowQuoting = true,
                Columns = new[]
                {
                new TextLoader.Column("rdate", DataKind.Single, 0),
                new TextLoader.Column("one", DataKind.Single, 0),
                new TextLoader.Column("two", DataKind.Single, 0),
                ...

        var trainingDataView = textLoader.Load(trainingDataPath);
        var testDataView = textLoader.Load(testDataPath);

        var pipeline = mlContext.Transforms.DropColumns("two")

【问题讨论】:

  • 您可以从管道中删除该转换。但是,还有更多内容吗,或者这就是该管道中的全部内容?
  • 我 .append 一些东西到它之后。如果我只是这样做:var pipeline = mlContext - 它会出现错误:'MLContext does not contain a definition for append....'
  • 只需从管道中删除整个 mlContext.Transforms.DropColumns 就可以了
  • 那么我该如何设置管道呢? var 管道本身不起作用。
  • 您将使用管道的其余部分,例如 var pipeline = mlContext.Transforms.DropColumns("Name", "Cabin", "Ticket"),并使用 Append 方法添加其他部分。

标签: c# ml.net


【解决方案1】:

也许只是 var pipeline = mlContext.Transforms?

你能发一个教程的链接吗?

【讨论】:

  • 我试过了,它说:} 预期。教程在这里:medium.com/machinelearningadvantage/…
  • @user2096512 你用}关闭这部分new Microsoft.ML.Data.TextLoader.Options() {吗?
  • 是的,我有,因为代码很多,所以我把它省略了。
  • @user2096512 只是基于错误} expected的猜测
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2023-02-10
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多