Vowpal Wabbit 多重 class class化预测概率

Vowpal Wabbit multiple class classification predict probabilities

我正在尝试使用 Vowpal Wabbit 解决多个 class化问题。

我有一个看起来像这样的训练文件:

1 |feature_space

2 |feature_space

3 |feature_space

作为输出,我想获得属于每个 class 的测试项目的概率,如下所示:

1: 0.13 2:0.57 3:0.30

想想 sklearn classifiers predict_proba 方法,例如。

我试过以下方法:

1) vw -oaa 3 train.file -f model.file --loss_function 后勤 --link 后勤 vw -p predict.file -t test.file -i model.file -raw_predictions = pred.txt

但 pred.txt 文件为空(不包含任何记录,但已创建)。 Predict.file 只包含最后的 class,没有概率。

2) vw - csoaa3 train.file -f model.file --link 后勤 我已经相应地修改了输入文件以适应 cs 格式。 csoaa 不接受 loss_function logistic 并显示以下错误消息:"You are using a label not -1 or 1 with a loss function expecting that!"

如果与默认平方损失函数和类似的输出命令一起使用,我会得到 pred.txt 每个项目每个 class 的原始预测,例如:

2.33 1.67 0.55

我相信这是平方距离的结果。

有没有办法让 VW 输出 class 概率或以某种方式将这些距离转换为概率?

VW 版本 7.9.0 中存在错误并在 7.10.0 中修复,导致原始预测文件为空。

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