1

Using the below, I'm able to get both the raw predictions and the final predictions as a file:

cat train.vw.txt | vw -c -k --passes 30 --ngram 5 -b 28 --l1 0.00000001 --l2 0.0000001 --loss_function=logistic -f model.vw --compressed --oaa 3

cat test.vw.txt | vw -t -i model.vw --link=logistic -r raw.txt -p predictions.txt

However, I'm unable to get the raw predictions when I run VW as a daemon:

vw -t -i model.vw --daemon --port 26542 --link=logistic

Do I have a pass in a specific argument or parameter to get the raw predictions? I prefer the raw predictions, not the final predictions. Thanks

4

4 回答 4

3

在支持/dev/stdout(and /dev/stderr) 的系统上,您可以试试这个:

vw -t -i model.vw --daemon --port 26542 --link=logistic -r /dev/stdout

守护进程会将原始预测写入标准输出,在这种情况下,该输出与 localhost 端口 26542 位于同一位置。

行的相对顺序得到保证,因为在每个示例中处理不同打印的代码(例如,非原始与原始)始终是串行的。

于 2015-06-12T05:39:48.990 回答
3

2015 年 11 月以来,获取概率的最简单方法是使用--oaa=N --loss_function=logistic --probabilities -p probs.txt. (或者,如果您需要依赖标签的功能:--csoaa_ldf=mc --loss_function=logistic --probabilities -p probs.txt。)

--probabilities一起工作--daemon。应该不再需要使用--raw_predictions.

于 2015-10-31T02:59:10.813 回答
2

--raw_predictions--daemon是一种 hack(语义取决于所使用的缩减),并且在mode 中不受支持。(类似的东西--output_probabilities很有用,实现起来并不困难,它可以在守护进程模式下工作,但到目前为止还没有人有时间实现它。)

作为一种解决方法,您可以在管道中运行 VW,因此它会读取标准输入并将概率写入标准输出:

cat test.data | vw -t -i model.vw --link=logistic -r /dev/stdout | script.sh

于 2015-06-11T22:47:11.160 回答
0

根据https://github.com/VowpalWabbit/vowpal_wabbit/issues/1118您可以尝试--scores在命令行中添加选项: vw --scores -t -i model.vw --daemon --port 26542

它对我的 oaa 模型有所帮助。

于 2019-10-21T15:09:27.400 回答