我正试图用Vowpal Wabbit做多个分类问题。
我有一个如下所示的火车文件:
1 | feature_space
2 | feature_space
3 | feature_space
作为输出,我想获得属于每个类的测试项的概率,如下所示:
1:0.13 2:0.57 3:0.30
例如,可以考虑使用sklearn分类器predict_proba方法。我尝试过以下方法:
1)vw -oaa 3 train.file -f model.file --loss_function logistic --link logistic vw -p predict.file -t test.file -i model.file -raw_predictions = pred.txt
但pred.txt文件为空(不包含任何记录,但已创建)。 Predict.file只包含最终类,没有概率。
2)vw - csoaa3 train.file -f model.file --link logistic 我相应地修改了输入文件以适应cs格式。 csoaa不接受loss_function后台,并显示以下错误消息:"您使用的标签不是-1或1,并且具有期望的损失函数!"
如果使用默认的平方丢失函数和类似的输出命令,我会得到每个项目每个类的原始预测的pred.txt,例如:
2.33 1.67 0.55
我相信它产生的平方距离。
有没有办法让大众输出类概率或以某种方式将这些距离转换为概率?
答案 0 :(得分:1)
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
。)