【发布时间】: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方法添加其他部分。