首页 > 解决方案 > Vowpal Wabbit:关于交互特征权重的问题

问题描述

在 VW 中,功能命名空间的格式如下所示:

标签 [Tag]|命名空间特征 |命名空间特征 ... |命名空间特征 其中:

命名空间=字符串[:值]

一个例子是:

1 1.0 |MetricFeatures:3.28 height:1.5 length:2.0 |说黑色带白色条纹|OtherFeatures NumberOfLegs:4.0 HasStripes

请注意,|MetricFeatures 命名空间的权重高于 1 (3.28)。基于上面的例子,如果我创建了一些特征交互,比如在 M 和 S 命名空间之间使用-q MS,作为两个原始命名空间的叉积的新特征命名空间是否默认具有 1 的重要性权重?或者它会继承两个重要性值的乘积(在本例中为 1*3.28 = 3.28)?

有没有办法手动修改特征交互的权重?例如,说 MetricFeatures 的重要性权重为 1,我可以让 MetricFeatures X的二次交互生成的特征具有x的重要性权重吗?

标签: feature-engineeringvowpalwabbit

解决方案


目前没有办法单独加权交互。


命名空间权重是在解析时处理的,因此在读取该命名空间的特征时,它们会乘以权重。

这可以通过使用来验证--audit

Num weight bits = 18
learning rate = 0.5
initial_t = 0
power_t = 0.5
using no cache
Reading datafile = data.txt
num sources = 1
average  since         example        example  current  current  current
loss     last          counter         weight    label  predict features
0
    MetricFeatures^height:146807:4.92:0@0   MetricFeatures^length:38580:6.56:0@0    Says^black:100768:1:0@0 Says^with:163314:1:0@0  Says^white:106708:1:0@0Says^stripes:112832:1:0@0    OtherFeatures^NumberOfLegs:146847:4:0@0 OtherFeatures^HasStripes:229154:1:0@0   Constant:116060:1:0@0
1.000000 1.000000            1            1.0   1.0000   0.0000        9

finished run
number of examples = 1
weighted example sum = 1.000000
weighted label sum = 1.000000
average loss = 1.000000
best constant = 1.000000
best constant's loss = 0.000000
total feature number = 9

MetricFeatures^height:146807:4.92:0@0-> 3.28 * 1.5 = 4.92


推荐阅读