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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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