Vowpal Wabbit多类分类预测概率

我正在尝试使用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不接受logistic损失函数,并显示以下错误信息:“您使用了不是-1或1的标签,而损失函数期望这些标签!”

如果使用默认的平方损失函数,并使用类似的输出命令,我得到了pred.txt文件,其中包含每个项目每个类的原始预测,例如:

2.33 1.67 0.55

我认为这是结果的平方距离。

有没有办法让VW输出类概率,或者将这些距离转换为概率?


回答:

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

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

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注