是否可以使用Vowpal Wabbit Library训练多类(多项式)线性分类模型?
我尝试将--oaa与--loss_function平方一起使用,但是--oaa的默认损失函数似乎是逻辑的。
我正在使用rcv1.multiclass作为输入。
一种解决方案:
我可以创建数据的多个版本,如下所示:
版本I:将除类别I外的所有标签设为零
然后,我可以为每个数据版本训练多个二进制分类。最后,我可以将测试数据提供给所有分类器并应用argmax。有没有更好的(自动化)解决方案?
当您使用时vw --oaa N
,您实际上会得到一个线性的N类分类器。为了得到一个非线性的分类,你会需要增加二次/多项式功能(-q
,--cubic
,--interactions
)或内核(--ksvm
)或隐藏层(--nn
)或任何其他非线性减少(--lrq
,--stage_poly
,--autolink
)。
损失函数的选择不影响分类器是否为线性。默认值为--loss_function=squared
。对于分类,我建议使用--loss_function=logistic
(--probabilities
如果要预测每个班级的可能性,则可以使用)或--loss_function=hinge
(如果您只关心顶级班级的话)。
然后,我可以为每个数据版本训练多个二进制分类。最后,我可以将测试数据提供给所有分类器并应用argmax。有没有更好的(自动化)解决方案?
是的,这确实是这样--oaa
做的(但效率更高)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句