我想要獲得用反轉散列保存的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丟失的二進制分類。 –