在 Vowpal Wabbit 中,名称空间和功能之间有什么区别?
In Vowpal Wabbit, what is the difference between a namespace and feature?
在 R 或 python 中进行分析时,我们只知道特征名称(它们的值)并使用它们。在 Vowpal Wabbit 中,我们也有命名空间。
我无法理解:
一个。命名空间是什么意思;
b.它与功能有何不同;
C。什么时候使用?什么时候不使用?也就是说,我们是否可以避免使用它。
d.它是如何使用的?
请提供一两个示例,将不胜感激。抱歉问了这么多问题。
在 vowpal wabbit name-space 中使用是为了在 运行 时间内方便地即时生成交互功能,而无需预先声明它们。
一个简单的示例格式,没有名称 space 是:
1 | a:2 b:3
其中 1
是标签,a
、b
是常规输入特征。
请注意 |
之后有一个 space。
对比上面使用两个名称 spaces x
和 y
(注意 |
分隔符和名称之间没有 space-spaces):
1 |x a:2 |y b:3
此示例与第一个示例基本相同(特征哈希位置除外)。它仍然有两个与原始示例具有相同值的特征。不同的是,现在有了这些 name-spaces,我们可以通过将选项传递给 vw
来交叉特征。例如:
vw -q xy
将通过将 name-space x
中的所有特征与 name-space y
中的所有特征交叉来即时生成附加特征。自动生成的特征的名称将是两个名称-space 的名称的串联,值将是它们各自值的乘积。在这种特殊情况下,就好像我们的数据集有一个额外的特征:ab:6
(*)
显然,这是一个非常简单的示例,假设您有一个名称中包含 3 个特征的示例-space:
1 |x a:2 b:3 c:5
通过将 -q xx
添加到 vw
您可以自动生成 6 额外的交互功能:aa, ab, ac, bb, bc, cc
即时。如果你有 3 name-spaces,比如:x, y, z
,你可以跨越它们的任何(或任何想要的子集):-q xx -q xy -q xz -q yz -q yy -q zz
在命令行上获取不同功能集之间所有可能的交互。
仅此而已。这是一项强大的功能,可让您即时试验和添加交互功能。
有几个选项接受名称-space的(第一个字母)作为参数,其中:
-q
--cubic
--ignore
--keep
--redefine (very new)
--lrq
查看 vw command line arguments wiki 了解更多详情。
(*) 在实践中,特征名称将在名称前加上 spaces,中间有一个 ^
分隔符,因此实际的散列字符串将是 x^a^y^b:6
而不是比 ab:6
(您可以使用 --audit
选项验证这一点)但这只是一个细节。
在 R 或 python 中进行分析时,我们只知道特征名称(它们的值)并使用它们。在 Vowpal Wabbit 中,我们也有命名空间。
我无法理解: 一个。命名空间是什么意思; b.它与功能有何不同; C。什么时候使用?什么时候不使用?也就是说,我们是否可以避免使用它。 d.它是如何使用的?
请提供一两个示例,将不胜感激。抱歉问了这么多问题。
在 vowpal wabbit name-space 中使用是为了在 运行 时间内方便地即时生成交互功能,而无需预先声明它们。
一个简单的示例格式,没有名称 space 是:
1 | a:2 b:3
其中 1
是标签,a
、b
是常规输入特征。
请注意 |
之后有一个 space。
对比上面使用两个名称 spaces x
和 y
(注意 |
分隔符和名称之间没有 space-spaces):
1 |x a:2 |y b:3
此示例与第一个示例基本相同(特征哈希位置除外)。它仍然有两个与原始示例具有相同值的特征。不同的是,现在有了这些 name-spaces,我们可以通过将选项传递给 vw
来交叉特征。例如:
vw -q xy
将通过将 name-space x
中的所有特征与 name-space y
中的所有特征交叉来即时生成附加特征。自动生成的特征的名称将是两个名称-space 的名称的串联,值将是它们各自值的乘积。在这种特殊情况下,就好像我们的数据集有一个额外的特征:ab:6
(*)
显然,这是一个非常简单的示例,假设您有一个名称中包含 3 个特征的示例-space:
1 |x a:2 b:3 c:5
通过将 -q xx
添加到 vw
您可以自动生成 6 额外的交互功能:aa, ab, ac, bb, bc, cc
即时。如果你有 3 name-spaces,比如:x, y, z
,你可以跨越它们的任何(或任何想要的子集):-q xx -q xy -q xz -q yz -q yy -q zz
在命令行上获取不同功能集之间所有可能的交互。
仅此而已。这是一项强大的功能,可让您即时试验和添加交互功能。
有几个选项接受名称-space的(第一个字母)作为参数,其中:
-q
--cubic
--ignore
--keep
--redefine (very new)
--lrq
查看 vw command line arguments wiki 了解更多详情。
(*) 在实践中,特征名称将在名称前加上 spaces,中间有一个 ^
分隔符,因此实际的散列字符串将是 x^a^y^b:6
而不是比 ab:6
(您可以使用 --audit
选项验证这一点)但这只是一个细节。