是否可以使用Vowpal Wabbit Library训练多类(多项式)线性分类模型?
我尝试使用--oa与--loss_function平方,但似乎--oa的默认丢失函数是逻辑的。
我使用rcv1.multiclass作为输入。
一种解决方案:
我可以创建多个版本的数据,如下所示:
版本i:使除I类之外的所有标签为零
然后我可以为每个版本的数据训练多个二进制分类。最后,我可以将测试数据提供给所有分类器并应用argmax。有没有更好的(自动化)解决方案?
答案 0 :(得分:2)
当您使用vw --oaa N
时,您实际上会获得线性 N级分类器。要获得非线性分类器,您需要添加二次/多项式要素(-q
,--cubic
,--interactions
)或内核(--ksvm
)或隐藏层({ {1}})或任何其他非线性缩减(--nn
,--lrq
,--stage_poly
)。
损失函数的选择不会影响分类器是否为线性。默认值为--autolink
。对于分类,我建议使用--loss_function=squared
(如果您想预测每个班级的概率,可能会使用--loss_function=logistic
)或--probabilities
(如果您只关心顶级班级)。
然后我可以为每个版本的数据训练多个二进制分类。最后,我可以将测试数据提供给所有分类器并应用argmax。有没有更好的(自动化)解决方案?
是的,这正是--loss_function=hinge
所做的(但效率更高)。