【问题标题】:In Vowpal Wabbit, what is the difference between a namespace and feature?在 Vowpal Wabbit 中,命名空间和功能之间有什么区别?
【发布时间】:2015-04-19 14:35:55
【问题描述】:

在使用 R 或 python 进行分析时,我们只知道特征名称(它们的值)并使用它们。在 Vowpal Wabbit 中,我们也有命名空间。

我无法理解: 一种。命名空间是什么意思; 湾。它与功能有何不同; C。什么时候使用?什么时候不使用?也就是说,我们可以避免使用它。 d。它是如何使用的?

将不胜感激一两个例子。抱歉问了这么多问题。

【问题讨论】:

    标签: namespaces command-line-arguments feature-selection vowpalwabbit


    【解决方案1】:

    在 vowpal 中,使用 wabbit 命名空间是为了方便地在运行时即时生成交互功能,而无需预先声明它们。

    没有名称空间的简单示例格式是:

    1 | a:2 b:3
    

    其中1 是标签,a、b 是常规输入特征。

    注意|后面有一个空格。

    与使用两个名称空间x 和y 进行对比(注意| 分隔符和名称空间之间没有空格):

    1 |x a:2 |y b:3
    

    这个例子本质上与第一个例子是等价的(除了特征哈希位置)。它仍然有两个与原始示例具有相同值的特征。不同之处在于,现在有了这些命名空间,我们可以通过将选项传递给vw 来交叉功能。例如:

    vw -q xy
    

    将通过将命名空间x 中的所有特征与命名空间y 中的所有特征交叉生成额外的特征。自动生成的特征的名称将是来自两个名称空间的名称的串联,并且值将是它们各自值的乘积。在这种特殊情况下,我们的数据集就好像多了一个特征:ab:6 (*)

    显然,这是一个非常简单的示例,假设您有一个在名称空间中有 3 个特性的示例:

    1 |x a:2 b:3 c:5
    

    通过将-q xx 添加到vw,您可以自动生成6 额外的交互功能:aa, ab, ac, bb, bc, cc。如果你有 3 个命名空间,比如:x, y, z,你可以在命令行上跨越它们中的任何一个(或任何想要的子集):-q xx -q xy -q xz -q yz -q yy -q zz,以获得所有可能的交互不同的功能集。

    仅此而已。这是一项强大的功能,可让您即时试验和添加交互功能。

    有几个选项可以接受(第一个字母的)名称空间作为参数,其中包括:

    -q
    --cubic
    --ignore
    --keep
    --redefine (very new)
    --lrq
    

    查看vw command line arguments wiki了解更多详情。

    (*) 实际上,功能名称将在名称空间前面加上^ 分隔符,因此实际的散列字符串将是x^a^y^b:6 而不是ab:6(您可以通过使用来验证这一点--audit 选项)但这只是一个细节。

    【讨论】:

    • "所以实际的散列字符串将是 x^a^y^b:6" 在实践中,二次特征的散列以不同的方式计算(基于两个原始的散列特征和魔法常数),所以它与 hash("x^a^y^b") 不同。但这只是一个技术细节。
    • 谢谢马丁。是的,如果你真的想知道确切的实现细节,不遗漏任何细节的安全方法是查看(免费和开放的)源代码。还有--hash strings 和--hash all,当功能名称是数字时会有所不同。上面的描述主要是为了解释命名空间背后的概念,同时保持答案简短(我想我在这方面失败了:) 在大多数情况下,确切的哈希值以及特征最终存储在内存中的地址对用户。
    • 感谢您解释命名空间和功能之间的差异。如果我可以这么说,功能存在于现实世界中,但如果我想要功能之间的交互,则需要创建命名空间。您在上面已经提到,新的交互功能是来自不同名称空间的两个功能的值的产物。但是,如果这两个特征是分类的,是否可以简单地解释交互值将如何发展。再次感谢。
    • vowpal wabbit 不直接支持分类值。然而,有一个很酷的技巧可以让二进制特征({0,1} 中的值)模拟分类值:例如:color=red color=blue color=green,这是可能的,因为= 只是特征名称字符串的一部分(即= 不是像: 这样的特殊分隔符是)。这个主题是正交的,与名称空间无关。当特征是二元交互时,就会自然而然地工作。顺便说一句:请随时向vw 提出有关如何表示不同类型功能的单独问题。谢谢。
    • @arief 谢谢。大众汽车的特征表示确实让我感到困惑。我提出了另一个问题。 [链接] (stackoverflow.com/questions/28640837/…)。请帮忙。
    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 2014-08-10
    • 2011-12-10
    • 2013-12-15
    • 2012-07-10
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多