Vowpal Wabbit 多类线性分类

Vowpal Wabbit Multiclass Linear Classification

是否可以使用 Vowpal Wabbit 库训练多class(多项式)线性 class化模型?

我尝试将 --oaa 与 --loss_function 平方一起使用,但似乎 --oaa 的默认损失函数是逻辑损失函数。

我正在使用 rcv1.multiclass 作为输入。

一个解决方案:

我可以创建多个版本的数据如下:

版本 i:将所有标签设为零,除了 class I

然后我可以为每个版本的数据训练多个二进制 classifications。最后,我可以将测试数据提供给所有 classifier 并应用 argmax。有更好的(自动化)解决方案吗?

当你使用vw --oaa N时,你实际上会得到一个linear N-class classifier。要获得非线性 classifier,您需要添加 quadratic/polynomial 特征(-q--cubic--interactions)或内核(--ksvm ) 或隐藏层 (--nn) 或任何其他非线性缩减 (--lrq, --stage_poly, --autolink).

损失函数的选择不影响classifier是否是线性的。默认值为 --loss_function=squared。对于 class化,我建议使用 --loss_function=logistic(如果你想预测每个 class 的概率,可以使用 --probabilities)或 --loss_function=hinge(如果你关心仅在顶部 class).

Then I can train multiple binary classifications for each version of data. Finally, I can feed the test data to all the classifier and apply an argmax. Is there any better (automated) solution?

是的,这正是 --oaa 所做的(但效率更高)。