gpt4 book ai didi

hash - 特征位在 Vowpal Wabbit 中如何工作

转载 作者:行者123 更新时间:2023-12-02 21:12:54 32 4
gpt4 key购买 nike

我对 Vowpal wabbit 比较陌生,想了解 -b 参数(特征表中的特征位)。

我的训练数据是这样的。总共约100万字。

1 | a = "word" b ="word131232" c="word1233" d = "word123124" e = "word23145"

但是,每行只有 5 个特征。我应该使用多少位?我尝试运行它,似乎随着示例数量的增加,功能集的数量似乎也在增加。我似乎不明白为什么会这样。

最佳答案

如果您使用-b 18(这是默认值),这些特征将被散列到一个包含 2^18 个项目的表中,因此如果数据集中的唯一特征数量接近2^18(甚至更高),你应该增加参数-b,这样就不会出现那么多哈希冲突。没有简单的方法来检测冲突的数量,但常见的做法是调整参数-b以获得最佳的渐进验证损失(或者保留损失,如果您使用更多通行证)。当然,这也取决于您机器上的可用内存。

1 | a = "word" b ="word131232" c="word1233" d = "word123124" e = "word23145"

请注意,这个示例是错误的(不是您想要的),因为 = 周围有空格。等号没有特殊含义(与用于分隔特征值的冒号不同)。功能的名称中不能包含空格。无需将功能名称括在引号中。所以这个例子应该看起来像

1 | word word131232 word1233 word123124 word23145

如果前缀 a、b、c、d、e 有特殊含义(即 a=word42 应该是与 b=word42 不同的功能),您可以使用:

1 | a=word b=word131232 c=word1233 d=word123124 e=word23145

如果你的所有单词已经映射到整数(0-2^b 范围内),你可以直接使用它们作为特征名称,并且不会进行哈希处理(除非你指定 --hash=all):

1 | 0 131232 1233 123124 23145

请参阅wiki page about input format .

the number of features set seem to increase

在进度报告中(默认每个 2^x 个示例),在最后一列中您可以看到当前特征,这是当前示例的特征数量(包括常量特征)和二次/三次/...特征(如果您使用它们)并且它不应该增加(除非您有如此奇怪的数据)。

在最终报告中,vw 打印总特征数,即每个示例的平均特征数乘以示例数乘以遍数(因此不是数据集中唯一特征的数量。

关于hash - 特征位在 Vowpal Wabbit 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469475/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com