Vowpal Wabbit多类(csoaa)分类总是返回最大标签,即使是训练数据

时间:2015-05-01 09:43:30

标签: machine-learning classification svm vowpalwabbit

我正在尝试使用Vowpal Wabbit进行简单的多类分类,但尽管阅读了每个可用的示例和stackoverflow帖子,但它仍然无法正常工作。 这就是我的训练文件train.vw看起来像[大约60k行,甚至分发类示例]:

1:0.0 2:1.0 3:1.0 4:1.0 5:1.0 6:1.0 7:1.0 8:1.0 9:1.0 ex1|f 1:1 2:0 3:0 4:0 5:0 ... 100:0

这是我的测试文件test.vw看起来像[> 100k示例]:

1 2 3 4 5 6 7 8 9 ex1|f 1:1 2:0 3:0 4:0 5:0 ... 100:0

我使用 csoaa ,所以我调用这样的训练:

vw -d train.vw --csoaa 9 -f data.model -p train.pred

train.pred包含正确标记的示例。

然后我这样测试:

vw -t -i data.model train.vw -p train.predict -r train.raw

有趣的是,train.predict包含

9.000000 ex1
9.000000 ex2
9.000000 ex3  [etc]

在test.vw上进行测试时也是如此。

如果你看一下train.raw,你确实看到标签9到目前为止的概率最高:

1:4.466 2:2.54384 3:2.00479 4:1.4716 5:5.43068 6:4.33557 7:0.725791     8:4.04874 9:-2.10407 ex1
1:6.74119 2:3.91698 3:5.75727 4:3.05082 5:5.17448 6:2.04901 7:3.54167     8:2.57396 9:-2.72631 ex2

我的问题是:为什么会发生这种情况,我需要做些什么才能确保为测试示例分配合理的标签?

我见过很多人遇到类似的问题,但通常会使用不正确的输入格式。

我正在使用Vowpal Wabbit v7.10.1。

非常感谢你的帮助,

克里斯

0 个答案:

没有答案