Ich versuche, ein Vowpal-Wabbit-Modell mit invertierten Hashes zu erhalten. Ich habe ein gültiges Modell mit folgendem erstellt:
vw --oaa 2 -b 24 -d mydata.vw --readable_model mymodel.readable
erzeugt eine Modelldatei wie folgt:
%Vor%(und so weiter für viele tausend weitere Funktionen). Um jedoch nützlicher zu sein, muss ich die Feature-Namen sehen. Schien sich wie eine ziemlich offensichtliche Sache, aber ich tat
vw --oaa 2 -b 24 -d mydata.vw --invert_hash mymodel.inverted
und es wurde eine Modelldatei wie folgt erstellt (es werden keine Gewichte erstellt):
%Vor%Es fühlt sich an, als hätte ich offensichtlich etwas falsch gemacht, aber ich denke, ich verwende die Optionen in dokumentierter Weg :
--invert_hash
ist ähnlich wie--readable_model
, aber das Modell wird in einem besser lesbaren Format ausgegeben, gefolgt von Feature-Namen Gewichte, anstelle von Hash-Indizes und Gewichten.
Weiß jemand, warum mein zweiter Befehl keine Ausgabe erzeugt?
Dies wird durch einen Fehler in VW verursacht, der kürzlich (aufgrund dieser Frage) behoben wurde, siehe Ссылка .
Übrigens ist es nicht sinnvoll, --oaa 2
zu verwenden. Wenn Sie eine binäre Klassifizierung (auch logistische Regression genannt) wünschen, verwenden Sie --loss_function=logistic
(und stellen Sie sicher, dass Ihre Labels 1 und -1 sind).
OAA ist nur für N & gt; 2 Anzahl von Klassen sinnvoll (und es wird empfohlen, --loss_function=logistic
mit --oaa
zu verwenden).
Beachten Sie auch, dass das Lernen mit --invert_hash
viel langsamer ist (und natürlich mehr Speicher erfordert). Die empfohlene Vorgehensweise zum Erstellen eines invertierten Hash-Modells, insbesondere mit mehreren Durchläufen, besteht darin, ein übliches binäres Modell zu lernen und es dann mit einem Durchlauf über die Trainingsdaten mit -t
:
Tags und Links vowpalwabbit