【问题标题】:Vowpal Wabbit - Specifying the full name of a namespace with option --keepVowpal Wabbit - 使用选项 --keep 指定命名空间的全名
【发布时间】:2015-05-06 01:33:36
【问题描述】:

我必须满足以下情况:我想在调用 Vowpal Wabbit 在数据集上对其进行训练时保留特定的命名空间。

"--keep" 选项将命名空间的首字母 作为参数。 但是如果两个命名空间以相同的字母开头,而我只想保留其中一个呢?

1.00 |A1 var1 var2 |A2 var3 var4

vw train_data.vw --keep "A1" ==> 不可能,因为 keep 只需要一个字符

一个“肮脏”的解决方案是重命名每个命名空间,以便它们都以不同的字母开头,但这对我来说是不可能的,因为我需要为每个变量创建一个命名空间,而且变量比字母表中的字母...

关于如何解决这个问题的任何看法?

【问题讨论】:

  • 您可以指定一个十六进制字符,因此您有 256 个命名空间。然后,您可以根据需要使用重新定义对功能进行分组。(未经测试!)

标签: variables namespaces vowpalwabbit


【解决方案1】:

命名空间可以有更长的名称,但只有名称的第一个字母与 --keep、--ignore、-q、--cubic 等选项相关。这是由 Vowpal Wabbit 的当前实现强制执行的 (输入char) 并且将来不太可能改变。我建议只使用一个字母的命名空间名称。

您可以使用小写和大写字母以及其他代码 example.h)的符号,但仍应使用 200 多个符号。

【讨论】:

  • 为什么强制使用 char 类型,而不是 char* ?我只是好奇导致这种设计的原因。我正在写一个活页夹 R - Vowpal Wabbit 来做广义线性模型。我想保留 R 的自然语法,从而能够保留或删除 VW 中的特定变量(R 中不使用命名空间)。我发现的一个解决方案是为每个变量(变量的名称)关联一个命名空间,但它有问题,因为两个变量很容易具有相同的首字母。我正在处理可能轻松超过 1000 个变量的数据集......因此 200 个是不够的。
  • 大量 VW 代码需要遍历所有命名空间(嗯,有时只遍历非空命名空间),因此拥有大量命名空间会显着减慢 VW。此外,不太可能有人会在命令行上手动指定超过 200 个--keep 选项。您可以使用--feature_mask 仅保留模型中指定的特征。
猜你喜欢
  • 2015-04-19
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多