Machine learning Vowpal-Wabbit多类分类预测概率

Machine learning Vowpal-Wabbit多类分类预测概率,machine-learning,vowpalwabbit,Machine Learning,Vowpalwabbit,我试图用Vowpal Wabbit解决多重分类问题 我有一个火车文件,看起来像这样: 1 |特征空间 2 |特征空间 3 |特征空间 作为输出,我希望得到属于每个类的测试项的概率,如下所示: 1:0.13 2:0.57 3:0.30 例如,想想sklearn分类器预测概率方法 我尝试了以下方法: 1) vw-oaa 3 train.file-f model.file--功能丧失物流--链路物流 vw-p predict.file-t test.file-i model.file-raw_pred

我试图用Vowpal Wabbit解决多重分类问题

我有一个火车文件,看起来像这样:

1 |特征空间

2 |特征空间

3 |特征空间

作为输出,我希望得到属于每个类的测试项的概率,如下所示:

1:0.13 2:0.57 3:0.30

例如,想想sklearn分类器预测概率方法

我尝试了以下方法:

1) vw-oaa 3 train.file-f model.file--功能丧失物流--链路物流 vw-p predict.file-t test.file-i model.file-raw_predicts=pred.txt

但是pred.txt文件为空(不包含任何记录,但已创建)。Predict.file只包含最后一个类,不包含概率

2) vw-csoaa3 train.file-f model.file——链接物流 我已经相应地修改了输入文件以适应cs格式。csoaa不接受loss_函数逻辑,并显示以下错误消息:“您使用的标签不是-1或1,而loss函数预期为-1!”

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

2.33 1.67 0.55

我相信这就是由此产生的平方距离


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

VW版本7.9.0中有一个bug,在7.10.0中修复了该bug,导致原始预测文件为空


因为,获取概率的最简单方法是使用
--oaa=N--loss\u function=logistic--probabilities-p probs.txt
。(或者如果您需要标签相关功能:
--csoaa\u ldf=mc--loss\u function=logistic--probabilities-p probs.txt

是的,有一种方法可以完全满足您的需求。在回答之前,我想知道“1 |特征|空间2 |特征|空间3 |特征|空间”是什么意思。根据我认为的预期输出,它是一个具有三个类和标签相关特征的分类。那么“2”和“3”是标签,不是特征?我说得对吗?你能提供你的train.file的一个真实的例子吗(可能会缩短)?很抱歉,我的train文件实际上看起来是这样的:true_class(例如1)| feature_space1 | feature_space2等等,不管什么原因,它在文本中被折叠了。为了更加清晰,我编辑了原始文本,而不是使用
-raw\u predictions=pred.txt
,您应该使用
--raw\u predictions=pred.txt
(即:等号周围没有空格,双破折号)。--实际使用的是raw\u predictions=pred.txt。如果使用-raw_predictions=pred.txt,则会出现“选项”-data“不能多次指定”错误。您建议的命令会导致生成空的原始预测文件,但不包含任何记录。请尝试以下操作:
cd-vowpal\u-wabbit/test/train-set/;vw-d多类——oaa=10——原始预测=raw.txt;cat RAW.txt
?当我尝试时,RAW.txt不是空的。