【问题标题】:Microsoft ml.net Concatenate 2 columns as a labelMicrosoft ml.net 将 2 列连接为标签
【发布时间】:2018-05-31 21:09:41
【问题描述】:

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

我尝试的是:

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

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

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

谢谢!

【问题讨论】:

  • 回归对数字数据类型进行操作,试图将函数拟合到数据中。您的字符串是分类的,您是否需要通过 CategoricalOneHot 之类的东西将它们转换为数字?你能更详细地描述你的问题吗?

标签: c# machine-learning ml.net


【解决方案1】:

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"

【讨论】:

  • 你说得对,我提交issue,谢谢回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 2020-02-10
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多