我想要获得用反转散列保存的vowpal wabbit模型。我有以下产生有效模式:Vowpal Wabbit inverted_hash选项会产生空输出,但为什么?
vw --oaa 2 -b 24 -d mydata.vw --readable_model mymodel.readable
产生这样一个模型文件:
Version 7.7.0
Min label:-1.000000
Max label:1.000000
bits:24
0 pairs:
0 triples:
rank:0
lda:0
0 ngram:
0 skip:
options: --oaa 2
:0
66:0.016244
67:-0.016241
80:0.026017
81:-0.026020
84:0.015005
85:-0.015007
104:-0.053924
105:0.053905
112:-0.015402
113:0.015412
122:-0.025704
123:0.025704
...
(等了成千上万的更多的功能)。但是,为了更有用,我需要查看功能名称。似乎是一个很明显的事情,但我没有
vw --oaa 2 -b 24 -d mydata.vw --invert_hash mymodel.inverted
和它产生这样一个模型文件(没有权重生产):
Version 7.7.0
Min label:-1.000000
Max label:1.000000
bits:24
0 pairs:
0 triples:
rank:0
lda:0
0 ngram:
0 skip:
options: --oaa 2
:0
这种感觉就像我明明做了一些错了,但我觉得我使用的documented way的选项:
--invert_hash
类似于--readable_model
,但该模型为邻以更加人性化的可读格式输出,其中包含要素名称后加 权重,而不是散列索引和权重。
有没有人看到为什么我的第二个命令不能产生任何输出?
有趣。在实验中,我发现结果可能被解释为不同意你关于'--oaa'的观点。只有'-b 31',它报告的平均损失为0.6。使用'-b 31 --loss_function = logistic',它会报告丢失.48(并且''-l'和'--l1'和'--passses'并没有真正改变太多)。用'-b 31 --oaa 2 -c -k - 通过3 -l 0.25',vw报告只损失0.19。如果'--oaa 2'没有意义,那为什么它表现得更好呢?我并不想讨厌;我只是想明白。 –
你不应该比较苹果(0/1损失)和橙子(后勤或平方损失)。对于OAA,大众报告总是0/1损失。如果没有OAA(或其他多类别减税),大众公司会报告您要求的损失(正方形,后勤,合并......)。 –
您可以强制VW用'--binary'报告0/1丢失的二进制分类。 –