Microsoft ml.net 连接 2 列作为标签

Microsoft ml.net Concatenate 2 columns as a label

我一直在想是否可以将 2 列数据类型字符串连接到标签列中。

我试过的是:

        pipeline.Add(new ColumnConcatenator("Label", "string1", "string2"));

但这只是吐出一个 V2(text, 2)。标签必须是 R4-R8 类型。

我需要这个的原因是因为我只有 2 个输入变量,我想使用回归来确定哪个是最好的。

谢谢!

ColumnConcatenator 当前正在获取您的两列并生成一个宽度为 2 的新向量类型列。它采用 ab 并向上转换为矢量 [a, b].

我想您是在问如何生成等于 a + b 的新标签,其中 ab 是字符串。例如:var a = "Hello"; var b = "World"; var c = a + c; // c is HelloWorld.

ML.NET 目前无法完成第二种方法(普通字符串连接)。您可能希望在 ML.NET 代码之前组合您的字符串。这是我们将在 ML.NET 的未来版本中研究的内容,我们邀请您提交请求它的问题:https://github.com/dotnet/machinelearning/issues/new.


更新:

我们添加了可用于连接字符串(以及许多其他内容)的表达式转换。

用法:

pipeline.Append(ML.Transforms.Expression("Label", "(x, y) : concat(x, \"-\", y)", "LabelColOne", "LabelColTwo"))

对于 LabelColOne="Cat" 和 LabelColTwo="Dog" 的输入,它用“-”将它们连接在一起以生成 Label="Cat-Dog".